小ネタです。割と便利だったので、エントリに書き起しておきます。
背景: エンジニア職種でなくてもでかいデータをBigQueryにアップロードできるようにしたい
- BigQueryはWebコンソールから手元のcsvなどをアップロードすることができます
- しかし、これにはファイルサイズの制限があります
Google Cloud Console を使用する場合、ローカル データソースから読み込まれるファイルのサイズが 10 MB を超えないようにしてください
- 10MBは割と簡単に越える量なので、代替手段を考える必要が度々出てきます
- GCSからBigQueryにロードもできますが、データの管理対象が増えてしまうため、ここでは使わないことを想定しています
- 数百BM ~ 数GBくらいのデータであれば
bq load
コマンドなどの利用がぱっと思い浮かびますが、エンジニアリングの経験がない方(例:BizDev / アナリスト / PdM)の手元環境にこれらを整備するのは大変です- サポートする側もされる側も大変
- セルフサービスでBigQueryのテーブルを都度作れるようになって欲しい
解決方法: Cloud Shellを使う
- BigQueryからクエリを叩けるということは、多くの場合Cloud Shellも使えると思います
- Cloud Shellはブラウザだけあれば使えるので、bizdevやアナリストの方でもさっと環境が用意できます
- 問題は「Cloud Shell上にどうやってcsvファイルを持っていくか」ですが、何と公式からアップロードやダウンロードする手段が用意されています...!
- 今日一番驚いた
- Google Cloud Shell の 10 の知っておくと便利な Tips | Google Cloud 公式ブログ
- 5GBまでの制限はあることには注意
- アップロードさえできてしまえば、
bq load
でアップロードするコマンドを叩いてもらうだけであればそこまでハードルは高くないでしょう
Cloud Shellの利点
- 共有ドライブとは違うので、他の人からデータが参照されるということがない
- やろうとすればできるかもしれないが、基本的な使い方をしていれば多分ないはず
- 一定期間利用していないと、データを消してくれる
- BigQueryにアップロード後、不要になったcsvファイルはCloud Shellから削除して欲しいですが、まあ忘れられているケースがありえると思います
- 一定期間利用していない場合は削除されるので、古いデータがずっと残ってしまっていた...!という事態が起こりにくいのも管理者観点からは魅力です
また、Cloud Shell に 120 日間アクセスしないと、ホームディスクが削除されてしまいます
フィードバックもらいました。
colab経由でも案外いけるかもしれません。(ファイルアップロードが楽という文脈)
— まつさか :checked: (@ma2saka) 2023年7月12日
cloud shellはセットアップ不要ではあるのですが、ディスクが5GB制限あるので、それにひっかかる場合はcolab経由がよさそうですね、ありがとうございます。エントリに追記しておきます!
— Yasuhisa Yoshida (@syou6162) 2023年7月12日