"WRITE_TRUNCATE"オプションで正常に機能した新しいテーブルを毎日作成するために使用していた既存の設定では、私たちのデータフローの仕事は、write_truncateではうまくいきません。Biqqueryにデータを読み込むwrite_truncateを使用してGoogle Dataflow/Beamを使用してパーティションテーブルを作成
書き込みデリゲートを "WRITE_APPEND"(私が理解したところではbeamから、おそらくテーブルを削除してから再作成しようとしている)から、完全にうまく動作します。新しいテーブルを作成します。それは、テーブルを再作成しようと、我々は、引数内のパーティションデコレータを供給するため
Table IDs must be alphanumeric
:
beam.io.Write('Write({})'.format(date), beam.io.BigQuerySink(output_table_name + '$' + date, create_disposition=beam.io.BigQueryDisposition.CREATE_NEVER, write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE)
エラーを与える:Pythonコードを使用して
サンプルスニペット。それは動作しますが、それはデータを複製するだろう、再び同じ日付に実行されていることから、目的を失敗し、
- WRITE_APPENDとしてwrite_dispositionの更新:
はここで試してみましたi`v事柄のいくつかです。
- 私は任意のログを観察することができれば私が見つけたlinkに基づいて、実際に動作切り捨てんどのように、見て、
bq --apilog /tmp/log.txt load --replace --source_format=NEWLINE_DELIMITED_JSON 'table.$20160101' sample_json.json
コマンドを使用します。
- linksでも試しましたが、これもWRITE_APPENDを使用しています。
write_truncateメソッドを使用してデータフロージョブからパーティションテーブルに書き込む方法はありますか?
追加の詳細が必要な場合はお知らせください。 ありがとう
パーティションデコレータでテーブルを作成できなかった場合は、バグかもしれません。確認して、あなたに連絡しましょう。 – Pablo
テーブルIDは英数字でなければならないため、スタックトレースを提供できますか? – Pablo
私はIO devでチェックしました。これは今サポートされていないようです。 :/ – Pablo