Vertica 集成 Apache NiFi¶
关于 Vertica 连接指南¶
Vertica 连接指南提供将第三方合作伙伴产品连接到 Vertica 的基本说明。这些指南基于我们在特定版本的 Vertica 和合作伙伴产品上的测试。
软件版本¶
| 软件 | 版本 |
|---|---|
| 开源工具 | Apache NiFi 1.22.0 |
| 桌面平台 | Windows Server 2019 |
| Vertica 客户端 | Vertica JDBC driver 23.3.0-0 |
| Vertica 服务器 | Vertica Analytic Database 23.3.0-0 |
Apache NiFi 概述¶
Apache NiFi 是一个用于自动化和管理不同数据源与目标系统之间数据流的工具。NiFi 提供基于 Web 的用户界面,用于设计、控制、反馈和监控数据流。NiFi 是一个为可扩展性设计的开源产品。NiFi 允许端到端跟踪数据流,甚至可以在运行时修改流程。
安装 Apache NiFi¶
- 访问 Apache NiFi 下载页面。
- 使用指定的密钥按照下载流程操作。
- 按照 Apache NiFi 文档中的安装说明操作。
安装 Vertica 客户端驱动¶
在使用 Apache NiFi 连接到 Vertica 之前,必须安装 Vertica JDBC 客户端驱动:
- 访问 Vertica Client Drivers 页面。
- 下载 JDBC 驱动。
关于客户端和服务器兼容性的更多信息,请参阅 Client Driver and Server Version Compatibility。
- 在 Windows 上安装 Vertica JDBC 驱动,请按照 Installing the JDBC Client Driver for Windows 中的说明操作。
连接 Apache NiFi 到 Vertica¶
需要创建两个 Apache NiFi processor:一个用于数据源连接,另一个用于数据目标连接到同一数据库。NiFi processor 封装了对数据流的一系列操作,包括数据路由、转换以及系统间的中介。
启动 Apache NiFi 并打开用户界面¶
以下说明适用于在 Windows 上启动 Apache NiFi。其他平台请参阅 NiFi 文档。
- 执行
run-nifi.batx文件启动 Apache NiFi: - 在浏览器中输入 URL 打开 NiFi UI:
注意:NiFi UI 的 URL 格式为
https://DataSourceName:8443/nifi,默认端口为 8443。可以通过编辑 NiFi conf 目录中的nifi.properties文件更改端口。
创建 Vertica 数据源连接¶
- 在 NiFi UI 中,拖放 Processor 图标到画布中央。

- 在 Add Processor 对话框中,选择 QueryDatabaseTable。

- 点击 Add。
- 右键点击新 processor,选择 Configure。

- 在 Configure Processor 页面中,打开 Properties 选项卡。
- 选择 Database Connection Pooling Service,点击 Value 框,展开值列表并选择 Create new service。

- 在 Add Controller Service 对话框中,Compatible Controller Services 选择 DBCPConnectionPool 1.22.0,输入服务名称。

- 点击 Create。
- 回到 Properties 选项卡,选择 Generic 作为 Database Type,点击箭头图标。

- 系统提示保存更改,点击 Yes。
- 在 NiFi Flow Configuration 页面中,选择创建的 controller service,点击 Configure。

- 在 Configure Controller Service 页面中,打开 Properties 选项卡,提供数据库连接信息:
- Database Connection URL:
jdbc:vertica://IP_Address:Port#/Database_Name - Database Driver Class Name:
com.vertica.jdbc.Driver - Database Driver Location(s):
Base_Location/vertica-jdbc-11.0.0-0.jar(Base_Location 为 JDBC jar 文件下载路径) - Database User:数据库用户名
- Password:数据库密码
- Database Connection URL:
- 点击 APPLY。
- 点击 Enable 启用新的 Controller service。

- 点击 Close。

现在可以使用 Apache NiFi 查询 Vertica 中的数据。
创建 Vertica 数据目标连接¶
- 拖放 Processor 图标到画布中央。
- 在 Add Processor 对话框中,选择组 database,类型选择 PutDatabaseRecord,点击 Add。
- 右键点击新 processor,选择 Configure。
- 打开 Properties 选项卡。
- 选择 Record Reader,点击 Value 框,展开值列表并选择 Create new service。
- 在 Add Controller Service 对话框中,Compatible Controller Services 选择 AvroReader 1.22.0,输入服务名称。
注意:用于数据源连接的 DBCPConnectionPool controller service 生成并执行 SQL SELECT 语句从 Vertica 获取数据,查询结果被转换为 Avro 格式。因此需要使用 AvroReader controller service 将 Avro 格式转换为可写入 Vertica 的记录。

- 点击 CREATE。
- 回到 Properties 选项卡,选择 Statement Type,展开值列表,选择所需的写入操作类型(INSERT、UPDATE、DELETE)。
- 点击箭头图标,保存更改。
- 在 NiFi Flow Configuration 页面中,选择创建的 controller service,点击 Configure。

- 打开 Properties 选项卡,提供数据库连接信息(同数据源配置)。
- 点击 APPLY。
- 点击 Enable 启用 controller processor。
- 点击 Close。
现在可以使用 Apache NiFi 从 Vertica 源读取数据或写入数据到 Vertica 目标。

已知限制¶
- UUID、INTERVAL MONTH、INTERVAL SECOND、VARBINARY 和 LONG VARBINARY 数据类型不受支持。
- TIME、TIMETZ、TIMESTAMP 和 TIMESTAMPTZ 数据类型的毫秒值被截断。
更多信息¶
原文来源:https://www.vertica.com/kb/NifiCG/Content/Partner/NifiCG.htm