SQL SELECT
Боже мой, существовали бы современные команды по работе с данными без операторов SQL SELECT? Вероятно, нет.
К счастью, мы живем в мире табличных данных, облачных хранилищ данных и мастерства в SQL. Аналитики и инженеры по аналитике пишут запросы, создают модели данных и используют SQL для управления своими преобразованиями данных и анализом. Но что делает эти запросы возможными? Операторы SELECT.
Оператор SQL SELECT является основным строительным блоком любого запроса: он позволяет выбирать определенные столбцы (данные) из объекта схемы базы данных (таблицы/представления). В проекте dbt SQL-модель dbt технически представляет собой единичный оператор SELECT (часто построенный с использованием CTE или подзапросов).
Как использовать SELECT
Любой запрос начинается с простого оператора SELECT:
select
order_id, -- ваш первый столбец, который вы хотите выбрать
customer_id, -- ваш второй столбец, который в ы хотите выбрать
order_date -- ваш последний столбец, который вы хотите выбрать (и так далее)
from {{ ref('orders') }} -- таблица/представление/модель, из которой вы хотите выбрать
limit 3
Этот ба зовый запрос выбирает три столбца из таблицы orders
магазина jaffle и возвращает три строки. Если вы выполните этот запрос в своем хранилище данных, он вернет результат, выглядящий следующим образом:
order_id | customer_id | order_date |
---|---|---|
1 | 1 | 2018-01-01 |
2 | 3 | 2018-01-02 |
3 | 95 | 2018-01-04 |
Вы также можете часто видеть запросы, которые select * from table_name
. Звездочка указывает компилятору выбрать все столбцы из указанной таблицы или представления.
Используйте макрос star из dbt utils, чтобы легко выбирать множество столбцов и исключать определенные.
В проекте dbt инженеры по аналитике обычно пишут модели, содержащие несколько CTE, которые строятся в один большой запрос. Для тех, кто только начинает работать с аналитической инженерией или dbt, мы рекомендуем ознакомиться с руководством "Как мы структурируем наши проекты dbt", чтобы лучше понять, почему аналитики предпочитают модульное моделирование данных и CTE.
Синтаксис оператора SELECT в Snowflake, Databricks, BigQuery и Redshift
Хотя мы знаем, что игроки на рынке хранилищ данных любят иметь свои слегка отличающиеся вкусы и синтаксис для SQL, они согласились, что оператор SELECT является священным и н еизменным. В результате написание фактического оператора select…from
в Snowflake, Databricks, Google BigQuery и Amazon Redshift будет выглядеть одинаково. Однако фактическая манипуляция данными в операторе SELECT (например, добавление дат, приведение столбцов) может немного отличаться в каждом хранилище данных.