Синхронизация данных Apache Atlas и ClickHouse
Для того чтобы в рамках Apache Atlas была возможность публиковать данные, необходимо синхронизировать метаданные между Apache Atlas и ClickHouse, чтобы платформа имела представление о данных, с которыми необходимо работать.
Для корректной работы ADCP необходимо чтобы была синхронизирована информация о:
- Инстансе, на котором расположена БД,
- Базе данных (БД),
- Таблицах БД,
- Полях таблиц.
В рамках ADCP, инстансы и БД необходимо синхронизировать вручную, таблицы и поля синхронизируются автоматически, при корректно указанных данных об инстансе и БД. Процесс синхронизации при поставке системы, по умолчанию, выполняется каждые 30 мин (периодичность может быть изменена вашим системным администратором). Процесс синхронизации может занимать в среднем от 1 до 30 мин, в зависимости от количества таблиц и их полей.
Для синхронизации метаданных не обязательно загружать все данные в ClickHouse, достаточно чтобы в ClickHouse были добавлены таблицы и поля. В случаях если вы знаете какая будет структура данных в ClickHouse, но еще не успели подготовить алгоритм загрузки данных, вы можете создать пустые таблицы для продолжения работы
Синхронизация инстанса
Автоматическая синхронизация БД не поддерживается. В случае если вам необходимо добавить БД, это необходимо сделать вручную, согласно инструкции:
1) Открыть Apache Atlas
2) В правом верхнем углу нажать на кнопку “Create Entity”
3) В появившемся модальном окне, в выпадающем списке выбрать agg_rdbms_instance. После чего в модальном окне будут отражены поля для заполнения.
4) Перевести переключатель required/all в положение all.
5) Заполнить следующие поля:
Наименование поля | Предназначение | Пример заполнения |
---|---|---|
rdbms_type | Тип СУБД инстанса. На текущий момент поддерживается только ClickHouse | clickhouse |
hostname | Указывается хост инстанса к которому необходимо обращаться | 10.10.0.0 или your-kube.cluster.internal.address |
port | Порт для подключения к инстансу на котором располагается ClickHouse | 8123 |
username | Имя пользователя инстанса которое будет использоваться для подключения | username |
password | Пароль для доступа к данным | qwerty123 |
name | Человекочитаемое наименование инстанса, предназначенное только для дальнейшего упрощение в рамках Apache Atlas. Необходимо заполнять латинскими символами | some_ch1_instance |
qualifiedName | Уникальное наименование инстанса, аналог ID в Apache Atlas | some_ch1_instance |
sourceName | Исходное наименование инстанса, по смыслу совпадает с полем name | some_ch1_instance |
isEnabled | Указывает доступен внесенный инстанс для работы с ним или нет. Устанавливается пользователем, по умолчанию True | True или False |
Все остальные поля, которые могут встречаться в этой сущности являются неактуальными и будут удалены в будущих релизах.
6) Нажать на кнопку “Create”. В результате будет создана сущность инстанса и созданная сущность откроется на текущей вкладке.
Синхронизация базы данных
Для того чтобы синхронизировать данные об инстансе, необходимо:
1) Открыть Apache Atlas
2) В правом верхнем углу нажать на кнопку “Create Entity”
3) В появившемся модальном окне, в выпадающем списке выбрать agg_rdbms_db. После в модальном окне будут отражены поля для заполнения.
4) Заполнить следующие поля:
Наименование поля | Предназначение | Пример заполнения |
---|---|---|
name | Человекочитаемое наименование БД. Необходимо заполнять латинскими символами | some_db_friendly_name |
qualifiedName | Уникальное наименование БД, аналог ID в Apache Atlas. Рекомендуется использовать в этом наименовании qualifiedName инстанса в котором находится БД для упрощения обслуживания | some_ch1_instance.some_db |
sourceName | Исходное имя БД отображающее то как называется БД в вашем инстансе | some_db |
isEnabled | Указывает доступен внесенная БД для работы с ним или нет. Устанавливается пользователем, по умолчанию True | True или False |
Instance | Ссылка на инстанс в котором расположена БД. В поиске в интерфейсе Apache Atlas при создании БД используется qualifiedName уже добавленных инстансов | some_ch1_instance |
Все остальные поля, которые могут встречаться в этой сущности, являются неактуальными и будут удалены в будущих релизах либо заполняются автоматически.
5) Нажать на кнопку “Create”. Сущность БД будет создана, вы увидите внесенную вами информацию, на вкладке “Relationships”, в поле “instance” будет отображено имя инстанса, в котором находится БД.
Синхронизация таблиц и полей
В случае если данные инстанса и БД были указаны верно, вся информация о таблицах и полях будет синхронизирована автоматически, в течение часа. ADCP автоматически подключится к ClickHouse и получит необходимую служебную информацию, в частности, будут созданы сущности таблиц и полей, в соответствии с данными в ClickHouse.
В случае, если по прошествию часа данные не появились, проверьте корректность внесенных данных инстанса и БД и обратитесь к вашему системному администратору.
Сущности таблиц и полей будут созданы со следующими полями:
Таблицы:
Наименование поля | Предназначение | Пример заполнения |
---|---|---|
dataUpdatedAt | Дата последнего обновления информации в таблице. | 2022-05-20 15:23:40.000 |
size | Количество строк в таблице. | 5000000 |
name | Человекочитаемое наименование таблицы. При автоматическом создании будет создано такое же как и фактическое наименование таблицы | some_table |
qualifiedName | Уникальное наименование таблицы, аналог ID в Apache Atlas | some_ch1_instance.some_db.some_table |
sourceName | Исходное имя таблицы отображающее то как называется таблица в вашей БД | some_table |
isEnabled | Указывает доступен внесенная БД для работы с ним или нет. | True |
db | Ссылка на БД в котором расположена таблица. В поиске в интерфейсе Apache Atlas при создании таблицы используется qualifiedName уже добавленных БД | some_ch1_instance.some_db |
Поля таблицы:
Наименование поля | Предназначение | Пример заполнения |
---|---|---|
dataType | Тип данных в поле | varbinary или integer и т.д. |
name | Человекочитаемое наименование поля | some_field |
qualifiedName | Уникальное наименование поля, аналог ID в Apache Atlas | some_ch1_instance.some_db.some_table.some_field |
sourceName | Исходное имя поля отображающее то как называется поле в таблице в ClickHouse | some_field |
isEnabled | Указывает доступна ли внесенная БД для работы с ним или нет | True |
table | Ссылка на таблицу в которой расположена таблица. В поиске в интерфейсе Apache Atlas при создании поля используется qualifiedName уже добавленных таблиц | some_ch1_instance.some_db.some_table |
Редактирование данных в ClickHouse
В рамках своей работы вы можете изменять состав таблиц и полей в вашем ClickHouse, а также изменять данные о самих инстансах и БД.
Для поддержки изменений в БД предусмотрены следующие механизмы:
Изменения таблицы
1) При добавлении новой таблицы в уже существующую БД в рамках ClickHouse система автоматически распознает, что в вашем ClickHouse появилась новая таблица и добавит её в Apache Atlas при ближайшем цикле синхронизации.
2) При редактировании имени таблицы которая уже была синхронизирована в Apache Atlas, при ближайшей синхронизации, таблица со старым наименованием и все её поля будут отмечены как удаленные и будет создана новая таблица с новым наименованием и теми же полями. В рамках Apache Atlas и ADCP это будет уже новая таблица, без присвоенных к её полям бизнес-терминов и связанных наборов данных.
3) При удалении таблицы из ClickHouse при ближайшем цикле синхронизации удаленная таблица и её поля будут отмечены как удаленные, дальнейшая работа с ними в рамках ADCP и Apache Atlas будет невозможна.
4) При создании таблицы с таким же именем, как и ранее удаленная таблица, будет создана новая таблица, ранее удаленная будет также оставаться отмеченной удаленной.
5) При изменении данных в таблице, добавлении или удалении строк, система автоматически изменит количество строк в Apache Atlas при ближайшей синхронизации.
Изменения полей таблицы
1) При добавлении нового поля в таблицу в ClickHouse которая уже была синхронизирована в Apache Atlas, при ближайшей синхронизации поле будет добавлено автоматически в Apache Atlas.
2) При удалении поля из таблицы ClickHouse, которое уже было синхронизировано в Apache Atlas, система автоматически пометит поле как удаленное, дальнейшая работа с такими полями в рамках ADCP и Apache Atlas будет невозможна.
3) При создании поля с таким же именем, как и ранее удаленное поле, будет создано новое поле, ранее удаленное будет также оставаться отмеченным удаленным.
4) При изменении типа поля в таблице в ClickHouse, которое уже было синхронизировано в Apache Atlas, система автоматически обновит тип поля, данные останутся неизменными.
Распространенные проблемы
Не удается создать инстанс или БД, при нажатии на кнопку Create ничего не происходит, через минуту появляется ошибка.
Эта проблема связана с тем, что не все компоненты Apache Atlas работают корректно, вероятно, есть проблема со связью с одним из хранилищ Apache Atlas. В этом случае вам необходимо связаться с системным администратором и сообщить ему о проблеме, и указать последовательность совершенных вами действий.
Данные об инстансе и БД были добавлены, но таблицы и поля не появились.
В этом случае:
1) В первую очередь необходимо убедиться что все данные об инстансе и БД были введены корректно. Если есть ошибки во введенных данных, устраните их и ожидайте повторного цикла синхронизации.
2) Убедитесь, что в полях “isEnabled” инстанса и БД указанно “true”. Если у таблицы или БД указано в поле isEnabled значение false, данные синхронизироваться не будут.
3) Во вкладках “Relationships” у инстанса в поле db указана ваша БД и у БД в поле “instance” указан ваш инстанс. Если они не указаны, отредактируйте метаданные БД в Apache Atlas, указав в поле instance ранее заведенный вами инстанс и ожидайте повторного цикла синхронизации.
4) Свяжитесь с системным администратором и сообщите ему о проблеме, указав последовательность совершенных вами действий.
В ClickHouse была изменена структура данных, но она не отображается в Apache Atlas.
Убедитесь, что с момента внесения изменений прошло более 1 часа, после чего обратитесь к вашему системному администратору, описав последовательность ваших действий.
Интерфейс Apache Atlas не соответствует тому что описан в инструкции
Apache Atlas имеет 2 версии интерфейса. Инструкция описывает работу с новой версией интерфейса. Вероятнее всего вы перешли в Apache Atlas по прямой ссылке, а не из интерфейса ADCP. Для того чтобы включить новый интерфейс вам, необходимо:
1) Кликнуть на иконку пользователя в верхнем правом углу.
2) В выпадающем меню выбрать “Switch to New”