2016-04-18 18 views
0

Cloud StorageからBigQueryにデータをロードする最も効率的な方法を理解しようとしています。効率的に私が意味するのは - 好ましくは、データを小さなセットに分割して各サブセットを別々にアップロードしたくない場合 - 私のデータを解凍するので、bqツールの5 TB制限を活用することもできます。別々のBigQueryテーブルに30(> 4GB)を超えるデータセットCloud StorageからBigQueryへのデータのストリーミング

私は次の選択肢の中に見てきました: 1. BQ負荷 - 、圧縮されたデータに 2分割されたデータを4GBの制限があるパンダのデータフレームに変換し、JSONに変換し、BQへの負荷 - これは分割を必要とし、そのI私がアップロードしなければならないデータセットの数が与えられているのを避けたいのですが、それらはすべて異なる行サイズを持っているので、手元のタスクを自動化するのは簡単ではありません。 3.クラウドデータフロー?

私はDataflowの詳細を調べていませんが、全体的な質問はデータを分割してバッチアップロードを実行するか、データをストリームする、つまり一度に1行挿入するクラウドストレージからBQへ

+0

ストリーミングに対して100%投票しました –

+0

.gzファイルは断片化可能な圧縮形式ではないため、大容量の.gzファイルをデータストレージに使用すると、大規模なデータ分析フレームワークに問題が発生します。たとえ100GBの.​​gzファイルがサポートされていても、1人の作業者がそのファイルを処理するには*長い時間がかかります。 –

答えて

1

ほとんどの場合、データを解凍してGCSにコピーし、そこからBigQueryにロードするのが最も簡単なオプションです。あなたの他の提案はどれも、より高価になるか、より多くの仕事をするか、規模を縮小する可能性が低くなります。

圧縮解除された入力データを使用する場合の唯一の欠点は、ネットワークのアップロード時間が長くなり、GCSに保存するために多くの費用がかかります。つまり、それをbigqueryにロードしている間だけ、GCSに数分必要です。

関連する問題