Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GCPUG女子会#9 BigQueryでSQL入門
Search
Megumi Takahira
July 05, 2020
Technology
0
720
GCPUG女子会#9 BigQueryでSQL入門
Megumi Takahira
July 05, 2020
Tweet
Share
More Decks by Megumi Takahira
See All by Megumi Takahira
JTUGスピンオフ_Google_BigQueryのデータをTableauでビジュアライズしてみよう.pdf
megumit
1
340
第4回 前向きデータ整備人 もう一度、表計算ソフトを愛でる
megumit
2
2.9k
Notebookを比較する_MLforBegginers
megumit
0
130
第5回GCPUG女子会_Tableauコラボ
megumit
0
73
はじめてみよう_BigQuery_in_GCPUG女子会
megumit
0
150
Other Decks in Technology
See All in Technology
Unlearn Product Development - Unleashed Edition
lemiorhan
PRO
2
150
React Routerで実現する型安全なSPAルーティング
sansantech
PRO
2
360
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
6
1.3k
多様なメトリックとシステムの健全性維持
masaaki_k
0
130
Web APIをなぜつくるのか
mikanichinose
0
1.1k
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
190
AWS re:Invent 2024 recap
hkoketsu
0
670
20241218_マルチアカウント環境におけるIAM_Access_Analyzerによる権限管理.pdf
nrinetcom
PRO
3
130
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
190
組み込みアプリパフォーマンス格闘記 検索画面編
wataruhigasi
1
240
OCI技術資料 : ファイル・ストレージ 概要
ocise
3
11k
MasterMemory v3 最速確認会
yucchiy
0
250
Featured
See All Featured
Navigating Team Friction
lara
183
15k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
The World Runs on Bad Software
bkeepers
PRO
66
11k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Mobile First: as difficult as doing things right
swwweet
222
9k
A better future with KSS
kneath
238
17k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Practical Orchestrator
shlominoach
186
10k
Become a Pro
speakerdeck
PRO
26
5.1k
It's Worth the Effort
3n
183
28k
Transcript
BigQueryでSQL入門 2020/07/05 GCPUG女子会 #9
Hello! たかひらめぐみ と申します ・駆け出しデータ系コンサルタント ・前職ではデータエンジニア?整備人? ・GCP 特にBigQuery大好き ※本資料はあくまで個人の見解であり、所属組織の公式的な見解ではありません @megumi_takahira 2
突然ですが・・・ この中でBigQuery 使ったことある方 コメントで挙手 ノシ してください
申し訳ありません。今日の私の話は BQ使った事ある方には簡単すぎて きっとつまらないので twitterハッシュタグ #GCPUGjoshi #BQへの愛を叫ぶ で愛を叫んでお待ちください!
このお話の対象者 ・BigQueryって聞いた事あるかも ・SQLいっこもわからん ※非エンジニアの人でもOK! 簡単なハンズオンを用意しています 一緒にやっても、資料をみながら後で やってみても良いので ぜひ一度触ってみてください!
BigQuery 概要(ざっくりと) ・フルマネージドサービス ・標準SQLでビッグデータにアクセスできる ・ものすごくはやい
BigQuery 概要(ざっくりと) ・基本は従量課金 課金対象: データのスキャン量 ストレージ ※ネットワークやCPUの使用量に関しては課金されない ※プレビューとメタ情報に関しては課金されない 詳細は公式ドキュメントを参照 https://cloud.google.com/bigquery/pricing
BigQuery 概要(ざっくりと) ・BigQuery サンドボックス サンドボックスを使用すると クレジット カード情報を入力することなく、 Cloud Console でウェブ
UI を使用できます。 環境構築・課金設定なしではじめられる ↓ これからSQLを勉強する場合にピッタリ!
HANDSON 9
Cloud Consoleを開き、利用規約に同意 https://console.cloud.google.com/?hl=ja
ナビゲーション ペインで [BigQuery] をクリック
プロジェクトを作成する
プロジェクト名を入力して[作成]をクリック 任意のプロジェクト名(デフォル トのままでもOK)
完了!
再びナビゲーション ペインで [BigQuery] をクリック
BigQueryのコンソールが無事開けました
以下よりCSVをダウンロード pageviews_20200704_050000_over10requests.csv https://bit.ly/3dZ28Cj
データセットを作成
データセットIDを入力して(なんでもOK) [データセットを作成]をクリック
プロジェクトIDの左に出てきた▶をクリックし 表示されたデータセット名(先ほど作成した)をクリック
テーブルの作成 をクリック ウィンドウの幅によっては、右記 のような「+」ボタンのみで表示 されている事があるので注意
テーブルの作成元のプルダウンから[アップロード]を選択し、 [参照]をクリックして、先ほどローカルにダウンロードした CSVファイル(pageviews_20200704_050000_over10requests.csv)を指定する アップロードするファイルを選択すると ファイル形式は自動で認識される
テーブル名を入力(なんでもOK)
自動検出 スキーマと入力パラメータ をチェック
[テーブル作成]をクリック
ジョブが作成された数秒後、左下に「テーブル名」が作成されました と表示されたらテーブル作成完了 このメッセージ(とリンク)結構すぐに 消えてしまいますが慌てなくて大丈夫です
データセット名の左に出てきた▶をクリックし 表示されたテーブル名(先ほど作成した)をクリック
クエリを実行する前に、メタデータ(テーブルについての説明等) をみていきます
メタデータだけでも結構いろんな事がわかります
いよいよSQLを書きます! [テーブルをクエリ]をクリック ウィンドウの幅によっては、右記 のような「 」ボタンのみで表示 されている事があるので注意
SELECT と FROMの間に * (アスタリスク、前後にスペースが必要) を追記してドライランを確認 さきほど作成した [プロジェクト名].[データセット名].[テーブル名] を使った基本のSELECT句が自動生成されている ここに
* (アスタリスク前後スペース)を追記 USの場合$5.00 per TBなのでこのクエリの課金は $0.00003(サンドボックスの場合は無料)
実行!
結果が表示される
SELECT*で確認したい内容はたいていプレビューで確認できる (ちなみに LIMIT は表示行数を減らすだけでスキャン量削減には効果なし) 大きめのテーブルを検索する際には、必要な項目(列)のみ指定する事を推奨 Limit1000 を消してもスキャン量は 変化しない事を確認してみてください
SQLの基本 SELECT: どの項目(列)のデータを検索するか FROM: どのテーブルから検索するか WHERE: どのような条件で行を検索するか 今さらだけど
先ほどクエリを実行した画面で、再度テーブル名→スキーマを参照
先ほどの*を消し、スキーマのフィールド名[title][requests]クリック 末尾に WHERE wiki = 'ja' を追記 *を消す 末尾に WHERE wiki =
'ja' を追記 フィールド名をクリックすると 自動で必要な部分に,(カンマ)を つけて入力してくれる
構文を確認して、実行 SELECT: どの項目(列)のデータを検索するか FROM: どの表から検索するか WHERE: どのような条件で行を検索するか
結果が表示される
SQLの基本 ORDER BY: 特定のカラムの値に応じて行を並び変える ※昇順、降順について 未指定またはASC→昇順 DESC→降順 今さらだけど
末尾にORDER BY句を追加して実行 末尾に ORDER BY requests DESC を追記
結果が表示される
SQLの基本 GROUP BY: SELECT文において特定の列の値が等しい行ごとに表 をグループ化する。SUMやCOUNTなどの、集計関数 を使用する場合は指定が必要。 今さらだけど
以下のようにSQLを変更して実行 SELECT句を wiki, SUM(requests) に変更 GROUP BY wiki を追記 ORDER
BY句を SUM(requests) に変更
結果が表示される
本日使用したデータについて Query the Wikipedia dataset in BigQuery: https://codelabs.developers.google.com/codelabs/cloud-bigquery-wikipe dia/index.html 上記のチュートリアルを参考にして、最近のデータ(2020/7/4
050000) を取得し、ローカルからアップロード可能な10MB以内になるように requestsが10件以上のデータに絞ったものです。 Cloud Shellを使用したりと、本日のハンズオンより少しレベルアップする 内容になっているので、ぜひチャレンジしてみてください。
Thanks! 47 @megumi_takahira