先日、GoogleBigQueryを使う機会が有りまして、はまった箇所が有りましたのであメログ。
- SQLの書式を拡張している
SQLの書き方がちょっと独特
select * from tablename;
が
select * from [projectID:dataset.tablename];
となります - 大量データのインポートはGCPStorage経由で
データインポートの手段は数種類用意されてますが、大量データとなると手段が限られます
ジョブストリーミングでインポートする方法も有るんですが、Storageからインポートする方法をご紹介
例えば1000万件のCSVデータやと数十GBになるので、アップロードするだけで何日も掛かりそう…現実的ではないです
Storageからはgzip( *.csv.gz)形式のインポートが出来るんです
エンコーディングはUTF-8ね - gzipインポートは単一ファイルのみ
ついついいつもの癖で
tar -zcvf testdata.csv.tar.gz testdata.csv
とかすると、インポート時に
Error detected while parsing row starting at position: 0. Error: Bad character (ASCII 0) encountered. (error code: invalid)
という謎のエラーを吐きます
どうやらtarコマンドで一つのファイルを結合した為に、無効なデータが生成されてしまった様です…一つのファイルを結合しても無意味なのに気付かなんだ orz
gzip -c testdata.csv > testdata.csv.gz
で事足りました
ちなみに2000万件のCSVのgzipデータのインポートは三十分くらいで完了しました
ローカル(2.1Ghz,6GB)で圧縮するだけでも同じくらい掛かったんで、やっぱ速いですね
ちなみにちなみにデータ作成はシェルで行ったんですが、ローカルで半日くらい掛かりました…
0 件のコメント:
コメントを投稿
つっこみ