Google BigQuery でヒストリカルデータ保存の料金を半分に、 クエリの速度を 10 倍に
2016年4月5日火曜日
* この投稿は米国時間 3 月 24 日、BigQuery Technical Program Manager の Tino Tereshko によって投稿されたもの(投稿はこちら)の抄訳です。
Google BigQuery が処理を、早く、安く、使いやすくし続け、次世代のフルマネージド zero-Ops アナリティクスデータウェアハウスを定義し続けてます。
既に BigQuery の新しい機能のリリースに関する発表を Google Cloud Platform Blog でご覧になっているかもしれませんが、ここではもう少し詳細にお話をしたいと思います。
2016 年 2 月 1 日にエディットされたデータから追跡を始めているので、長期保存割引は 90 日後の 2016 年 3 月 1 日から適用になっているはずです。
長期保存前の料金体系:
長期保存後の料金体系:
Google BigQuery が処理を、早く、安く、使いやすくし続け、次世代のフルマネージド zero-Ops アナリティクスデータウェアハウスを定義し続けてます。
既に BigQuery の新しい機能のリリースに関する発表を Google Cloud Platform Blog でご覧になっているかもしれませんが、ここではもう少し詳細にお話をしたいと思います。
長期保存の料金
Long Term Storage (長期保存) は、 BigQueryに長期間データを保存する場合に適用される自動割引です。データが 90 日を過ぎて BigQuery に保存する場合、料金が 1 GB あたり月 $0.02 から自動的に $0.01 に引き下げられます。2016 年 2 月 1 日にエディットされたデータから追跡を始めているので、長期保存割引は 90 日後の 2016 年 3 月 1 日から適用になっているはずです。
長期保存前の料金体系:


長期保存の料金体系によって、古いデータを削除したり、データのアーカイブプロセスを設計したりしなくても良くなります。古いデータが BigQuery に残っていることによるメリットには、古いデータへのクエリを同じインターフェース、同じコストレベル、同等のパフォーマンス特性で処理ができるということもあります:
- この割引は自動的に適用されます
- パフォーマンスや耐久性、あるいはいかなる機能の劣化もありません
- クエリのコストは標準のストレージと同じです
- 割引はテーブルごと、パーティションごとに計算されます
- もし、あるテーブルのデータを変更した場合には 90 日のカウントはリセットされます
もし、テーブルが時間ごと(例えば 1 日ごと)のパーティションに分かれていた場合、 90 日以上経過したパーティションには長期保存の料金が適用されます。これは、仮に新しいパーティションを作っても同じことです。下でご説明する通り、このプロセスは自動化されることになっており、長期保存のメリットをより受けやすくなります。
Capacitor Storage Engine
私たちは、数年間の開発を経て社内で Capacitor と呼んでいる新しいストレージエンジンの運用を開始しました。Capacitor は、 BigQuery の、業界をリードするパフォーマンス特性に大きな役割を担っている、現在の最適化カラムナストレージフォーマット ColumnIO を置き換えるものです。表面上の変化やダウンタイム無く、顧客は Capacitor のメリットを自動的に享受できます。単純なアグリゲーションやポイントルックアップといった多くのクエリのパフォーマンスは、最大で 10 倍、場合によっては 1000 倍も改善します!
これまでの圧縮データの処理では先ず解凍が必要でしたが、 Capacitor では圧縮データを直接扱うことができる点が、多くの改善の中でも特筆すべき点です。このことによりデータ処理の効率が大きく高まりました。
Poseidon - クエリのパフォーマンスに影響しない、より高速のインポート/エクスポート
インポートとエクスポートのパイプラインを、クエリが基盤として活用しているのと同じ Dremel インフラストラクチャを使って再構築しました。これにより、高速で、クエリのパフォーマンスには全く影響しないフリーなインポートなど、当然期待されるメリットばかりではなく、より高いパフォーマンスやスケーラビリティとプレディクタビリティ、インジェスト時間の約 5 倍の改善ももたらします。
さらに、インポートとクエリを対称に作ったことで、 BigQuery ストレージにはないデータのクエリを、より簡単にしています。Google Cloud Storage からインポートできるものは、全て直接クエリすることが可能です。
良い例としては、 AVRO のサポートの追加があげられますが、 AVROは標準のフリーバッチプロセス経由のインポートと直接のクエリの両方が可能です。
Table Partitions v1 - アルファ
(この機能は、限られた数の顧客向けにアルファ版として数週間のうちに提供いたします)
現在は、データを日ごとに分割し TABLE_DATE_RANGE オペレーションによりデータを 1 つにまとめるのが最善のやり方ですが、 Table Partitions の最初のバージョンにより、データを 1 つのテーブルに保存しておくことができるようになります。自動パーティションのサポートで、データ処理がより安く、より早く、そしてより簡単になります。そのうえ、パーティションは一般的なユーザーが伝統的なデータベースソフトで慣れ親しんでいるテーブルマネジメントの操作性を受け継いでいます。
このバージョンのテーブルパーティションはデフォルトで、データが BigQuery にインジェストされた時に設定されます。将来提供されるバージョンの Table Partitions ではカスタムの日時をもったパーティションや、一般的なカスタム値を持ったパーティションの設定が可能になります。
Table Partitions 無し:日付で分割(カスタマ・マネージド)+ TABLE_DATE_RANGE (クエリ時)

Table Partitions 有り:日付でパーティション作成(BigQuery により自動管理) + パーティションの選択(クエリ時)

パーティションにサフィックスを付け加えることで、各パーティションを直接処理することも可能です。例えば、次のようなクエリを実行することができます:
SELECT … FROM sales$20160101
これは次のクエリと同等となります
SELECT … FROM sales WHERE _PARTITION_LOAD_TIME = TIMESTAMP(“20160101”)
仮に、カラム c1 と c3 のデータの中で 2016 年 1 月 3 日と 2016 年 1 月 4 日のデータのみを処理するクエリがあったとします。Table Partitions が無ければ、 BigQuery はこの二つのカラム全体をスキャンするため、実際に必要なのはその一部のデータだけなのにもかかわらず、ユーザーには二つのカラム分の金額が請求されます:

Table Partitions では、どのパーティションからデータを読み出すかという指示を追加することができます。この例では、 BigQuery はカラム c1 と c3 の 20160103 と 20160104 のパーティションからのみデータを読み出します。このため、パフォーマンスが向上しますし、コストも目に見えて安くなります。

AVRO フォーマットサポート
CSV や JSON に加え、人気の AVRO フォーマットも BigQuery へデータをインポートする時と Federated Data Sources からデータをクエリする時の両方で利用することができるようになりました。
Google Cloud Storage から AVRO ファイルをクエリする場合:
bq query --external_table_definition=foo::AVRO=gs://test/avrotest.avro* "SELECT * FROM foo"
Google Cloud Storage から AVRO ファイルを BigQuery にロードする場合:
bq load --source_format=AVRO project:dataset.dest_table gs:://test/avrotest.avro
自動スキーマ検出
現在の BigQuery がリリースされる前は、 CSV ファイルや JSON ファイル用にテーブルスキーマを定義する必要がありました。今では、 BigQuery はスキーマを自動的に検出しようとします。
これはロード時に CSV、 JSON、 AVRO ファイルに対して機能します:
bq load --source_format=CSV project:dataset.dest_table gs:://test/csvtest.csv
Google Cloud Storage から直接このデータをクエリする場合には次のようになります:
bq query --external_table_definition=foo::CSV=gs://test/test.csv* "SELECT * FROM foo"
新しい Table Create UX
BigQuery では、スムーズでシンプルな BigQuery UI のテーブル作成のユーザー体験を提供します。

自動スキーマ推理が数週間のうちに UI に提供される予定になっていることをご承知おきください。
目に見えない改善
私たちは、データをより早く、より簡単に、より信頼性高くクエリする、多くのトランスペアレントで目に見えない改善をリリースしています。これらの改善のうちの一つは、分析関数とセミ結合 (semi-JOINs) のダイナミックマテリアライゼーションです。
私たちの顧客は、卓越した信頼性とパフォーマンスを求めています。いつものことですが、私たちはこれらの機能を貴社にシームレスに、全くダウンタイムなしで、ユーザーの手を煩わせることなくご提供します。フルマネージドな方法ということです!
- Tino Tereshko, BigQuery Technical Program Manager
0 件のコメント :
コメントを投稿