0

この投稿に対する Michael の回答を読んでいました。ここでは、パイプラインを使用してデータストアからクラウド ストレージ、ビッグ クエリにデータを移動することを提案しています。

Google App Engine: データストアで Big Query を使用していますか?

この手法を使用して、bigquery テーブルにデータを追加したいと考えています。つまり、mapreduce の実行中にエンティティが繰り返し bigquery に送信されないように、エンティティが処理されたかどうかを知る方法が必要です。毎回テーブルを再構築したくありません。

私の見方では、2 つの選択肢があります。エンティティにフラグを立てて、各エンティティが処理されたときにそれを更新し、その後の実行でそれを除外することができます。または、各エンティティを新しいテーブルに保存してソース テーブルから削除することもできます。2 番目の方法の方が優れているように見えますが、オプションを尋ねたり、落とし穴がないか確認したかったのです。

4

1 に答える 1

0

アクティビティのストリームがエンティティとして表されていると仮定すると、クエリ カーソルを使用して、前のクエリが中断された場所から 1 つのクエリを開始できます。クエリ カーソルは、エンティティを処理済みとしてマークするためのオーバーヘッドを回避するため、説明した増分状況のタイプに最適です。

App Engine MapReduce がカーソルをサポートしているかどうかを確認するには、少し調べてみる必要があります (まだサポートされていないと思います)。

于 2012-06-13T03:55:40.583 に答える