Перейти к основному содержимому
Версия: 1.2.0

Синхронизация данных 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Тип СУБД инстанса. На текущий момент поддерживается только ClickHouseclickhouse
hostnameУказывается хост инстанса к которому необходимо обращаться10.10.0.0 или your-kube.cluster.internal.address
portПорт для подключения к инстансу на котором располагается ClickHouse8123
usernameИмя пользователя инстанса которое будет использоваться для подключенияusername
passwordПароль для доступа к даннымqwerty123
nameЧеловекочитаемое наименование инстанса, предназначенное только для дальнейшего упрощение в рамках Apache Atlas. Необходимо заполнять латинскими символамиsome_ch1_instance
qualifiedNameУникальное наименование инстанса, аналог ID в Apache Atlassome_ch1_instance
sourceNameИсходное наименование инстанса, по смыслу совпадает с полем namesome_ch1_instance
isEnabledУказывает доступен внесенный инстанс для работы с ним или нет. Устанавливается пользователем, по умолчанию TrueTrue или 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Указывает доступен внесенная БД для работы с ним или нет. Устанавливается пользователем, по умолчанию TrueTrue или 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 Atlassome_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 Atlassome_ch1_instance.some_db.some_table.some_field
sourceNameИсходное имя поля отображающее то как называется поле в таблице в ClickHousesome_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”