Написание запросов в BigQuery

Введение в BigQuery

Matt Forrest

Field CTO

Написание простых запросов

Простой запрос в BigQuery

-- Note the table name structure

SELECT
    * 
FROM 
    `project.ecommerce.order_items`
Введение в BigQuery

Выполнение запросов в BigQuery

Запросы в BigQuery можно выполнять через:

  • BigQuery Studio
  • Клиентские библиотеки (например, Python)
  • Инструмент командной строки Google Cloud
  • Pandas

Консоль BigQuery

Введение в BigQuery

Правильные имена таблиц

-- Using the full table name structure


SELECT
    * 
FROM 
    `project.ecommerce.ecomm_order_details`
/* Using the shorthand 
table name structure */

SELECT
    * 
FROM 
    ecommerce.ecomm_order_details
Введение в BigQuery

GoogleSQL

Справочник типов данных GoogleSQL

Введение в BigQuery

Наши наборы данных: Olist E-Commerce

  • Заказы: номер заказа и информация о позициях
  • Детали заказа: ID клиента, даты заказа и доставки
  • Платежи: тип оплаты, разделённые платежи, суммы
  • Товары: категория, описание, размеры

Человек с посылками

1 https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce
Введение в BigQuery

Товары

  • product_id — уникальный ID товара
  • product_photos_qty — количество фотографий товара
  • product_weight_g — вес товара
  • product_category_name_english — название категории товара

Человек с посылками

Введение в BigQuery

Заказы

  • order_id — уникальный ID заказа
  • order_itemsSTRUCT с информацией о позициях заказа
    • order_item_id — номер позиции в заказе
    • product_id — уникальный ID товара
    • seller_id — уникальный ID продавца
    • price — цена позиции заказа

Человек с посылками

Введение в BigQuery

Детали заказа

  • 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

Платежи

  • order_id — уникальный ID заказа
  • payment_type — тип оплаты
  • payment_sequential — номер платежа
  • payment_installments — количество платежей в рассрочку
  • payment_value — сумма платежа

Человек с посылками

Введение в BigQuery

Агрегации и объединения: повторение

-- Count of orders per customers

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...