Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GCPUG女子会#9 BigQueryでSQL入門

GCPUG女子会#9 BigQueryでSQL入門

E5311aa8df3a6f36c3c18f5337cd653c?s=128

Megumi Takahira

July 05, 2020
Tweet

Transcript

  1. BigQueryでSQL入門 2020/07/05 GCPUG女子会 #9

  2. Hello! たかひらめぐみ と申します ・駆け出しデータ系コンサルタント ・前職ではデータエンジニア?整備人? ・GCP 特にBigQuery大好き ※本資料はあくまで個人の見解であり、所属組織の公式的な見解ではありません @megumi_takahira 2

  3. 突然ですが・・・ この中でBigQuery 使ったことある方 コメントで挙手 ノシ してください

  4. 申し訳ありません。今日の私の話は BQ使った事ある方には簡単すぎて きっとつまらないので twitterハッシュタグ   #GCPUGjoshi  #BQへの愛を叫ぶ で愛を叫んでお待ちください!

  5. このお話の対象者  ・BigQueryって聞いた事あるかも  ・SQLいっこもわからん  ※非エンジニアの人でもOK! 簡単なハンズオンを用意しています 一緒にやっても、資料をみながら後で やってみても良いので ぜひ一度触ってみてください!

  6. BigQuery 概要(ざっくりと) ・フルマネージドサービス ・標準SQLでビッグデータにアクセスできる ・ものすごくはやい

  7. BigQuery 概要(ざっくりと) ・基本は従量課金 課金対象:   データのスキャン量   ストレージ  ※ネットワークやCPUの使用量に関しては課金されない  ※プレビューとメタ情報に関しては課金されない 詳細は公式ドキュメントを参照 https://cloud.google.com/bigquery/pricing

  8. BigQuery 概要(ざっくりと) ・BigQuery サンドボックス   サンドボックスを使用すると   クレジット カード情報を入力することなく、   Cloud Console でウェブ

    UI を使用できます。 環境構築・課金設定なしではじめられる  ↓ これからSQLを勉強する場合にピッタリ!
  9. HANDSON 9

  10. Cloud Consoleを開き、利用規約に同意 https://console.cloud.google.com/?hl=ja

  11. ナビゲーション ペインで [BigQuery] をクリック

  12. プロジェクトを作成する

  13. プロジェクト名を入力して[作成]をクリック 任意のプロジェクト名(デフォル トのままでもOK)

  14. 完了!

  15. 再びナビゲーション ペインで [BigQuery] をクリック

  16. BigQueryのコンソールが無事開けました

  17. 以下よりCSVをダウンロード pageviews_20200704_050000_over10requests.csv https://bit.ly/3dZ28Cj

  18. データセットを作成

  19. データセットIDを入力して(なんでもOK) [データセットを作成]をクリック

  20. プロジェクトIDの左に出てきた▶をクリックし 表示されたデータセット名(先ほど作成した)をクリック

  21. テーブルの作成 をクリック ウィンドウの幅によっては、右記 のような「+」ボタンのみで表示 されている事があるので注意

  22. テーブルの作成元のプルダウンから[アップロード]を選択し、 [参照]をクリックして、先ほどローカルにダウンロードした CSVファイル(pageviews_20200704_050000_over10requests.csv)を指定する アップロードするファイルを選択すると ファイル形式は自動で認識される

  23. テーブル名を入力(なんでもOK)

  24. 自動検出 スキーマと入力パラメータ をチェック

  25. [テーブル作成]をクリック

  26. ジョブが作成された数秒後、左下に「テーブル名」が作成されました と表示されたらテーブル作成完了 このメッセージ(とリンク)結構すぐに 消えてしまいますが慌てなくて大丈夫です

  27. データセット名の左に出てきた▶をクリックし 表示されたテーブル名(先ほど作成した)をクリック

  28. クエリを実行する前に、メタデータ(テーブルについての説明等) をみていきます

  29. メタデータだけでも結構いろんな事がわかります

  30. いよいよSQLを書きます! [テーブルをクエリ]をクリック ウィンドウの幅によっては、右記 のような「 」ボタンのみで表示 されている事があるので注意

  31. SELECT と FROMの間に * (アスタリスク、前後にスペースが必要) を追記してドライランを確認 さきほど作成した [プロジェクト名].[データセット名].[テーブル名] を使った基本のSELECT句が自動生成されている ここに

    * (アスタリスク前後スペース)を追記 USの場合$5.00 per TBなのでこのクエリの課金は $0.00003(サンドボックスの場合は無料)
  32. 実行!

  33. 結果が表示される

  34. SELECT*で確認したい内容はたいていプレビューで確認できる (ちなみに LIMIT は表示行数を減らすだけでスキャン量削減には効果なし) 大きめのテーブルを検索する際には、必要な項目(列)のみ指定する事を推奨 Limit1000 を消してもスキャン量は 変化しない事を確認してみてください

  35. SQLの基本 SELECT:  どの項目(列)のデータを検索するか FROM:  どのテーブルから検索するか WHERE:  どのような条件で行を検索するか 今さらだけど

  36. 先ほどクエリを実行した画面で、再度テーブル名→スキーマを参照

  37. 先ほどの*を消し、スキーマのフィールド名[title][requests]クリック 末尾に WHERE wiki = 'ja' を追記 *を消す 末尾に WHERE wiki =

    'ja' を追記 フィールド名をクリックすると 自動で必要な部分に,(カンマ)を つけて入力してくれる
  38. 構文を確認して、実行 SELECT: どの項目(列)のデータを検索するか FROM: どの表から検索するか WHERE: どのような条件で行を検索するか

  39. 結果が表示される

  40. SQLの基本 ORDER BY:  特定のカラムの値に応じて行を並び変える ※昇順、降順について  未指定またはASC→昇順  DESC→降順 今さらだけど

  41. 末尾にORDER BY句を追加して実行 末尾に ORDER BY requests DESC を追記

  42. 結果が表示される

  43. SQLの基本 GROUP BY: SELECT文において特定の列の値が等しい行ごとに表 をグループ化する。SUMやCOUNTなどの、集計関数 を使用する場合は指定が必要。 今さらだけど

  44. 以下のようにSQLを変更して実行 SELECT句を wiki, SUM(requests) に変更 GROUP BY wiki を追記 ORDER

    BY句を SUM(requests) に変更
  45. 結果が表示される

  46. 本日使用したデータについて 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を使用したりと、本日のハンズオンより少しレベルアップする 内容になっているので、ぜひチャレンジしてみてください。
  47. Thanks! 47  @megumi_takahira