2016-11-24 10 views
1

2014年までのレコードをBigQueryに移行する必要があるレコードを持つデータベースがあります。パーティションテーブル機能を使用すると、データベースのパフォーマンスが向上します。ヒストリカルデータをそれぞれのパーティションに挿入する方法

これまでのところ、私は実際のデータの小さなサンプルをWeb UI経由で読み込みました。テーブルがすでにパーティション化されている間は、すべてのデータがクエリを実行した日付の単一パーティションになりました。期待する、公正であること。

ドキュメントサイトを検索したところ、thisに感染していましたが、これは私が探しているものかどうかわかりません。

私は2つの質問があります。

1)上記の例では、彼らはSELECTクエリにデコレータを使用しますが、私は同様INSERTクエリにそれを使用することができますか?

2)私はをBigQuery APIに接続するために使用していますが、私はtable.insert_dataメソッドを見つけていましたが、特にパーティションに挿入するための参照が見つかりませんでした。それを逃した場合、またはデータを挿入するためにクエリAPIを使用する必要があります。

答えて

1

このもう少し調査:

1)私は全然INSERTクエリを実行するために管理しているとは思わないが、これは私のために議論の余地がある、なぜなら...

2)ターン

私はテーブルにいくつかのデータを挿入するには、このスニペットを使用していた:

直接Pythonクライアントを使用してパーティションに挿入することが可能であるが、それは私には明らかではなかったことを

キーはそうのように、セレクタ内のテーブル名に$と日付を(たとえば、20161201)追加された:

table = dataset.table('<table_name>$20161201') 

そして、それは正しいパーティションに挿入する必要があります。

+0

私がしたことをやろうとすると、私はBadRequestを持っています。「過去の31日以内に、現在の日付と比較して将来16日以内にパーティションにのみストリームできます。 – Trolldejo

+0

申し訳ありませんが、私たちはプロジェクトでBigQueryを実装していないことが判明しました。私が実験していたときにこの特定の問題にぶつかりませんでした。あなたが新しい質問を投稿し、この質問にリンクした方が便利かもしれません。 – HardDiskD

+0

あなたのポイントを得ました、新しい質問を開く価値はありません。回避策はGCP BQドキュメントで提案されており、最良のアドバイスはbqをコマンドラインとして使用しています... – Trolldejo

関連する問題