跳转至

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

  1. 访问 Apache NiFi 下载页面
  2. 使用指定的密钥按照下载流程操作。
  3. 按照 Apache NiFi 文档中的安装说明操作。

安装 Vertica 客户端驱动

在使用 Apache NiFi 连接到 Vertica 之前,必须安装 Vertica JDBC 客户端驱动:

  1. 访问 Vertica Client Drivers 页面。
  2. 下载 JDBC 驱动。

    关于客户端和服务器兼容性的更多信息,请参阅 Client Driver and Server Version Compatibility

  3. 在 Windows 上安装 Vertica JDBC 驱动,请按照 Installing the JDBC Client Driver for Windows 中的说明操作。

连接 Apache NiFi 到 Vertica

需要创建两个 Apache NiFi processor:一个用于数据源连接,另一个用于数据目标连接到同一数据库。NiFi processor 封装了对数据流的一系列操作,包括数据路由、转换以及系统间的中介。

启动 Apache NiFi 并打开用户界面

以下说明适用于在 Windows 上启动 Apache NiFi。其他平台请参阅 NiFi 文档

  1. 执行 run-nifi.batx 文件启动 Apache NiFi:
    installation_directory\bin\run-nifi.batx
    
  2. 在浏览器中输入 URL 打开 NiFi UI:
    https://localhost:8443/nifi
    

    注意:NiFi UI 的 URL 格式为 https://DataSourceName:8443/nifi,默认端口为 8443。可以通过编辑 NiFi conf 目录中的 nifi.properties 文件更改端口。

创建 Vertica 数据源连接

  1. 在 NiFi UI 中,拖放 Processor 图标到画布中央。

截图

  1. 在 Add Processor 对话框中,选择 QueryDatabaseTable

截图

  1. 点击 Add
  2. 右键点击新 processor,选择 Configure

截图

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

截图

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

截图

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

截图

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

截图

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

截图

  1. 点击 Close

截图

现在可以使用 Apache NiFi 查询 Vertica 中的数据。

创建 Vertica 数据目标连接

  1. 拖放 Processor 图标到画布中央。
  2. 在 Add Processor 对话框中,选择组 database,类型选择 PutDatabaseRecord,点击 Add
  3. 右键点击新 processor,选择 Configure
  4. 打开 Properties 选项卡。
  5. 选择 Record Reader,点击 Value 框,展开值列表并选择 Create new service
  6. 在 Add Controller Service 对话框中,Compatible Controller Services 选择 AvroReader 1.22.0,输入服务名称。

    注意:用于数据源连接的 DBCPConnectionPool controller service 生成并执行 SQL SELECT 语句从 Vertica 获取数据,查询结果被转换为 Avro 格式。因此需要使用 AvroReader controller service 将 Avro 格式转换为可写入 Vertica 的记录。

截图

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

截图

  1. 打开 Properties 选项卡,提供数据库连接信息(同数据源配置)。
  2. 点击 APPLY
  3. 点击 Enable 启用 controller processor。
  4. 点击 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