Я хочу читать данные из Cloud BigQuery в Cloud Datastore через бегунок Dataflow с Apache Beam.Из документации Firestore еще не поддерживается.Я пишу свой собственный класс, чтобы сделать это.
class UpdateIntoFireStore(beam.DoFn):
def process(self, element):
try:
cred = credentials.Certificate({
"..."
})
firebase_admin.initialize_app(cred, {
'projectId': '...',
})
except ValueError:
pass
db = firestore.client()
doc_ref = db.collection(u'poi')
doc_ref.add(element)
Конвейер выглядит следующим образом:
job = ( p | 'Read from BigQuery' >> Read(BigQuerySource(query="SELECT * FROM ...", use_standard_sql=True))
| 'Update to Firestore' >> beam.ParDo(UpdateIntoFireStore()))
Хорошо ли подходит этот подход?Я обеспокоен влиянием параллельной обработки на эти операции записи в Cloud Firestore.