alation_term_loader v0.0.11
Загрузчик tsv в Alation
Утилита должна считать указанный файл/файлы и загрузить данные в Alation, в процессе загрузки должен быть сформирован лог файл, который либо должен содержать сообщение об успешной загрузке, либо список ошибок.
Ограничения разработки:
- Для утилиты не разрабатывается UI, она будет запускаться из командной строки.
- Загружаться будут файлы в формате TSV - текстовые файлы с разделителем табуляцией, UTF-8
Установка и запуск
Для запуска необходимо иметь установленную версию NODE.JS
не младше v14.17.3 и NPM
v6.14+
1) Установить пакет глобально npm i -g alation_term_loader
2) Создать JSON файл конфигурации, по формату: {
"host": "http://www.alation.com",
"username": "user@alation.com",
"password": "password",
"logPath": "logs",
"tokenName": "term",
"tokenStoragePath": "keys",
"customFieldsId": {
"lineageTable": 0,
"lineageRef": 0,
"alternativeName": 0,
"reference": 0,
"stewards": 0
}
}
3) Запустить скрипт из командной строки alation_term_loader
Лог ошибок
Формат лога ошибок
- Имя файла
- Номер строки
- Название термина
- Название родительского термина
- Название колонки
- Текст ошибки
Шаблон данных
Шаблон для загрузки бизнес-терминов будет представлен в формате tsv, для Терминов и Физики.
Вкладка "Термин"
- Родительский термин и Термин - уникальный ключ термина. Если данное сочетание не уникально в файле, то загрузка строк этим ключем не производится, этот ключ выводится в лог ошибок ("Не уникальное сочетание родительского термина и термина"). В случае если родительский термин не найден в справочнике или не задан - вывести в лог ошибку ("Родительский термин не существует"). В случае если в Alation найдено более 2 родительских терминов с одинаковым названием вывести ("В Alation существует два родительских термина с данным названием - исправьте перед загрузкой данного файла.")
- Action - определяет какую операцию, требуется сделать с данным термином
- Пусто или "I" - создать, если термин уже существует то данная строка будет выведена в лог ошибок ("Термин уже существует")
- U - обновить/изменить - обновить, если термин не существует, то данная строка будет выведена в лог ошибок ("Термин не существует")
- D - удалить термин
- Кластер данных - является не обязательным (пока!) для заполнения. Как только кластера данных будут согласованы и прогружены в каталог данных, это поле станет обязательным для заполнения.
- Alternative name - записать отдельное в поле термина
- Описание - не может быть пустым (иначе ошибка "Поле описание не может быть пустым") - загрузить текст в поле "Body", в режиме U - заменить имеющееся значение
- Steward - записать в поле термина. При подгрузке данных эта дополняется к уже существующим значениям.
- Reference - не обязательное для заполнения поле, состоящее из трех частей - система (в Alation определяется по Title), схема, таблица. При подгрузке данных найти соответствующий объект БД в Alation и ссылку на него добавить в отдельное поле "Справочник" на термине. Пример значения: INSTANCE.SCHEMA.TABLE
Вкладка "Физика"
На найденом объекте БД заполняем Relevant Articles, путем добавления объекта БД в поле термина "Lineage".
- Родительский термин, Термин и Объект БД - уникальный ключ данной вкладки. Если данное сочетание не уникально в файле, то загрузка строк этим ключем не производится, этот ключ выводится в лог ошибок ("Не уникальное сочетание родительского термина и термина"). В случае если родительский термин не найден в справочнике или не задан - вывести в лог ошибку ("Родительский термин не существует"). В случае если в Alation найдено более 2 родительских терминов с одинаковым названием вывести ("В Alation существует два родительских термина с данным названием - исправьте перед загрузкой данного файла.")
- Название - бизнес название БД объекта необходимо записать в поле Title в Alation, если данное поле заполнено в Excel файле, а если поле не заполнено в Excel - ничего не делать, то есть не затирать старое значение в Alation. Если значения есть в обоих местах, то перезаписать значение в Alation взятым из Excel.
- Описание - описание БД объекта необходимо записать в поле Description в Alation, если данное поле заполнено в Excel файле, а если поле не заполнено в Excel - ничего не делать, то есть не затирать старое значение в Alation.
- Объект БД - объект БД, который состоит из 4 частей: система, схема, таблица и колонка. Пример значения: INSTANCE.SCHEMA.TABLE.ATTRIBUTE