Инджестор MongoDB
Настройка, предварительные условия и разрешения
При включенном access control y пользователя должны быть следующие actions на кластере:
- listDatabases,
- listCollections,
- find,
- для извлечения размеров коллекций - collStats,
- для извлечения привилегий пользователей - viewUser.
Пример команд для выдачи всех необходимых привилегий инжестору:
db.createRole({role: "ingestorRead",privileges: [{ resource: { cluster: true }, actions: [ "viewUser", "listDatabases"]}, {resource: { db: "", collection: "" }, actions: ["find", "listCollections", "collStats", "viewUser"] }],roles: []})
db.createUser({user: "ingest_user", pwd: "password", roles: [ { role: "ingestorRead", db: "admin" }]})
Возможности платформы (Important Capabilities)
| Название | Описание | Поддерживается | Настройки |
|---|---|---|---|
| Schema Metadata | Вкладка Schema: схема датасета | Да | Включено по умолчанию. |
| Descriptions | Вкладка Documentation: текстовое описание объекта | Да | Включено по умолчанию. Можно редактировать через Excel. |
| Data Lineage | Вкладка Lineage: внутренний lineage источника | Нет | |
| Properties | Вкладка Properties: системные поля | Да | Включено по умолчанию. Настраивается в рецепте с помощью трансформеров. |
| Dataset Usage & Query History | Вкладка Queries: запросы и историческая информация о датасете | Да | Включено по умолчанию. |
| Data Profiling (Профилирование данных) | Вкладка Stats: количество строк, столбцов, статистики и графики | Нет | |
| DQ Checks | Вкладка DQ Checks: проверка качества данных | Да | Отключено по умолчанию. Настраивается с помощью дополнительного инджестора. |
| Platform Instance | Наличие у объекта связи с платформ инстансом | Да | Включено по умолчанию. Настраивается в рецепте. |
| Critical data | Чекбокс Critical полей | Да | Включено по умолчанию. Можно редактировать через Excel. |
| Ownership | Наличие у объекта владельца | Да | Включено по умолчанию. Можно редактировать через Excel или с помощью трансформеров. |
| Detect deleted entities | Проверка удалены ли данные в источнике. | Да | Отключено по умолчанию. Настраивается в рецепте, в разделе stateful ingestion. |
| Status | Пометить удаленным | Да | Включено по умолчанию. Можно редактировать с помощью трансформеров. |
| Tags | Наличие у объекта тега | Да | Включено по умолчанию. Можно редактировать через Excel и с помощью трансформеров. |
| Glossary Term | Наличие у объекта связи с термином | Да | Включено по умолчанию. Можно редактировать через Excel или с помощью трансформеров. |
| Domains (Домены) | Наличие у объекта связи с доменом | Да | Настраивается в рецепте, в разделе stateful ingestion. Можно редактировать через Excel или с помощью трансформеров. |
Пример рецепта
Для получения деталей о добавлении паттернов для баз данных, схем, представлений, таблиц можно обратиться к странице паттернов
source:
type: mongodb-dc
config:
connect_uri: mongodb://localhost # Хост и порт сервера БД
include_dataset_privileges: true # Извлечение грантов пользователей
authMechanism: 'DEFAULT' # Механизм аутентификации MongoDB
username: user # Пользователь
password: pass # Пароль
platform_instance: 'Сюда_подставить_platform_instance'
stateful_ingestion:
enabled: true # Признак включения режима 'Stateful ingesting' - загружаемые данные имеют приоритет над загруженными ранее. Если в загружаемых отсутствуют коллекции/поля - они не будут отображаться в Каталоге
collection_pattern: # Необязательный параметр. Regex паттерны для разрешения/исключения коллекций, по умолчанию allow: ['.*'], deny: [], ignoreCase: True.
allow: ['.*']
deny: []
ignoreCase: True
database_pattern: # Необязательный параметр. Regex паттерны для разрешения/исключения баз, по умолчанию allow: ['.*'], deny: [], ignoreCase: True.
allow: ['.*']
deny: []
ignoreCase: True
pipeline_name: 'Сюда_подставить_имя_pipeline'
sink:
type: catalog-rest
config:
server: 'https://gms.datacatalog.ru'
token: '********'
transformers:
- type: 'add_digital_products'
config:
digital_products: ['PRODUCT_ID1','PRODUCT_ID2'] # Список продуктов из мастер-системы, с которыми будут связаны все объекты, создаваемые по результатам инджестинга.