BigQueryでクエリを書く

BigQuery入門

Matt Forrest

Field CTO

シンプルなクエリの作成

BigQueryでの簡単なクエリ

-- テーブル名の構造に注意

SELECT
    * 
FROM 
    `project.ecommerce.order_items`
BigQuery入門

BigQueryでクエリを実行

BigQueryでクエリを実行する方法:

  • BigQuery Studio
  • クライアントライブラリ(例: Python)
  • Google Cloud のコマンドラインツール
  • Pandas

BigQuery コンソール

BigQuery入門

正しいテーブル名の使用

-- フルのテーブル名構造を使用


SELECT
    * 
FROM 
    `project.ecommerce.ecomm_order_details`
/* 省略形の 
テーブル名構造を使用 */

SELECT
    * 
FROM 
    ecommerce.ecomm_order_details
BigQuery入門

GoogleSQL

GoogleSQL のデータ型リファレンス

BigQuery入門

使用データセット:Olist E-Commerce

  • Orders: 注文番号と注文アイテム情報
  • Order details: 顧客ID、注文日・出荷日
  • Payments: 支払種別、分割、金額
  • Products: 商品カテゴリ、説明、寸法

荷物を持つ人

1 https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce
BigQuery入門

Products(商品)

  • product_id - 一意の商品ID
  • product_photos_qty - 商品写真数
  • product_weight_g - 商品重量(g)
  • product_category_name_english - 商品カテゴリ名

荷物を持つ人

BigQuery入門

Orders(注文)

  • order_id - 一意の注文ID
  • order_items - 注文アイテム情報を含むSTRUCT
    • order_item_id - 注文内のアイテム番号
    • product_id - 一意の商品ID
    • seller_id - 一意のセラーID
    • price - アイテム価格

荷物を持つ人

BigQuery入門

Order details(注文詳細)

  • order_id - 一意の注文ID
  • customer_id - 一意の顧客ID
  • order_status - 現在の注文状況
  • order_purchase_timestamp - 購入時刻
  • order_approved_at - 承認時刻
  • order_delivered_carrier_date - 物流業者引受時刻
  • order_delivered_customer_date - 配達完了時刻
  • order_estimated_delivery_date - 配達予定日時刻
BigQuery入門

Payments(支払)

  • order_id - 一意の注文ID
  • payment_type - 支払種別
  • payment_sequential - 支払番号
  • payment_installments - 分割回数
  • payment_value - 支払金額

荷物を持つ人

BigQuery入門

集約と結合の復習

-- 顧客ごとの注文数

SELECT
    d.customer_id,
    COUNT(o.order_id)
FROM 
    ecommerce.ecomm_order_details d
JOIN 
    ecommerce.ecomm_orders o
USING (order_id)
GROUP BY
    d.customer_id

5つの主要要素:

  1. 集約関数
  2. 左側のデータセット
  3. 右側のデータセット
  4. 結合条件
  5. グループ化条件
BigQuery入門

Let's practice!

BigQuery入門

Preparing Video For Download...