Перейти к основному содержимому

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_idcustomer_idorder_date
112018-01-01
232018-01-02
3952018-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 (например, добавление дат, приведение столбцов) может немного отличаться в каждом хранилище данных.

0