【发布时间】:2018-10-04 01:52:55
【问题描述】:
我想通过带有 Apache Beam 的 Dataflow runner 将数据从 Cloud BigQuery 读取到 Cloud Datastore。从 documentation 开始,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 上的这些写入操作的影响。
【问题讨论】:
标签: google-cloud-firestore apache-beam