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
800
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
360
第4回 前向きデータ整備人 もう一度、表計算ソフトを愛でる
megumit
2
3k
Notebookを比較する_MLforBegginers
megumit
0
130
第5回GCPUG女子会_Tableauコラボ
megumit
0
75
はじめてみよう_BigQuery_in_GCPUG女子会
megumit
0
160
Other Decks in Technology
See All in Technology
20250728 MCP, A2A and Multi-Agents in the future
yoshidashingo
1
150
Kiroから考える AIコーディングツールの潮流
s4yuba
1
500
VLMサービスを用いた請求書データ化検証 / SaaSxML_Session_1
sansan_randd
0
140
Tableau API連携の罠!?脱スプシを夢見たはずが、逆に依存を深めた話
cuebic9bic
2
150
AWS表彰プログラムとキャリアについて
naoki_0531
1
150
クマ×共生 HACKATHON - 熊対策を『特別な行動」から「生活の一部」に -
pharaohkj
0
240
P2P ではじめる WebRTC のつまづきどころ
tnoho
1
280
2025-07-25 NOT A HOTEL TECH TALK ━ スマートホーム開発の最前線 ━ SOFTWARE
wakinchan
0
180
KCD Lima: eBee in Peru!
lizrice
0
110
AI によるドキュメント処理を加速するためのOCR 結果の永続化と再利用戦略
tomoaki25
0
200
完璧を目指さない小さく始める信頼性向上
kakehashi
PRO
0
120
解消したはずが…技術と人間のエラーが交錯する恐怖体験
lamaglama39
0
140
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
How STYLIGHT went responsive
nonsquared
100
5.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
4 Signs Your Business is Dying
shpigford
184
22k
A better future with KSS
kneath
238
17k
Facilitating Awesome Meetings
lara
54
6.5k
Optimizing for Happiness
mojombo
379
70k
Bash Introduction
62gerente
613
210k
Embracing the Ebb and Flow
colly
86
4.8k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
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