Продвинутые паттерны анализа данных

Введение в Databricks SQL

Kevin Barlow

Data Manager

Мотивация

Диаграмма Lakehouse — Анализ

Введение в Databricks SQL

Подзапросы

  • Реализуется через «вложение» SQL-запросов
    • Вложенный запрос рассматривается как новая «таблица»
    • По сути аналогично созданию представления
  • Подходит для широкого круга задач
    • Получение результатов другого запроса
    • Упрощение сложных запросов
    • Агрегация внутри запроса
SELECT store, totalRev, product
FROM (
    SELECT count(*) as count,
          sum(revenue) as totalRev,
          min(price) as minPrice,
          max(units) as maxUnits,
          region,
          store,
          product
      FROM sales 
      GROUP BY region, store, product
) q
Введение в Databricks SQL

Оконные функции

  • Категория SQL-функций и техник
  • Выполняет вычисление по заданному диапазону строк
    • Строки связаны между собой определённым образом
  • Примеры:
    • Вычисление метрики по временному диапазону
    • Вычисление изменений между последовательными строками
    • Вычисление по нескольким измерениям
SELECT name,
       dept,
       RANK() OVER 
           (PARTITION BY dept 
         ORDER BY salary) AS rank
  FROM employees;
name dept salary rank
Lisa Sales 10000 1
Alex Sales 30000 2
Fred Engineering 21000 1
Tom Engineering 23000 2
Введение в Databricks SQL

Продвинутые функции Databricks SQL

RANK()

  • Сравнивает строки внутри заданного раздела и вычисляет ранг для каждой строки
SELECT a,
       b,
       RANK() OVER(PARTITION BY a ORDER BY b DESC),
    FROM table_name;
a b rank
A1 3 1
A1 1 3
A1 2 2
A2 1 1

LAG() и LEAD()

  • Возвращает предыдущее (LAG()) или следующее (LEAD()) значение строки
SELECT a,
       b,
       LAG(b) OVER (PARTITION BY a ORDER BY b)
    FROM table_name;
a b lag
A1 3 NULL
A1 1 3
A1 2 1
A2 1 NULL
Введение в Databricks SQL

Давайте потренируемся!

Введение в Databricks SQL

Preparing Video For Download...