Пример записи данных в ADB с помощью NiFi ADB Connector
Обзор
Для иллюстрации работы NiFi ADB Connector в статье показана реализация загрузки данных из таблиц базы данных PostgreSQL в таблицы ADB (на основе Greengage DB).
Создание NiFi ADB Connector выполняется в пользовательском интерфейсе NiFi и доступно начиная с ADS 3.9.0.1.b1.
Предварительные требования
Ниже описано окружение, используемое для создания NiFi ADB Connector.
ADS
-
Кластер ADS развернут согласно руководству Online-установка. Минимальная версия ADS — 3.9.1.2.b1.
-
Сервисы NiFi и ZooKeeper установлены в кластере ADS.
ADP
-
Кластер ADP развернут согласно руководству Online-установка.
-
На установленном сервере PostgreSQL (кластер ADP) выполнены подготовительные действия:
-
Пользователь с именем
my_user, привилегиямиSUPERUSERи паролем создан в БДpostgres. -
В БД
postgresсоздана таблицаmy_tableи в нее добавлены несколько строк с данными. -
Файл pg_hba.conf настроен для обеспечения доступа пользователя с хоста, на котором установлен сервис NiFi кластера ADS. Для этого в поле PG_HBA на странице конфигурационных параметров сервиса ADPG добавлена запись об адресе хоста и пользователе:
host postgres my_user 10.92.43.206/32 trust
-
|
ПРИМЕЧАНИЕ
Для получения информации о работе в ADP обратитесь к статьям: |
ADB
-
Кластер ADB развернут согласно руководству Online-установка.
-
Сервис ADB установлен в кластере ADB.
-
Пользователь с именем
new_user, привилегиямиSUPERUSERи паролем создан в БДadb. -
В БД
adbсоздана таблицаmy_tableдля записи данных. -
Файл pg_hba.conf настроен для обеспечения доступа пользователя с хоста, на котором установлен сервис NiFi кластера ADS. Для этого в поле PG_HBA на странице конфигурационных параметров сервиса ADB добавлена запись об адресе хоста и пользователе:
host adb new_user 10.92.40.128/24 trust -
В Interconnect-сети, к которой подключены хосты кластера, должен быть установлен
MTU = 9000*(jumbo frame), чтобы пакеты, формируемые ADB (gp_max_packet_size+ overhead), помещались в эти фреймы целиком. Для получения более подробной информации о требованиях к сети кластера ADB обратитесь к статье Требования к сети.
|
ПРИМЕЧАНИЕ
Для получения информации о работе в ADB обратитесь к статьям: |
Подключение к серверу PostgreSQL (ADP)
-
Создайте процессор QueryDatabaseTable и откройте его конфигурацию. Этот процессор выполняет SQL-запросы для получения данных из таблицы PostgreSQL. Заполните параметры, связанные с используемой таблицей PostgreSQL.
Конфигурация процессора QueryDatabaseTable
Конфигурация процессора QueryDatabaseTable -
Перейдите в поле значения параметра Database Connection Pooling Service, во всплывающем списке выберите Create new service… и в открывшемся окне создайте экземпляр сервиса DBCPConnectionPool для создания подключения к PostgreSQL server.
Создание экземпляра сервиса DBCPConnectionPool
Создание экземпляра сервиса DBCPConnectionPool -
После сохранения созданного экземпляра нажмите
, в открывшемся окне NiFi Flow Configuration → Controller Services откройте конфигурацию сервиса и введите параметры, связанные с базой данных PostgreSQL.
Конфигурация сервиса PostgressDBCPConnectionPool
Конфигурация сервиса PostgressDBCPConnectionPool
Подключение к Greengage DB (ADB)
-
Для выполнения подключения к таблице Greengage создайте процессор PutGreengageRecord, откройте его конфигурацию и заполните параметры, связанные с таблицей.
Конфигурация процессора PutGreengageRecord
Конфигурация процессора PutGreengageRecord -
Перейдите в поле значения параметра Gpfdist Service, во всплывающем списке выберите Create new service… и в открывшемся окне создайте экземпляр сервиса StandardGpfdistService.
Создание экземпляра сервиса StandardGpfdistService
Создание экземпляра сервиса StandardGpfdistService -
После сохранения созданного экземпляра нажмите
, в открывшемся окне NiFi Flow Configuration → Controller Services откройте конфигурацию сервиса и заполните необходимые параметры.
Конфигурация сервиса StandardGpfdistService
Конфигурация сервиса StandardGpfdistService -
Перейдите в поле значения параметра Database Connection Pooling Service, во всплывающем списке выберите Create new service… и в открывшемся окне создайте экземпляр сервиса DBCPConnectionPool для создания подключения к Greengage DB.
-
После сохранения созданного экземпляра нажмите
, в открывшемся окне NiFi Flow Configuration → Controller Services откройте конфигурацию сервиса и введите параметры, связанные с базой данных ADB.
Конфигурация сервиса GreengageDBCPConnectionPool
Конфигурация сервиса GreengageDBCPConnectionPool -
Закройте окно NiFi Flow Configuration → Controller Services и снова перейдите к конфигурации процессора PutGreengageRecord. В поле значения параметра Record Reader создайте экземпляр сервиса AvroReader для чтения записей из PostgreSQL в формате Avro со встроенной схемой.
Если используется несколько процессоров PutGreengageRecord для переноса данных из разных источников в одну базу ADB, для значения Gpfdist Service выберите один и тот же созданный StandardGpfdistService.
После создания все сервисы отображаются на странице NiFi Flow Configuration → Controller Services.
Сервис StandardGpfdistService отображается в статусе Invalid до запуска связанного с ним сервиса GreengageDBCPConnectionPool.
Запуск потока данных
Процессоры отображаются с ошибками из-за того, что сервисы, связанные с ними, не запущены.
Для запуска потока:
-
Поочередно запустите сервисы на странице NiFi Flow Configuration → Controller Services, кликнув на иконку
.
-
Запустите созданный поток данных.
Используя запросы к базе данных ADB, можно прочитать полученные данные.