Настройка подключения к Apache Kafka

Экстрактор 1С позволяет подключится к приемнику данных Apache Kafka.
Важно!

Данное руководство не описывает порядок развертывания Apache Kafka. предполагается, что все компоненты Apache Kafka уже развернуты и подготовлены к работе.

Apache Kafka — это приёмник данных. В релизе 3.15.1.50 доступно подключение через внешнюю компоненту Native API. Для REST-подключения используются Confluent Platform либо Kafka Rest (Arenadata), в частности:

  • Kafka Rest API;

  • Schema Registry.

Примечание

Если выбран REST-вариант через Confluent и он ещё не установлен, воспользуйтесь инструкцией: https://docs.confluent.io/platform/current/installation/installing_cp/zip-tar.html

В видео ниже показан полный процесс выгрузки данных из 1С в Apache Kafka:

Это видео доступно:

Внешние компоненты в релизе 3.15

Начиная с 3.15.1.50 библиотеки для MySQL, PostgreSQL через Native API, AMQP 1.0 и Kafka через Native API выбираются и обновляются через справочник «Внешние компоненты». Краткие шаги приведены в соответствующих инструкциях по подключениям. Для очереди Redis (Native DLL) компонента выбирается в настройках Экстрактора.

Подключение через Native API

  1. Создайте подключение типа Kafka.

  2. Выберите способ подключения «Native» и внешнюю компоненту Kafka. Откройте её карточку, проверьте поддержку платформы сервера 1С, нажмите «Обновить из облака» или «Загрузить из файла». Выполните «Проверить подключение» в карточке компоненты и вернитесь в форму Kafka.

  3. Заполните адрес и порт брокера, параметры аутентификации и SSL, если они используются, а также таймаут подключения.

  4. Настройте использование Schema Registry в соответствии с выбранным форматом данных.

  5. Проверьте подключение и сохраните настройки.

Для Native-подключения REST-компонент Confluent не требуется. Schema Registry настраивается отдельно, если он используется в вашей схеме выгрузки.

На примере ниже выбран способ «Native» и установлена компонента Kafka. В форме указаны сервер и порт, протокол безопасности, таймаут и каталог логов. Для Schema Registry предусмотрены отдельные параметры подключения, суффикс субъекта и тип схемы по умолчанию. Адреса и пути на изображении приведены как пример: укажите значения своего окружения.

Подключение Kafka через Native API и параметры Schema Registry

Имена субъектов Schema Registry

В настройках предусмотрен «Суффикс субъекта для значения». В релизе 3.15.1.50 поддерживаются произвольные суффиксы, а не только -value. Согласуйте настройку с именами субъектов в вашем Schema Registry. Поддерживается также работа без Schema Registry либо без субъекта у топика.

Если существующий субъект называется cities, оставьте суффикс пустым; для cities-value укажите -value. Проверьте фактическое имя субъекта перед изменением схемы. Имя топика и имя субъекта — разные настройки.

Совместимость задаётся для схемы субъекта. Если схема не используется, настройка совместимости не применяется. При отключённом Schema Registry Экстрактор не должен создавать в нём схемы. Для форматов JSON и Avro проверьте заполнение типов всех полей на этапе сопоставления.

Kafka не использует служебное поле сегмента SQL-таблицы. Проверьте состав сообщения, чтобы в него не попали лишние поля сегментирования. Перед пересозданием топика проверьте его имя и параметры схемы; пересоздание топика может удалить накопленные сообщения.

Проверка защищённого подключения

Для подключения с SSL и аутентификацией по сертификату проверьте параметры безопасности, доступность файлов сертификатов из процесса 1С и таймаут. Затем выполните проверку подключения, получение списка топиков и пробную отправку данных: эти действия могут выявлять разные ошибки.

Исправление проблемы таймаута при создании топика с аутентификацией по сертификату пока не подтверждено. При её повторении сохраните текст ошибки и параметры безопасности без секретов для обращения в поддержку.

REST-подключение

Ниже сохранены инструкции и иллюстрации для REST-подключения. Указания о Confluent, Kafka REST и Db.Proxy относятся к этим вариантам; для способа «Native» используйте порядок настройки выше.

Настройки на стороне Apache Kafka

Для того чтобы настроить выгрузку в Kafka Rest API необходимо открыть Control Center в Confluent.

А затем открыть настройки кластера. Здесь необходимо скопировать Сluster id. Именно его Вы впоследствии должны указать при настройке подключения в Экстракторе 1С в поле «ИД кластера».

Настройки на стороне Экстрактора 1С

Теперь создадим подключение к Apache Kafka в Экстракторе 1С. Открываем его, переходим в раздел «Подключения» и нажимаем «Создать» в открывшемся окне.

В открывшемся окне заполните все поля последовательно:

  • Наименование.

  • Тип подключения: Kafka (Confluent).

  • Партиции в нижнем регистре. Оставьте эту галку установленной (значение по умолчанию). Она добавлена для других типов СУБД.

Начиная с версии 3.6. Экстрактора 1С, в настройках подключения к Apache Kafka предлагаются два способа подключения:

  • Внутренний;

  • Db.Proxy.

Способ подключения: Внутренний

Выбираем способ подключения «Внутренний» и указываем следующие параметры подключения:

для Kafka REST:

  • Протокол;

  • Сервер;

  • порт;

  • ИД кластера (который мы скопировали в настройках кластера в Confluent).

для Schema Registry:

  • Протокол;

  • Сервер;

  • порт;

  • Начиная с версии 3.6. Экстрактора 1С, для Schema Registry в форме для параметров подключения можно указать тип схемы (по умолчанию), выбрать можно из трех вариантов:

    • NONE (нет типа схемы по умолчанию);

    • формат JSON;

    • формат AVRO.

Примечание

Для выгрузки в формате AVRO необходимо выбирать способ подключения «Db.Proxy». Он реализует конвертацию json-массивов, генерируемых Экстрактором 1С, в бинарный формат AVRO.

Теперь остается только проверить подключение с помощью соответствующей кнопки и сохранить его, нажав кнопку «Записать и закрыть».

Способ подключения: Db.Proxy

Как мы уже упоминали выше, для выгрузки в формате AVRO необходимо выбирать способ подключения «Db.Proxy». Он реализует конвертацию json-массивов, генерируемых Экстрактором 1С, в бинарный формат AVRO.

Для работы этого этого способа подключения необходимо сначала установить db.proxy.service.

Чтобы установить его, воспользуйтесь следующими данными:

  1. Файлы проекта proxy-сервиса для работы с СУБД из 1С через http находятся в публичном репозитории по адресу: pub / db-proxy-service · GitLab

    • В файле \db-proxy-service\src\Db.Proxy.Service\appsettings.json Вы можете задать свои логин и пароль. По умолчанию логин и пароль следующие:

      • Логин: "admin";

      • Пароль: "123".

  2. Сервис можно запустить на любой машине, главное, чтобы она была доступна вашему серверу 1С;

  3. Прежде, чем приступать к запуску сервиса, установите Docker — это платформа, которая позволяет упаковать в контейнер приложение со всем окружением и зависимостями, а затем доставить и запустить его в целевой системе.

Для того, чтобы настроить подключение к Apache Kafka через db.proxy.service, выбираем способ подключения «Db.Proxy» и указываем следующие параметры подключения:

для Db.Proxy:

  • адрес сервера и порт, где развернут сервис:

  • данные авторизации (пользователь и пароль) для доступа к сервису;

  • таймаут (обычно это 30-60 секунд).

для Kafka REST:

  • Протокол;

  • Сервер;

  • порт (обычно это 8082);

  • ИД кластера (который мы скопировали в настройках кластера в Confluent).

для Schema Registry:

  • Протокол;

  • Сервер;

  • порт (обычно это 8082);

  • Начиная с версии 3.6. Экстрактора 1С, для Schema Registry в форме для параметров подключения можно указать тип схемы (по умолчанию), выбрать можно из трех вариантов:

    • NONE (нет типа схемы по умолчанию);

    • формат JSON;

    • формат AVRO.

Теперь остается только проверить подключение с помощью соответствующей кнопки и сохранить его, нажав кнопку «Записать и закрыть».

Особенности настройки выгрузки в Apache Kafka

В целом, формирование набора данных, настройка вычисляемых полей, маппинг (сопоставление) полей ничем не отличаются от прочих вариантов выгрузки. Однако, некоторые особенности все же есть.

1. Топик (аналог таблицы данных при других вариантах подключения) можно создать новый или выбрать существующий.

2. На этапе маппинга (сопоставления) полей, Вы можете выбрать тип схемы выгрузки или отставить как есть, если при настройке подключения была указана схема по умолчанию.

При этом перезаполняются типы полей.

3. Для подключение к Apache Kafka есть этап «Прочие настройки». Здесь можно прописать следующие параметры:

В результате, сформированный проект по указанному вами расписанию, начинает выгружать данные в Apache Kafka.

Найти выгрузку можно в Confluent в Control Center в разделе «Topics». Там же можно посмотреть получившуюся схему во вкладке «Schema», а во вкладке «Messages» находится, условно говоря, история выгрузки.