2016年8月28日日曜日

GCPのBigQueryを使ってみました

BigQueryを使ってみたので、関連情報をまとめました

GCP NoSQL を使ってデータ処理したい時

主なサービスはこの辺りだと思います。

今回は、格安で比較的枯れているBigQueryを使ってみました。 以降の記事はBigQueryについてです。

オライリー本もあります。 Google BigQuery

課金について

ビッグデータをCloudサービスで使う時、課金方式をよく把握しておくのは必須です。

  • データ保存による: 1TB 1ヶ月 $20
  • スキャンデータ量による
  • BigQueryで150万円溶かした人の顔
  • 300GBに対して、フルスキャンを数百回繰り返した。(テーブル切り分けのために、select insert)
  • 価格体系が今後変わる。computing量による感じに。
  • ストリーミングは課金: 10万行単位などバルクインサートより高い。
  • 費用的には、Cloud Storageなどにデータを置いて、バルクインサートが良い。
  • ストリーミングの方が手間は少ない(Fluentdや、以下のPandasなどで直接インサートできる)
  • ストリーミングはデータ落ちなどが発生する模様。

BigQuery の課金仕様と注意点をまとめてみた(2015-07 時点)

課金対策ツール

使い方

Pythonから使う場合がメインです。

データ分析基盤としての BigQuery 運用のベストプラクティス Python使いのためのBigQuery連携

また、SDKが提供されてない言語でも、REST APIから使えます。 BigQuery クライアント ライブラリ

その場合、OAUTH2認証が必要です。

CLIで使う

Googleが提供している、基本のbqコマンドです。

bq コマンドライン ツール クイックスタート

インタラクティブに使う

GCPのコンソールからのやり方です。

Quickstart Using the Web UI

Jupyter(IPython)ベースのインタラクティブツールもあります。
Betaですが、Jupyterはかなり使いやすいので、こちらもオススメです。

Google Cloud Datalab 上のページのCLOUD DATALAB を起動は使えなくなってる模様。立ち上げはこちらから。dockerを使って起動する。 quickstart

アプリで使う(ライブラリ)

  • Pandas: io.gbqパッケージがあり、read_gbqto_gbqが用意されてます。pandas使っている方ならこれ一択かと。かなり使いやすいです。
  • Pythonのclientライブラリ: BigQuery-Pythonがあります。Pandas使ってない方はこちらが候補になると思います。使いやすいです。
  • 公式API:上記でできないことがある場合以外、直接触ることはないです。ライブラリ作成者向けだと思います。
Pandas

to_gbqinsertすると、ストリーミングになり、課金対象になります。
大量データを入れる場合は計算した方が良いです。

pandas連携が詳しく載ってるので再掲します。

Python使いのためのBigQuery連携 pandas.io.gbq.read_gbq pandas.io.gbq.to_gbq

Python client

BigQuery-Python PythonからBigQueryを操作するときは BigQuery-Python が便利だった

公式API

BigQuery API クイックスタート BigQuery API Client Library for Python getting_started.py Google Application Default Credentials

0 件のコメント:

コメントを投稿