Обзор NiFi ADB Connector

Обзор

NiFI ADB Connector обеспечивает высокоскоростную параллельную запись данных из NiFi в Arenadata DB (ADB).

Начиная с ADS 3.9.0.1.b1 в пользовательском интерфейсе NiFi для создания NiFI ADB Connector доступны компоненты разработки Arenadata: процессор PutGreenplumRecord и сервис контроллера StandartGpfdistService.

Архитектура NiFI ADB Connector

Процессоры PutGreenplumRecord собирают данные и передают их в сервис контроллера StandartGpfdistService, который, используя встроенный протокол gpfdist, подключается к ADB через сервис пула подключений к базе данных GreenplumDBCPConnectionPool.

Greenplum Parallel File Server (gpfdist) — утилита Greenplum для чтения и записи данных из файлов, расположенных на удаленных серверах. Она установлена на всех хостах кластера ADB и обеспечивает параллельную загрузку данных, распределяя их между сегментами равномерно или согласно заданному ключу распределения данных.

Архитектура NiFI ADB Connector
Архитектура NiFI ADB Connector
Архитектура NiFI ADB Connector
Архитектура NiFI ADB Connector

PutGreenplumRecord

PutGreenplumRecord — процессор NIFI, обрабатывающий входные записи через приемник gpfdist, который создается StandartGpfdistService.

Ниже приведены параметры процессора.

Параметр Обязательность Описание Значение по умолчанию

Gpfdist Service

true

Ссылка на запущенный сервис контроллера StandartGpfdistService

 — 

Record Reader

true

Ссылка на запуск одного из сервисов контроллера: CSVReader, AvroReader или другого, в зависимости от источника входных данных

 — 

Schema Name

false

Имя схемы, куда будут загружены данные

null

Table Name

true

Имя таблицы, в которую будут загружены данные

 — 

Table Columns

true

Столбцы таблицы, куда будут загружены данные

 — 

StandartGpfdistService

StandartGpfdistService — сервис контроллера для записи данных в сегменты ADB, использующий механизм читающей внешней таблицы с версией протокола gpfdist = 1.

Ниже приведены параметры сервиса контроллера.

Параметр Обязательность Описание Значение по умолчанию

Listening Port

true

Порт для прослушивания входящих запросов gpfdist

 — 

Database Connection Pooling Service

true

Ссылка на настроенный сервис контроллера DBCPConnectionPool

 — 

Minimum Gpffist Server Threads

false

Минимальное количество потоков, используемых для запуска сервера gpfdist

1

Maximum Gpffist Server Threads

false

Максимальное количество потоков, используемых для запуска сервера gpfdist

4

The Maximum Gpffist Server Threads Idle Timeout

false

Максимальное время простоя потоков сервера gpfdist в миллисекундах

60000

Write buffer size in bytes

false

Размер буфера записи байтов для сериализованных записей

1Mb

Maximum Record Processor Threads

false

Максимальное количество потоков, используемых для обработки записей

8

Maximum Gpfdist Request Processor Threads

false

Максимальное количество потоков, используемых для обработки запроса gpfdist

8

GreenplumDBCPConnectionPool

GreenplumDBCPConnectionPool — сервис для подключения к ADB. Представляет собой сервис пула подключений к базе данных.

Поддерживаемые типы данных

Сопоставление типов данных ADB с типами полей записей NiFi приведено ниже.

Тип данных ADB Тип данных поля записи NiFi Комментарий

BIT

BOOLEAN

 — 

BOOLEAN

BOOLEAN

 — 

SMALLINT

SHORT, INT

Размер значения должен быть меньше 2 байт

INTEGER

INT

 — 

BIGINT

BIGINT, LONG

 — 

REAL

FLOAT

 — 

DOUBLE

DOUBLE

 — 

NUMERIC(p, s)

DECIMAL

 — 

CHAR(n)

STRING

 — 

VARCHAR(n)

STRING

 — 

ENUM

STRING

 — 

BYTEA

BYTE[], STRING

Для типа STRING значение должно быть записано в шестнадцатеричном формате, например: \xd078

DATE

DATE

 — 

TIME(n)

TIME

 — 

TIMESTAMP(n)

TIMESTAMP

 — 

TIMESTAMPTZ(n)

TIMESTAMP

 — 

MONEY

DECIMAL, STRING, DOUBLE, FLOAT

 — 

UUID

STRING

 — 

JSONB

STRING

 — 

HSTORE

STRING, MAP(STRING, STRING)

Для типа STRING значение должно быть в формате key=value, key1=value1

ARRAY

STRING, STRING[]

Для типа STRING значение должно быть в формате {value, value1}

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней