Cloud Onr
Cloud OnAir
Cloud OnAir
BigQuery の一般公開データセットを
利用した実践的データ分析
2019 年 3 月 28 日 放送
Cloud OnAir
初心者が BigQuery の一般公開データセットを利用し、
● データ分析の方法
● BigQuery の実際の使い方
に習熟する
本日のテーマ
Agenda
Cloud OnAir
1
3
2
4
一般公開データセットをさわってみよう
BigQuery の特徴を検証する
BigQuery GIS を利用して位置情報を分析する
BigQuery ML を利用して機械学習をかんたんに行う
Cloud OnAir
Cloud OnAir
一般公開データセットを触ってみよう
Cloud OnAir
● BigQuery 上にストア
● すぐ利用可能
● 誰でもクエリできる
● ストレージ料金は不要
BigQuery 一般公開データセットとは
https://cloud.google.com/bigquery/public-data/
Cloud OnAir
BigQuery コンソール
● 「データを追加」
● 一般公開データセットを調べる
● “GitHub” で検索
一般公開データセットを利用してみる
https://cloud.google.com/bigquery/public-data/
Cloud OnAir
BigQuery コンソール
● GitHub Activity Data を選択
● データセットを表示
● サイドバーに表示される
一般公開データセットを利用してみる
https://cloud.google.com/bigquery/public-data/
Cloud OnAir
クエリエディタ
● クエリを入力 : 実行
● 2 億行からコミットの件名で
多いものをランキング
一般公開データセットを利用してみる
https://cloud.google.com/bigquery/public-data/
SELECT subject AS subject,
COUNT(*) AS num_duplicates
FROM
`bigquery-public-data.github_repos.co
mmits`
GROUP BY subject
ORDER BY num_duplicates DESC
LIMIT 100
Cloud OnAir
Cloud OnAir
BigQuery の特徴を検証する
Cloud OnAir
BigQuery の特徴と
高速な分析を支える機能
● カラム (列)指向
● 分割テーブル(パーティション)
● クラスタリング
● 更に便利な新機能
BigQuery の特徴を検証する
Cloud OnAir
カラム指向ストレージ
● BigQuery の内部はカラム指向ストレージ (Capacitor)
● 指定されたカラムは上から下までフルスキャンされる
● パフォーマンス、コストの観点から必要なカラムのみクエリをする
id name cost date
SELECT id, cost FROM table
BigQuery ホワイトペーパー“Inside Look at Google BigQuery”
Cloud OnAir
デモ : カラム指向を確認する
クエリエディタ
● 同じデータセットをクエリする
SELECT * FROM
`bigquery-public-data.samples.wiki
pedia`
すべてのカラム
SELECT title, id FROM
`bigquery-public-data.samples.wiki
pedia`
必要なカラムのみ 処理コスト、
及びスピードが
改善
Cloud OnAir
分割テーブル (パーティション)
id name cost date
2019-01-01
2019-01-01
2019-01-01
2019-01-01
2019-01-01
2019-01-02
2019-01-02
2019-01-02
2019-01-02
2019-01-02
2019-01-03
2019-01-03
SELECT id, cost FROM table
WHERE date=”2019-01-01”
BigQuery ドキュメント- 分割テーブルの概要
● テーブルを日付で分割
● 日付でスキャン範囲を絞り込む
● 処理コスト、パフォーマンスが改善
● 2 つのタイプ
○ 分割テーブル : カラムを指定、カラムデータに
もとづき自動分割 (新しい方法、推奨)
○ 取り込み時間で分割されたテーブル : データを
取り込んだ日や、自分で指定して分割
Cloud OnAir
デモ : 分割テーブルを確認する
BigQuery ドキュメント- 分割テーブルの概要
Wikipedia のログを分割する
● CREATE TABLE 構文を利用
● PARTITION_BY で分割に用いる
TIMESTAMP または DATE カラム
を指定
● 今回は unixtime 表記の timestamp
カラムを TIMESTAMP 型に変更し
分割に利用
● 割当(ソフトリミット)回避の
ため、今回は二度にわけてクエリ
CREATE TABLE
`$YOUR_PROJECT.query_demo.wikipedia_part
itioned` PARTITION BY
DATE(partition_timestamp) AS
SELECT *, TIMESTAMP_SECONDS(timestamp)
AS partition_timestamp FROM
`bigquery-public-data.samples.wikipedia`
WHERE timestamp < 1136041200
SELECT *, TIMESTAMP_SECONDS(timestamp)
AS partition_timestamp FROM
`bigquery-public-data.samples.wikipedia`
WHERE timestamp >= 1136041200
2) 抽出先テーブルを指定し、「テーブルに追加する」設定でクエリ
1) DDL を用いて分割テーブルを元のテーブルから作成
Cloud OnAir
デモ : 分割テーブルを確認する (2)
BigQuery ドキュメント- 分割テーブルの概要
分割テーブルをクエリする
SELECT title, id FROM
`bigquery-public-data.samples.wiki
pedia` WHERE timestamp =
1141138800 LIMIT 1000
分割無し
SELECT title, id FROM
`$YOUR_PROJECT.query_demo.wikipedi
a_partitioned` WHERE
partition_timestamp =
TIMESTAMP("2006-03-01")
分割あり
分割された部分のみの
スキャンで
大幅な処理サイズ削減
Cloud OnAir
分割テーブル - データ ポータルでの利用
BigQuery ドキュメント- 分割テーブルの概要
分割テーブル
● 分割する列として「partition_timestamp を」
使用する :チェックを入れない
● フィルタ設定で自動的に分割テーブルが
利用される
取り込み時間で分割されたテーブル
● 分割する列として「 partition_timestamp 」 を
使用する :チェック
Cloud OnAir
分割テーブル - データ ポータルでの利用 (2)
BigQuery ドキュメント- 分割テーブルの概要
グラフ設定
● 期間のディメンジョン
● 時間のディメンジョン
フィルタ
● 期間
SELECT FORMAT_TIMESTAMP('%Y%m%d',
t0.partition_timestamp) AS t0_qt_5713rb7kvb,
COUNT(1.000000000000000) AS t0_qt_z99vgb7kvb FROM
`dataset.table` AS t0 WHERE
(FORMAT_TIMESTAMP('%Y%m%d',
t0.partition_timestamp) >= '20060101' AND
FORMAT_TIMESTAMP('%Y%m%d', t0.partition_timestamp)
<= '20110519') GROUP BY t0_qt_5713rb7kvb ORDER BY
t0_qt_5713rb7kvb ASC;
データポータルの発行したクエリ
Cloud OnAir
クラスタ化テーブル
2018-01-01
c1 userId c3 eventDate c5
2018-01-02
2018-01-03
2018-01-04
2018-01-05
SELECT c1, c3 FROM ... WHERE userId BETWEEN 52 and 63
AND eventDate BETWEEN “2018-01-03” AND “2018-01-05”
● 1 つ以上の列の内容に基づき
データを編成
● 関連したデータが同じ場所へ
● 不要なデータのスキャンが省略
https://cloud.google.com/bigquery/docs/clustered-
Cloud OnAir
INFORMATION_SCHEMA BETA
● 2019 2 月リリース
○ ODBC などからでもテーブル定義を
読み取れるように
○ BigQuery の CLI や GUI が使えない環境でも
データセットの把握が可能
○ DDL の自動生成などの用途でも
分析で便利な機能の利用
SELECT
* EXCEPT(is_typed)
FROM
query_demo.INFORMATION_SCHEMA.TABL
ES
https://cloud.google.com/bigquery/docs/informatio
n-schema-intro
Cloud OnAir
DDL ALTER 句 サポート BETA
● 2019 2 月リリース
○ ALTER TABLE 句が テーブルとビューに
対して可能に
○ 発行したクエリでそのままテーブルを
置き換えることがクエリだけで可能に
分析で便利な機能の利用
{ALTER TABLE | ALTER TABLE IF
EXISTS}
table_name
SET
OPTIONS(table_set_options_list)
https://cloud.google.com/bigquery/docs/reference/
standard-sql/data-definition-language#alter_table
_set_options_statement
Cloud OnAir
Cloud OnAir
BigQuery GIS を利用して位置情報を
分析する
Cloud OnAir
BigQuery GIS とは 
{
"type": "Polygon",
"coordinates": [
[
[139.7483,35.6996],
[139.7493,35.6998],
...
[139.7518,35.6999]
]
]
}
SELECT
city_name AS ‘地区名’,
COUNT(car_id) AS ‘台数’
FROM
city, car
WHERE
ST_Intersects(car.geo,
city.geo)
...
GROUP BY city_name
地区名 台数
港区 六本木 58
港区 南青山 40
港区 芝公園 20
BigQuery
安価なフルマネージドのストレージ
領域に行政界や道路情報等を格納
サーバーレスの
DWH で膨大なデータを瞬時に解析
ビジネスに新たな知見をもたらす
Cloud OnAir
ユーザーから 500 メートル以内の店舗を抽出
BigQuery GIS の利用例
SELECT store_name
FROM stores
WHERE
ST_DWITHIN(store_loc,
ST_GeogPoint(@lon, @lat),
500)
Cloud OnAir
店舗から 500 メートル以内にいるユーザーを数える
BigQuery GIS の利用例
SELECT store_name, COUNT(1) users
FROM stores s JOIN users u
ON ST_DISTANCE(s.loc, u.loc) < 500
GROUP BY 1
Cloud OnAir
郵便番号の中の区画にいるユーザー数の算出
BigQuery GIS の利用例
SELECT zipcode, COUNT(1) users
FROM users u
JOIN
(select zipcode,
st_geogfromtext(zipcode_geom) loc
from
`bigquery-public-data.utility_us.zipcode_
area`) z
ON ST_COVERS(z.loc, use.loc)
GROUP BY 1
Cloud OnAir
BigQuery GIS / Geo Viz の利用
BigQuery Geo Viz
https://bigquerygeoviz.appspot.com/
● BigQuery 上でクエリを発行し
可視化できるツール
● 手軽な位置情報のプロットに
Cloud OnAir
Geo Viz の利用
BigQuery Geo Viz
https://bigquerygeoviz.appspot.com/
● 初回のみ “Authorize” を押して
BigQuery の API を許可
● Project ID を入力
● SQL を入力
● “Run” で実行
● “See results” ボタンで次へ
https://cloud.google.com/bigquery/docs/gis-tutorial-hurrican
e
Cloud OnAir
Geo Viz の利用 (2) - プロット
BigQuery Geo Viz
https://bigquerygeoviz.appspot.com/
● WKT 形式の位置情報を含む
カラムを選択する
● 右側地図にプロットされる
https://cloud.google.com/bigquery/docs/gis-tutorial-hurrican
e
Cloud OnAir
Geo Viz の利用 (3) - スタイル調整 
データをもとにスタイルを変更
● fillColor (塗る色) : 風速を可視化
○ Data Driven
(数字をもとに塗り分け)
○ “Function” : “linear”
○ “Field” : “usa_wind”
○ Domain : “0”, “150”
○ Range : “0006ff”, “#ff0000”
https://cloud.google.com/bigquery/docs/gis-tutorial-hurrican
e
Cloud OnAir
Geo Viz の利用 (3) - スタイル調整 
データをもとにスタイルを変更
● circleRadius (半径) : ハリケーンの
半径
○ Data Driven
(数字をもとに塗り分け)
○ “Function” : “linear”
○ “Field” : “radius_50kt”
○ Domain : “0”, “135”
○ Range : “5”, “15”
https://cloud.google.com/bigquery/docs/gis-tutorial-hurrican
e
Cloud OnAir
BigQuery GIS 事例
業種:Taxi Service
導入サービス:BigQuery、Google Cloud Storage、
Cloud Dataflow など
概要:BigQuery を活用して、国内最大級のタクシー
配車アプリ『JapanTaxi』を支えるデータ分析基盤を
構築。高速で効率的なデータ運用に加え、
非エンジニア層がデータ分析基盤にアクセスできる
ようにしたことで、ビジネスのスピード感も大幅に
増しました。
Cloud OnAir
Cloud OnAir
BigQuery ML を利用して
機械学習をかんたんに行う
Cloud OnAir
BigQuery 上で、 SQL クエリを
ベースに機械学習モデルを
作成、利用
BigQuery ML とは
BigQuery
BigQuery ML を
活用した機械学習
Google アナリティクス 360
にあるデータ、収益
メール マーケティング
および、
広告システムと連携
BI プラットフォームを介して
レポート
データ ポータル、Looker など
予測
モデルを
再トレー二ング
Cloud OnAir
デモ : BigQuery ML でユーザーあたり購入数を予測
#standardSQL
CREATE MODEL `bqml_tutorial.sample_model`
OPTIONS(model_type='logistic_reg') AS
SELECT
IF(totals.transactions IS NULL, 0, 1) AS label,
IFNULL(device.operatingSystem, "") AS os,
device.isMobile AS is_mobile,
IFNULL(geoNetwork.country, "") AS country,
IFNULL(totals.pageviews, 0) AS pageviews
FROM
`bigquery-public-data.google_analytics_sample.ga_sessi
ons_*`
WHERE
_TABLE_SUFFIX BETWEEN '20160801' AND '20170630'
1. モデルを作成
BigQuery ML で
ロジスティック回帰モデルを
作る
BigQuery に入っているデータを
教師データとする
( label は totals.transactions を
ベースに作成 )
https://cloud.google.com/bigquery/docs/bigquery
ml-analyst-start
Cloud OnAir
デモ : BigQuery ML でユーザーあたり購入数を予測
#standardSQL
SELECT *
FROM
ML.EVALUATE(MODEL `bqml_tutorial.sample_model`, (
SELECT
IF(totals.transactions IS NULL, 0, 1) AS label,
IFNULL(device.operatingSystem, "") AS os,
device.isMobile AS is_mobile,
IFNULL(geoNetwork.country, "") AS country,
IFNULL(totals.pageviews, 0) AS pageviews
FROM
`bigquery-public-data.google_analytics_sample.ga_sessi
ons_*`
WHERE
_TABLE_SUFFIX BETWEEN '20170701' AND '20170801'))
2. モデルを評価
BigQuery ML でモデルを評価
(その他: Confusion Matrix, Roc
curve なども確認可能 )
BigQuery に入っているデータを
評価するデータとする
( label は totals.transactions を
ベースに作成 )
https://cloud.google.com/bigquery/docs/bigquery
ml-analyst-start
Cloud OnAir
デモ : BigQuery ML でユーザーあたり購入数を予測
SELECT
fullVisitorId,
SUM(predicted_label) as total_predicted_purchases
FROM
ML.PREDICT(MODEL `bqml_tutorial.sample_model`, (
SELECT
IFNULL(device.operatingSystem, "") AS os,
device.isMobile AS is_mobile,
IFNULL(totals.pageviews, 0) AS pageviews,
IFNULL(geoNetwork.country, "") AS country,
fullVisitorId
FROM
`bigquery-public-data.google_analytics_sample.ga_sessi
ons_*`
WHERE
_TABLE_SUFFIX BETWEEN '20170701' AND '20170801'))
GROUP BY fullVisitorId
ORDER BY total_predicted_purchases DESC
LIMIT 10
3. モデルを利用する
作成されたモデルから
predicted_label の合計を取得
(購入予測数)
PREDICT 対象となるデータを
BigQuery から SELECT する
https://cloud.google.com/bigquery/docs/bigquery
ml-analyst-start
Cloud OnAir
Cloud OnAir
まとめ
Cloud OnAir
● BigQuery の一般公開データセットは簡単に利用できる
● 一般公開データセットを利用してすぐに BigQuery 上での分析に
習熟できる
○ カラムの指定によるスキャン効率化
○ 分割テーブル、クラスタリング
○ BigQuery GIS
● BigQuery の進化は分析だけではなく、分析者が ML を使えるように
○ BigQuery ML
まとめ

More Related Content

PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PPTX
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
PDF
いまさら聞けないPostgreSQL運用管理
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
PDF
Vacuum徹底解説
PDF
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
InnoDBのすゝめ(仮)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
アーキテクチャから理解するPostgreSQLのレプリケーション
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
いまさら聞けないPostgreSQL運用管理
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
Vacuum徹底解説
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
InnoDBのすゝめ(仮)

What's hot (20)

PDF
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
PDF
PostgreSQL 15の新機能を徹底解説
PPTX
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
PPTX
BuildKitによる高速でセキュアなイメージビルド
PDF
Cognitive Complexity でコードの複雑さを定量的に計測しよう
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PPTX
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
PPTX
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PDF
DockerとPodmanの比較
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PPTX
MLOpsはバズワード
PDF
Google Cloud ベストプラクティス:Google BigQuery 編 - 03 : パフォーマンスとコストの最適化
PPTX
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PPTX
BigQuery Query Optimization クエリ高速化編
PDF
イミュータブルデータモデルの極意
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
PostgreSQL 15の新機能を徹底解説
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
BuildKitによる高速でセキュアなイメージビルド
Cognitive Complexity でコードの複雑さを定量的に計測しよう
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
コンテナの作り方「Dockerは裏方で何をしているのか?」
DockerとPodmanの比較
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
MLOpsはバズワード
Google Cloud ベストプラクティス:Google BigQuery 編 - 03 : パフォーマンスとコストの最適化
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
BigQuery Query Optimization クエリ高速化編
イミュータブルデータモデルの極意
Ad

Similar to [Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送 (20)

PDF
[Cloud OnAir] 最新アップデート Google Cloud データ関連ソリューション 2020年5月14日 放送
PDF
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
PDF
[Cloud OnAir] お客様事例紹介 -リクルートライフスタイルにおける デジタルトランスフォーメーションとクラウド活用- 2018年7月12日 放送
PDF
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
30%のMAU増加と78%のコスト削減を両立する方法.pptx
PDF
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
PDF
[Cloud OnAir] Bigtable に迫る!基本機能も含めユースケースまで丸ごと紹介 2018年8月30日 放送
PDF
[Cloud OnAir] Google Cloud Next '18 in London 最新情報 2018年10月18日 放送
PDF
[Cloud OnAir] BigQuery で実現する Smart Analytics Platform 2019年10月24日 放送
PDF
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
PDF
[Cloud OnAir] Google Workspace でできる データ分析と業務自動化のご紹介 2020年12月3日 放送
PDF
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
PDF
これでBigQueryをドヤ顔で語れる!BigQueryの基本
PPTX
Vertica 9.0.0 新機能
PDF
[Cloud OnAir] BigQuery ML と AutoML Tables で はじめるマーケティング分析入門 2019年5月23日 放送
PDF
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PDF
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PDF
オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)
PDF
[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送
[Cloud OnAir] 最新アップデート Google Cloud データ関連ソリューション 2020年5月14日 放送
[Cloud OnAir] BigQuery へデータを読み込む 2019年3月14日 放送
[Cloud OnAir] お客様事例紹介 -リクルートライフスタイルにおける デジタルトランスフォーメーションとクラウド活用- 2018年7月12日 放送
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
30%のMAU増加と78%のコスト削減を両立する方法.pptx
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
[Cloud OnAir] Bigtable に迫る!基本機能も含めユースケースまで丸ごと紹介 2018年8月30日 放送
[Cloud OnAir] Google Cloud Next '18 in London 最新情報 2018年10月18日 放送
[Cloud OnAir] BigQuery で実現する Smart Analytics Platform 2019年10月24日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Workspace でできる データ分析と業務自動化のご紹介 2020年12月3日 放送
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
これでBigQueryをドヤ顔で語れる!BigQueryの基本
Vertica 9.0.0 新機能
[Cloud OnAir] BigQuery ML と AutoML Tables で はじめるマーケティング分析入門 2019年5月23日 放送
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
オープンデータを使って地図を作ろう|QGIS 活用講座(初級編)
[Cloud OnAir] Dive to Google Kubernetes Engine 2018年8月2日 放送
Ad

More from Google Cloud Platform - Japan (20)

PDF
ServerlessDays Tokyo 2022 Virtual.pdf
PDF
20221105_GCPUG 女子会 Kubernets 編.pdf
PDF
Google Cloud でアプリケーションを動かす.pdf
PDF
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
PDF
What’s new in cloud run 2021 後期
PDF
【Dialogflow cx】はじめてみよう google cloud dialogflow cx 編
PDF
Google Cloud で実践する SRE
PDF
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ 〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
PDF
[Cloud OnAir] 【実演】Google Cloud VMware Engine と VMware ソリューションを組み合わせたハイブリッド環境の...
PDF
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
PDF
[Cloud OnAir] Google Cloud における RDBMS の運用パターン 2020年11月19日 放送
PDF
[Cloud OnAir] 事例紹介: 株式会社オープンハウス 〜Google サービスを活用したオープンハウスの AI の取り組み〜 2020年11月1...
PDF
[Cloud OnAir] 【Anthos 演習】 解説を聞きながら Anthos を体験しよう 2020年11月5日 放送
PDF
[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送
PDF
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
PDF
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
PDF
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
PDF
明日から役立つ BigQuery ML 活用 5 つのヒント | Google Cloud INSIDE Games & Apps: Online
PDF
今だから知りたい BigQuery 再入門 | Google Cloud INSIDE Games & Apps: Online
PDF
『MAGELLAN BLOCKS』を使って BigQuery を使い倒す!| Google Cloud INSIDE Games & Apps: Online
ServerlessDays Tokyo 2022 Virtual.pdf
20221105_GCPUG 女子会 Kubernets 編.pdf
Google Cloud でアプリケーションを動かす.pdf
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
What’s new in cloud run 2021 後期
【Dialogflow cx】はじめてみよう google cloud dialogflow cx 編
Google Cloud で実践する SRE
[Cloud OnAir] 事例紹介 : 株式会社マーケティングアプリケーションズ 〜クラウドへのマイグレーションとその後〜 2020年12月17日 放送
[Cloud OnAir] 【実演】Google Cloud VMware Engine と VMware ソリューションを組み合わせたハイブリッド環境の...
[Cloud OnAir] Google Cloud へのマイグレーション ツールの紹介 2020年11月26日 放送
[Cloud OnAir] Google Cloud における RDBMS の運用パターン 2020年11月19日 放送
[Cloud OnAir] 事例紹介: 株式会社オープンハウス 〜Google サービスを活用したオープンハウスの AI の取り組み〜 2020年11月1...
[Cloud OnAir] 【Anthos 演習】 解説を聞きながら Anthos を体験しよう 2020年11月5日 放送
[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
[Cloud OnAir] Google Cloud Next '20: OnAir 特別編 〜世界で人気のあったセッション特集〜 2020年9月24日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
明日から役立つ BigQuery ML 活用 5 つのヒント | Google Cloud INSIDE Games & Apps: Online
今だから知りたい BigQuery 再入門 | Google Cloud INSIDE Games & Apps: Online
『MAGELLAN BLOCKS』を使って BigQuery を使い倒す!| Google Cloud INSIDE Games & Apps: Online

[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送

  • 1. Cloud Onr Cloud OnAir Cloud OnAir BigQuery の一般公開データセットを 利用した実践的データ分析 2019 年 3 月 28 日 放送
  • 2. Cloud OnAir 初心者が BigQuery の一般公開データセットを利用し、 ● データ分析の方法 ● BigQuery の実際の使い方 に習熟する 本日のテーマ
  • 3. Agenda Cloud OnAir 1 3 2 4 一般公開データセットをさわってみよう BigQuery の特徴を検証する BigQuery GIS を利用して位置情報を分析する BigQuery ML を利用して機械学習をかんたんに行う
  • 5. Cloud OnAir ● BigQuery 上にストア ● すぐ利用可能 ● 誰でもクエリできる ● ストレージ料金は不要 BigQuery 一般公開データセットとは https://cloud.google.com/bigquery/public-data/
  • 6. Cloud OnAir BigQuery コンソール ● 「データを追加」 ● 一般公開データセットを調べる ● “GitHub” で検索 一般公開データセットを利用してみる https://cloud.google.com/bigquery/public-data/
  • 7. Cloud OnAir BigQuery コンソール ● GitHub Activity Data を選択 ● データセットを表示 ● サイドバーに表示される 一般公開データセットを利用してみる https://cloud.google.com/bigquery/public-data/
  • 8. Cloud OnAir クエリエディタ ● クエリを入力 : 実行 ● 2 億行からコミットの件名で 多いものをランキング 一般公開データセットを利用してみる https://cloud.google.com/bigquery/public-data/ SELECT subject AS subject, COUNT(*) AS num_duplicates FROM `bigquery-public-data.github_repos.co mmits` GROUP BY subject ORDER BY num_duplicates DESC LIMIT 100
  • 9. Cloud OnAir Cloud OnAir BigQuery の特徴を検証する
  • 10. Cloud OnAir BigQuery の特徴と 高速な分析を支える機能 ● カラム (列)指向 ● 分割テーブル(パーティション) ● クラスタリング ● 更に便利な新機能 BigQuery の特徴を検証する
  • 11. Cloud OnAir カラム指向ストレージ ● BigQuery の内部はカラム指向ストレージ (Capacitor) ● 指定されたカラムは上から下までフルスキャンされる ● パフォーマンス、コストの観点から必要なカラムのみクエリをする id name cost date SELECT id, cost FROM table BigQuery ホワイトペーパー“Inside Look at Google BigQuery”
  • 12. Cloud OnAir デモ : カラム指向を確認する クエリエディタ ● 同じデータセットをクエリする SELECT * FROM `bigquery-public-data.samples.wiki pedia` すべてのカラム SELECT title, id FROM `bigquery-public-data.samples.wiki pedia` 必要なカラムのみ 処理コスト、 及びスピードが 改善
  • 13. Cloud OnAir 分割テーブル (パーティション) id name cost date 2019-01-01 2019-01-01 2019-01-01 2019-01-01 2019-01-01 2019-01-02 2019-01-02 2019-01-02 2019-01-02 2019-01-02 2019-01-03 2019-01-03 SELECT id, cost FROM table WHERE date=”2019-01-01” BigQuery ドキュメント- 分割テーブルの概要 ● テーブルを日付で分割 ● 日付でスキャン範囲を絞り込む ● 処理コスト、パフォーマンスが改善 ● 2 つのタイプ ○ 分割テーブル : カラムを指定、カラムデータに もとづき自動分割 (新しい方法、推奨) ○ 取り込み時間で分割されたテーブル : データを 取り込んだ日や、自分で指定して分割
  • 14. Cloud OnAir デモ : 分割テーブルを確認する BigQuery ドキュメント- 分割テーブルの概要 Wikipedia のログを分割する ● CREATE TABLE 構文を利用 ● PARTITION_BY で分割に用いる TIMESTAMP または DATE カラム を指定 ● 今回は unixtime 表記の timestamp カラムを TIMESTAMP 型に変更し 分割に利用 ● 割当(ソフトリミット)回避の ため、今回は二度にわけてクエリ CREATE TABLE `$YOUR_PROJECT.query_demo.wikipedia_part itioned` PARTITION BY DATE(partition_timestamp) AS SELECT *, TIMESTAMP_SECONDS(timestamp) AS partition_timestamp FROM `bigquery-public-data.samples.wikipedia` WHERE timestamp < 1136041200 SELECT *, TIMESTAMP_SECONDS(timestamp) AS partition_timestamp FROM `bigquery-public-data.samples.wikipedia` WHERE timestamp >= 1136041200 2) 抽出先テーブルを指定し、「テーブルに追加する」設定でクエリ 1) DDL を用いて分割テーブルを元のテーブルから作成
  • 15. Cloud OnAir デモ : 分割テーブルを確認する (2) BigQuery ドキュメント- 分割テーブルの概要 分割テーブルをクエリする SELECT title, id FROM `bigquery-public-data.samples.wiki pedia` WHERE timestamp = 1141138800 LIMIT 1000 分割無し SELECT title, id FROM `$YOUR_PROJECT.query_demo.wikipedi a_partitioned` WHERE partition_timestamp = TIMESTAMP("2006-03-01") 分割あり 分割された部分のみの スキャンで 大幅な処理サイズ削減
  • 16. Cloud OnAir 分割テーブル - データ ポータルでの利用 BigQuery ドキュメント- 分割テーブルの概要 分割テーブル ● 分割する列として「partition_timestamp を」 使用する :チェックを入れない ● フィルタ設定で自動的に分割テーブルが 利用される 取り込み時間で分割されたテーブル ● 分割する列として「 partition_timestamp 」 を 使用する :チェック
  • 17. Cloud OnAir 分割テーブル - データ ポータルでの利用 (2) BigQuery ドキュメント- 分割テーブルの概要 グラフ設定 ● 期間のディメンジョン ● 時間のディメンジョン フィルタ ● 期間 SELECT FORMAT_TIMESTAMP('%Y%m%d', t0.partition_timestamp) AS t0_qt_5713rb7kvb, COUNT(1.000000000000000) AS t0_qt_z99vgb7kvb FROM `dataset.table` AS t0 WHERE (FORMAT_TIMESTAMP('%Y%m%d', t0.partition_timestamp) >= '20060101' AND FORMAT_TIMESTAMP('%Y%m%d', t0.partition_timestamp) <= '20110519') GROUP BY t0_qt_5713rb7kvb ORDER BY t0_qt_5713rb7kvb ASC; データポータルの発行したクエリ
  • 18. Cloud OnAir クラスタ化テーブル 2018-01-01 c1 userId c3 eventDate c5 2018-01-02 2018-01-03 2018-01-04 2018-01-05 SELECT c1, c3 FROM ... WHERE userId BETWEEN 52 and 63 AND eventDate BETWEEN “2018-01-03” AND “2018-01-05” ● 1 つ以上の列の内容に基づき データを編成 ● 関連したデータが同じ場所へ ● 不要なデータのスキャンが省略 https://cloud.google.com/bigquery/docs/clustered-
  • 19. Cloud OnAir INFORMATION_SCHEMA BETA ● 2019 2 月リリース ○ ODBC などからでもテーブル定義を 読み取れるように ○ BigQuery の CLI や GUI が使えない環境でも データセットの把握が可能 ○ DDL の自動生成などの用途でも 分析で便利な機能の利用 SELECT * EXCEPT(is_typed) FROM query_demo.INFORMATION_SCHEMA.TABL ES https://cloud.google.com/bigquery/docs/informatio n-schema-intro
  • 20. Cloud OnAir DDL ALTER 句 サポート BETA ● 2019 2 月リリース ○ ALTER TABLE 句が テーブルとビューに 対して可能に ○ 発行したクエリでそのままテーブルを 置き換えることがクエリだけで可能に 分析で便利な機能の利用 {ALTER TABLE | ALTER TABLE IF EXISTS} table_name SET OPTIONS(table_set_options_list) https://cloud.google.com/bigquery/docs/reference/ standard-sql/data-definition-language#alter_table _set_options_statement
  • 21. Cloud OnAir Cloud OnAir BigQuery GIS を利用して位置情報を 分析する
  • 22. Cloud OnAir BigQuery GIS とは  { "type": "Polygon", "coordinates": [ [ [139.7483,35.6996], [139.7493,35.6998], ... [139.7518,35.6999] ] ] } SELECT city_name AS ‘地区名’, COUNT(car_id) AS ‘台数’ FROM city, car WHERE ST_Intersects(car.geo, city.geo) ... GROUP BY city_name 地区名 台数 港区 六本木 58 港区 南青山 40 港区 芝公園 20 BigQuery 安価なフルマネージドのストレージ 領域に行政界や道路情報等を格納 サーバーレスの DWH で膨大なデータを瞬時に解析 ビジネスに新たな知見をもたらす
  • 23. Cloud OnAir ユーザーから 500 メートル以内の店舗を抽出 BigQuery GIS の利用例 SELECT store_name FROM stores WHERE ST_DWITHIN(store_loc, ST_GeogPoint(@lon, @lat), 500)
  • 24. Cloud OnAir 店舗から 500 メートル以内にいるユーザーを数える BigQuery GIS の利用例 SELECT store_name, COUNT(1) users FROM stores s JOIN users u ON ST_DISTANCE(s.loc, u.loc) < 500 GROUP BY 1
  • 25. Cloud OnAir 郵便番号の中の区画にいるユーザー数の算出 BigQuery GIS の利用例 SELECT zipcode, COUNT(1) users FROM users u JOIN (select zipcode, st_geogfromtext(zipcode_geom) loc from `bigquery-public-data.utility_us.zipcode_ area`) z ON ST_COVERS(z.loc, use.loc) GROUP BY 1
  • 26. Cloud OnAir BigQuery GIS / Geo Viz の利用 BigQuery Geo Viz https://bigquerygeoviz.appspot.com/ ● BigQuery 上でクエリを発行し 可視化できるツール ● 手軽な位置情報のプロットに
  • 27. Cloud OnAir Geo Viz の利用 BigQuery Geo Viz https://bigquerygeoviz.appspot.com/ ● 初回のみ “Authorize” を押して BigQuery の API を許可 ● Project ID を入力 ● SQL を入力 ● “Run” で実行 ● “See results” ボタンで次へ https://cloud.google.com/bigquery/docs/gis-tutorial-hurrican e
  • 28. Cloud OnAir Geo Viz の利用 (2) - プロット BigQuery Geo Viz https://bigquerygeoviz.appspot.com/ ● WKT 形式の位置情報を含む カラムを選択する ● 右側地図にプロットされる https://cloud.google.com/bigquery/docs/gis-tutorial-hurrican e
  • 29. Cloud OnAir Geo Viz の利用 (3) - スタイル調整  データをもとにスタイルを変更 ● fillColor (塗る色) : 風速を可視化 ○ Data Driven (数字をもとに塗り分け) ○ “Function” : “linear” ○ “Field” : “usa_wind” ○ Domain : “0”, “150” ○ Range : “0006ff”, “#ff0000” https://cloud.google.com/bigquery/docs/gis-tutorial-hurrican e
  • 30. Cloud OnAir Geo Viz の利用 (3) - スタイル調整  データをもとにスタイルを変更 ● circleRadius (半径) : ハリケーンの 半径 ○ Data Driven (数字をもとに塗り分け) ○ “Function” : “linear” ○ “Field” : “radius_50kt” ○ Domain : “0”, “135” ○ Range : “5”, “15” https://cloud.google.com/bigquery/docs/gis-tutorial-hurrican e
  • 31. Cloud OnAir BigQuery GIS 事例 業種:Taxi Service 導入サービス:BigQuery、Google Cloud Storage、 Cloud Dataflow など 概要:BigQuery を活用して、国内最大級のタクシー 配車アプリ『JapanTaxi』を支えるデータ分析基盤を 構築。高速で効率的なデータ運用に加え、 非エンジニア層がデータ分析基盤にアクセスできる ようにしたことで、ビジネスのスピード感も大幅に 増しました。
  • 32. Cloud OnAir Cloud OnAir BigQuery ML を利用して 機械学習をかんたんに行う
  • 33. Cloud OnAir BigQuery 上で、 SQL クエリを ベースに機械学習モデルを 作成、利用 BigQuery ML とは BigQuery BigQuery ML を 活用した機械学習 Google アナリティクス 360 にあるデータ、収益 メール マーケティング および、 広告システムと連携 BI プラットフォームを介して レポート データ ポータル、Looker など 予測 モデルを 再トレー二ング
  • 34. Cloud OnAir デモ : BigQuery ML でユーザーあたり購入数を予測 #standardSQL CREATE MODEL `bqml_tutorial.sample_model` OPTIONS(model_type='logistic_reg') AS SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews FROM `bigquery-public-data.google_analytics_sample.ga_sessi ons_*` WHERE _TABLE_SUFFIX BETWEEN '20160801' AND '20170630' 1. モデルを作成 BigQuery ML で ロジスティック回帰モデルを 作る BigQuery に入っているデータを 教師データとする ( label は totals.transactions を ベースに作成 ) https://cloud.google.com/bigquery/docs/bigquery ml-analyst-start
  • 35. Cloud OnAir デモ : BigQuery ML でユーザーあたり購入数を予測 #standardSQL SELECT * FROM ML.EVALUATE(MODEL `bqml_tutorial.sample_model`, ( SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews FROM `bigquery-public-data.google_analytics_sample.ga_sessi ons_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801')) 2. モデルを評価 BigQuery ML でモデルを評価 (その他: Confusion Matrix, Roc curve なども確認可能 ) BigQuery に入っているデータを 評価するデータとする ( label は totals.transactions を ベースに作成 ) https://cloud.google.com/bigquery/docs/bigquery ml-analyst-start
  • 36. Cloud OnAir デモ : BigQuery ML でユーザーあたり購入数を予測 SELECT fullVisitorId, SUM(predicted_label) as total_predicted_purchases FROM ML.PREDICT(MODEL `bqml_tutorial.sample_model`, ( SELECT IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(totals.pageviews, 0) AS pageviews, IFNULL(geoNetwork.country, "") AS country, fullVisitorId FROM `bigquery-public-data.google_analytics_sample.ga_sessi ons_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801')) GROUP BY fullVisitorId ORDER BY total_predicted_purchases DESC LIMIT 10 3. モデルを利用する 作成されたモデルから predicted_label の合計を取得 (購入予測数) PREDICT 対象となるデータを BigQuery から SELECT する https://cloud.google.com/bigquery/docs/bigquery ml-analyst-start
  • 38. Cloud OnAir ● BigQuery の一般公開データセットは簡単に利用できる ● 一般公開データセットを利用してすぐに BigQuery 上での分析に 習熟できる ○ カラムの指定によるスキャン効率化 ○ 分割テーブル、クラスタリング ○ BigQuery GIS ● BigQuery の進化は分析だけではなく、分析者が ML を使えるように ○ BigQuery ML まとめ