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

Документы семантического слоя Apache Ossie

💡Полезно знать
Доступно начиная с dbt v1.12 или в канале релизов v1 Latest.

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:

  1. Создайте каталог osi/ в корне проекта dbt, на том же уровне, что и dbt_project.yml. Чтобы вместо него использовать один или несколько пользовательских каталогов, настройте osi-paths в dbt_project.yml, указав пути относительно корня проекта.

  2. Добавьте в каталог один или несколько файлов 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.

  3. Выполните любую команду, которая запускает компиляцию, например 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; дополнительные сведения см. в разделе События и журналы.

Нашли ошибку?

0
Loading