在 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 - 商品重量(克)
  • 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

五個關鍵元件:

  1. 聚合函式
  2. 左側資料集
  3. 右側資料集
  4. 連接條件
  5. 分組條件
BigQuery 入門

一起來練習吧!

BigQuery 入門

Preparing Video For Download...