私は彼らのpython SDKを使用してビームパイプラインを試作されていると、この使用してうまく出力に私の最後のpcollectionをBigQuerySinkを使用することができました:apache_beam Python SDK 0.6.0 BigQuerySinkはテーブルパーティションをサポートしていますか?
beam.io.Write(beam.io.BigQuerySink('dataset.table',
self.get_schema(),
create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED,
write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE))
は、このようなパーティションを含めるようにテーブルを変更:dataset.table$20170517
を400、 「メッセージ」:「分割されていないテーブルからパーティション情報を読み取ることができません:DirectRunner
「コード」と、このパイプラインを実行しようとすると、次のエラーがトリガー
私はここで見つかった例を学んだが、パーティションBigQueryのテーブルにどのようにビームシンクデータパーティションの使用の痕跡 https://github.com/apache/beam/tree/master/sdks/python/apache_beam/examples
は認められませんか?
コードを見ると、実際にはテーブルパーティションがサポートされているようです。 (https://github.com/apache/beam/blob/release-0.6.0/sdks/python/apache_beam/io/gcp/bigquery.py#L268)。あなたのテーブルは適切に分割されていますか? DirectRunnerがこの操作をサポートしているかどうかを確認しています。 – Pablo
テーブルは実際にパーティション化されていますか? –
@pablo @Graham Polley:はい、テーブルが分割されています。 { "タイプ": "DAY" パイプラインを実行し、パーティションを指定せずにデータをロードした後、パーティション情報が削除されます。 BigQuerySinkがパーティションをテーブルから削除しているかのようです。 –