DeNA のデータ活用を支える BigQuery データの民主化とガバナンス強化の軌跡 | Google Cloud INSIDE Games & App...
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
1. Confidential & Proprietary
Google BigQueryIntroduction / BigQuery Organization /
Exploring and Interacting with BigQuery
Google Cloud カスタマーエンジニア
Google Cloud ベストプラクティス
2. Confidential & Proprietary
Agenda
● Introduction
● BigQuery Organization
● Exploring and Interacting
with BigQuery
Google Cloud ベストプラクティス Google BigQuery
※このスライドは 2017 年 12 月時点の情報に基づき作成しています。最新情報は Google Cloud Platform のドキュメントをご参照ください。
https://cloud.google.com/docs/
3. Google Cloud ベストプラクティス Google BigQuery
Confidential & Proprietary
● 億件レベルの大規模データセットに対する高速クエリ
● 分析用のデータウェアハウス
○ UPDATE, DELETE, INSERT は制限あり
● セットアップ、パフォーマンスチューニングやクラスタ拡張といったイ
ンフラ作業不要
● ストレージ容量無制限。自動スケールアウト
Google BigQuery とは
4. Google Cloud ベストプラクティス Google BigQuery
Confidential & Proprietary
● BI ツールを使って非技術者でも操作可能
○ Tableau, QlickView, Google DataStudio, Google
Spreadsheet / Microsoft Excel (ODBC, JDBC)
● ETL
○ クエリ結果をテーブルに出力可能
○ JSON 関数/正規表現関数
● データ処理エンジンとの連携
○ Cloud Dataflow, Cloud Dataproc, Hadoop
Google BigQuery とは
5. Google Cloud ベストプラクティス Google BigQuery
Confidential & Proprietary
BigQuery
ログ収集/分析基盤
Cloud Logging
App Engine
Analytics Server
Google Analytics
Compute Engine
On-premise / 他社クラウド
Google
Spreadsheet
Stream API
File
3rd party tools
Simba ODBC Driver
Google BigQuery 参考構成
6. Google Cloud ベストプラクティス Google BigQuery
Confidential & Proprietary
5 年間における絶え間ないイノベーション
2010 2011 2012 2013 2014
一般公開
Large query results
2015 2016
900
300
0
1,200
コミットされたコード数
Google I/Oでのベータリリース
Dremel X
Big JOIN サポート
Dynamic Execution
Faster shuffle
100k qps ストリーミング
標準SQL
Table Partitioning
Capacitor
User-defined functions
11. Google Cloud ベストプラクティス Google BigQuery
Confidential & Proprietary
Dataset (organization, access control)
Job (query, import, export, copy)
Project (billing, top-level container)
Table (data with schema)
Jobs
● すべての長時間実行される可能性があるものに使わ
れる
● Examples:
○ クエリ
○ データのインポート、エクスポート
○ データのコピー
● キャンセルできる
12. Google Cloud ベストプラクティス Google BigQuery
Confidential & Proprietary
Jobs
$ bq ls -a -j
jobId Job Type State Start Time Duration
-------------------------------------------- ---------- --------- ----------------- ----------
job_WFk8LFLjxBABcv595_77PfRAPus query SUCCESS 29 May 15:30:02 0:00:00
job_lYDOJYrbdwKXwSxRpWh6QhfNWpE query SUCCESS 29 May 14:51:46 0:00:01
job_CzrUdmhK9a95wuIGPeDAObUe5dg query SUCCESS 29 May 09:57:12 0:00:00
● BigQuery は処理の単位をジョブとして管理
13. Google Cloud ベストプラクティス Google BigQuery
Confidential & Proprietary
Jobs
● BigQuery は処理の単位をジョブとして管理
$ bq --format json show -j job_WFk8LFLjxBABcv595_77PfRAPus
{"status":{"state":"DONE"},"kind":"bigquery#job","statistics":{"query":{"cacheHit":true,"totalBytesP
rocessed":"0"},"endTime":"1432881002581","creationTime":"1432881002386","totalBytesProcessed":"0","s
tartTime":"1432881002509"},"jobReference":{"projectId":"fukudak-playground","jobId":"job_WFk8LFLjxBA
Bcv595_77PfRAPus"},"etag":""Gn3Hpo5WaKnpFuT457VBDNMgZBw/byQrtfxSXA8MpoOtROYPvCfyNmE"","user_email"
:"fukudak@google.com","configuration":{"query":{"useQueryCache":true,"destinationTable":{"projectId"
:"fukudak-playground","tableId":"anon656e2eb1f794dbeb3a4233962b14d8418e618b74","datasetId":"_ccf1fa0
a59a1479e1ec782cce6708e9edf3984dc"},"priority":"INTERACTIVE","writeDisposition":"WRITE_TRUNCATE","cr
eateDisposition":"CREATE_IF_NEEDED","query":"SELECTn count(*)nFROMn
[bigquery-samples:wikimedia_pageviews.201201];"}},"id":"fukudak-playground:job_WFk8LFLjxBABcv595_77P
fRAPus","selfLink":"https://www.googleapis.com/bigquery/v2/projects/fukudak-playground/jobs/job_WFk8
LFLjxBABcv595_77PfRAPus"}
26. Google BigQuery
Google Cloud ベストプラクティス
Thank you
1 : Introduction / BigQuery Organization / Exploring and Interacting with BigQuery
2 : Data ingestion into BigQuery / Writing Queries in BigQuery / Data extraction and exportation from BigQuery
3 : Best Practices and Performance Optimization / Cost Optimization