2

"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コードを使用して

サンプルスニペット。それは動作しますが、それはデータを複製するだろう、再び同じ日付に実行されていることから、目的を失敗し、

  1. WRITE_APPENDとしてwrite_dispositionの更新:

    はここで試してみましたi`v事柄のいくつかです。

  2. 私は任意のログを観察することができれば私が見つけたlinkに基づいて、実際に動作切り捨てんどのように、見て、

bq --apilog /tmp/log.txt load --replace --source_format=NEWLINE_DELIMITED_JSON 'table.$20160101' sample_json.json

コマンドを使用します。

  1. linksでも試しましたが、これもWRITE_APPENDを使用しています。

write_truncateメソッドを使用してデータフロージョブからパーティションテーブルに書き込む方法はありますか?

追加の詳細が必要な場合はお知らせください。 ありがとう

+0

パーティションデコレータでテーブルを作成できなかった場合は、バグかもしれません。確認して、あなたに連絡しましょう。 – Pablo

+0

テーブルIDは英数字でなければならないため、スタックトレースを提供できますか? – Pablo

+0

私はIO devでチェックしました。これは今サポートされていないようです。 :/ – Pablo

答えて

0

この時点ではサポートされていません。 IO devから見つけ出すためにクレジットが@Pabloに送られます。

GithubページのBeam documentationによれば、そのような機能を要求するには、JIRA pageが適切です。私はそこで機能リクエストを提出し、ここにコメントのリンクを掲示してコミュニティの他の人がフォローしてサポートを示すことをお勧めします。

関連する問題