Google は、Python で dataflow/beam からデータストアをクエリするためのサポートをリリースしたようです。ローカルで実行しようとしていますが、いくつかの問題が発生しています。
import apache_beam as beam
from apache_beam.io.datastore.v1.datastoreio import ReadFromDatastore
from gcloud import datastore
client = datastore.Client('my-project')
query = client.query(kind='Document')
options = get_options()
p = beam.Pipeline(options=options)
entities = p | 'read' >> ReadFromDatastore(project='my-project', query=query)
entities | 'write' >> beam.io.Write(beam.io.TextFileSink('gs://output.txt'))
p.run()
これは私に与えています
AttributeError: 'Query' object has no attribute 'HasField' [while running 'read/Split Query']
私は間違ったクエリ オブジェクトを渡していると推測しています (データストアをインポートできる 3 ~ 4 個の pip パッケージがあります) が、どれを渡すべきかわかりません。テストでは、彼らはprotobufを渡しています。それは私が使用しなければならないものですか?それが私がしなければならないことである場合、誰でもprotobufを使用した簡単なクエリの例を示すことができますか?