Конфигурации Upsolver
Поддерживаемая функциональность Upsolver SQLake
| Loading table... |
Материализация конфигураций
| Loading table... |
SQL соединение
Соединения используются для предоставления Upsolver правильных учетных данных для загрузки ваших данных в SQLake, а также для записи преобразованных данных в различные сервисы. Подробнее о "Upsolver SQL соединениях" В dbt модель соединения - это модель с materialized='connection'
{{ config(
materialized='connection',
connection_type={ 'S3' | 'GLUE_CATALOG' | 'KINESIS' | 'KAFKA'| 'SNOWFLAKE' },
connection_options={}
)
}}
Запуск этой модели скомпилирует SQL CREATE CONNECTION (или ALTER CONNECTION, если существует) и отправит его в движок Upsolver. Имя соединения будет именем модели.
SQL копирование задания
Задание COPY FROM позволяет копировать ваши данные из заданного источника в таблицу, созданную в соединении метахранилища. Эта таблица затем служит вашей промежуточной таблицей и может использоваться с заданиями трансформации SQLake для записи в различные целевые местоположения. Подробнее о "Upsolver SQL copy-from"
В dbt модель копирования задания - это модель с materialized='incremental'
{{ config( materialized='incremental',
sync=True|False,
source = 'S3'| 'KAFKA' | ... ,
options={
'option_name': 'option_value'
},
partition_by=[{}]
)
}}
SELECT * FROM {{ ref(<model>) }}
Запуск этой модели скомпилирует SQL CREATE TABLE для типа цели Data lake (или ALTER TABLE, если существует) и SQL CREATE COPY JOB (или ALTER COPY JOB, если существует) и отправит его в движок Upsolver. Имя таблицы будет именем модели. Имя задания будет именем модели плюс '_job'
SQL вставка задания
Задание INSERT определяет запрос, который извлекает набор данных на основе заданного оператора SELECT и вставляет его в назначенную цель. Этот запрос затем выполняется периодически на основе RUN_INTERVAL, определенного в задании. Подробнее о "Upsolver SQL insert".
В dbt модель вставки задания - это модель с materialized='incremental' и incremental_strategy='insert'
{{ config( materialized='incremental',
sync=True|False,
map_columns_by_name=True|False,
incremental_strategy='insert',
options={
'option_name': 'option_value'
},
primary_key=[{}]
)
}}
SELECT ...
FROM {{ ref(<model>) }}
WHERE ...
GROUP BY ...
HAVING COUNT(DISTINCT orderid::string) ...
Запуск этой модели скомпилирует SQL CREATE TABLE для типа цели Data lake (или ALTER TABLE, если существует) и SQL CREATE INSERT JOB (или ALTER INSERT JOB, если существует) и отправит его в движок Upsolver. Имя таблицы будет именем модели. Имя задания будет именем модели плюс '_job'
SQL слияние задания
Задание MERGE определяет запрос, который извлекает набор данных на основе заданного оператора SELECT и вставляет, заменяет или удаляет данные из назначенной цели на основе определения задания. Этот запрос затем выполняется периодически на основе RUN_INTERVAL, определенного в задании. Подробнее о "Upsolver SQL merge".
В dbt модель слияния задания - это модель с materialized='incremental' и incremental_strategy='merge'
{{ config( materialized='incremental',
sync=True|False,
map_columns_by_name=True|False,
incremental_strategy='merge',
options={
'option_name': 'option_value'
},
primary_key=[{}]
)
}}
SELECT ...
FROM {{ ref(<model>) }}
WHERE ...
GROUP BY ...
HAVING COUNT ...
Запуск этой модели скомпилирует SQL CREATE TABLE для типа цели Data lake (или ALTER TABLE, если существует) и SQL CREATE MERGE JOB (или ALTER MERGE JOB, если существует) и отправит его в движок Upsolver. Имя таблицы будет именем модели. Имя задания будет именем модели плюс '_job'
SQL материализованные представления
При преобразовании данных вы можете обнаружить, что вам нужны данные из нескольких исходных таблиц для достижения желаемого результата. В таком случае вы можете создать материализованное представление из одной таблицы SQLake, чтобы объединить его с другой таблицей (которая в этом случае считается основной таблицей). Подробнее о "Upsolver SQL материализованные представления".
В dbt модель материализованных представлений - это модель с materialized='materializedview'.
{{ config( materialized='materializedview',
sync=True|False,
options={'option_name': 'option_value'}
)
}}
SELECT ...
FROM {{ ref(<model>) }}
WHERE ...
GROUP BY ...
Запуск этой модели скомпилирует SQL CREATE MATERIALIZED VIEW (или ALTER MATERIALIZED VIEW, если существует) и отправит его в движок Upsolver. Имя materializedview будет именем модели.
Ожидания/ограничения
Условия качества данных могут быть добавлены в ваше задание, чтобы удалить строку или вызвать предупреждение, когда столбец нарушает предопределенное условие.
WITH EXPECTATION <expectation_name> EXPECT <sql_predicate>
ON VIOLATION WARN
Ожидания могут быть реализованы с помощью ограничений dbt Поддерживаемые ограничения: check и not_null
models:
- name: <model name>
# обязательно
config:
contract:
enforced: true
# ограничения на уровне модели
constraints:
- type: check
columns: ['<column1>', '<column2>']
expression: "column1 <= column2"
name: <constraint_name>
- type: not_null
columns: ['column1', 'column2']
name: <constraint_name>
columns:
- name: <column3>
data_type: string
# ограничения на уровне столбца
constraints:
- type: not_null
- type: check
expression: "REGEXP_LIKE(<column3>, '^[0-9]{4}[a-z]{5}$')"
name: <constraint_name>
Примеры проектов
ссылка на примеры проектов: github.com/dbt-upsolver/examples/
Опции соединения
| Loading table... |
Опции цели
| Loading table... |
Опции трансформации
| Loading table... |
Опции копирования
| Loading table... |