Перейти к основному содержимому
Версия: 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”