Документы семантического слоя Apache Ossie
dbt v1.12 поддерживает стандарт Apache Ossie для определения семантических моделей и метрик. Вы можете размещать файлы .json в формате Ossie в каталоге osi/ в корне проекта или настроить osi-paths в dbt_project.yml, чтобы использовать один или несколько пользовательских каталогов с путями относительно корня проекта. dbt разбирает эти файлы и добавляет их содержимое в манифест вместе с семантическими моделями, определёнными в собственном формате dbt. Определения из Ossie и семантические модели в собственном формате dbt могут сосуществовать в одном проекте.
Предварительные требования
- Необходимо использовать dbt v1.12. Поддержка v2 появится в ближайшее время.
- Документы Ossie должны использовать версию
0.1.0или0.1.1. Любая другая строка версии вызывает ошибку разбора.
Определение семантических моделей с помощью документов Ossie
Чтобы определить семантические модели с помощью документов Ossie:
-
Создайте каталог
osi/в корне проекта dbt, на том же уровне, что иdbt_project.yml. Чтобы вместо него использовать один или несколько пользовательских каталогов, настройтеosi-pathsвdbt_project.yml, указав пути относительно корня проекта. -
Добавьте в каталог один или несколько файлов Ossie
.json. Файлы можно распределять по подкаталогам: dbt сканирует всё дерево каталогов.Поле
sourceдолжно содержать полное расположение модели dbt из этого проекта в хранилище данных в форматеdatabase.schema.alias(например,my_database.my_schema.fct_orders). dbt сопоставляет каждый набор данных с моделью по базе данных, схеме и псевдониму модели. Значениеsourceкаждого набора данных должно соответствовать модели dbt. Ограничения на источники наборов данных описаны в разделе Ограничения.Ниже приведён пример документа Ossie, который определяет семантическую модель на основе модели dbt с именем
fct_orders:{
"version": "0.1.1",
"semantic_model": [
{
"name": "orders",
"datasets": [
{
"name": "orders",
"source": "my_database.my_schema.fct_orders"
}
]
}
]
}В этом примере определяется только семантическая модель. Чтобы добавить метрики, включите в семантическую модель массив
metricsв соответствии со спецификацией Ossie. -
Выполните любую команду, которая запускает компиляцию, например
dbt compileилиdbt run. dbt автоматически обнаруживает и разбирает файлы Ossie.
Полученные семантические модели (и метрики, если они определены в документах Ossie) появляются в артефактах dbt в каталоге target/, включая manifest.json, semantic_manifest.json и osi_document.json.
Ограничения
- dbt сканирует каталоги Ossie только в корневом проекте (они настраиваются через
osi-paths, по умолчанию используетсяosi/). Файлы Ossie в установленных пакетах зависимостей игнорируются. - Источник каждого набора данных Ossie должен соответствовать модели dbt. Документы Ossie, ссылающиеся на источники (sources), seeds, snapshots или внешние таблицы, не поддерживаются.
- Если конвертер Ossie встречает неподдерживаемые типы метрик или другие конструкции, эти элементы отбрасываются, а dbt выдаёт предупреждение (код события
I078), но разбор продолжается. Предупреждения отображаются в CLI и записываются вlogs/dbt.log; дополнительные сведения см. в разделе События и журналы.