将 NiFi 连接到 Vertica
Connecting NiFi to Vertica
我正在尝试将从 SFTP 服务器抓取的 CSV 文件作为新 table 上传到 Vertica。我配置了 GetSFTP
处理器 - 但我似乎无法理解如何设置与 Vertica 的连接并执行 SQL?
除了来自@sKwa 的批量加载器想法之外,您还可以使用 Vertica JAR 和将执行 SQL 的 PutSQL 处理器创建一个 DBCPConnectionPool。如果你需要从数据转换为SQL你可以使用ConvertJSONToSQL,否则使用PutDatabaseRecord,它基本上是一个"ConvertXToSQL -> PutSQL"在一起。
1 - 您需要使用 Vertica JAR 设置 DBCPConnectionPool,就像提到的 @mattyb。
2 - 创建一个暂存区,您将在其中放置可执行文件(复制脚本)
3 - 创建一个模板来管理您的脚本或加载(替换文本处理器)
注:
- 您在此处看到的参数来自上游处理器的流文件。
- 这是一个可重用的进程组,因此有许多其他 PG 会将其输出发送到此。
示例:
data_feed 任务将 运行 启动数据馈送 (此 PG 将保存它自己的参数和值)-如果没有错误执行到这一步,它是否失败它会转到另一个处理错误的可重用 PG。
每日摄取过程(每 5 分钟滴流加载),- PG 将准备 CSV 文件,将其移至暂存,确保所有格式都正确,- 如果正在执行,则没有错误出现在这一步,如果失败,它会转到另一个处理错误的可重用PG。
等等,许多 PG 将使用这个可重用的 PG 在数据库中加载数据
PG - 进程组的代表
- 这是我的样子
./home/dbadmin/.profile /opt/vertica/bin/vsql -U $username -w
$password -d analytics -c " copy ${TableSchema}.${TableToLoad} FROM
'${folder}/*.csv' delimiter '|' enclosed by '~' null as ' ' STREAM
NAME '${TableToLoad} ${TaskType}' REJECTED DATA AS TABLE
${TableSchema}.${TableToLoad}_Rejects; select
analyze_statistics('${TableSchema}.${TableToLoad}');"
-您也可以添加参数或创建新参数一次
4 - 更新属性过程以便您可以命名可执行文件。
5 - 将 Vertica 加载脚本放置在机器上的 Putfile 过程。
6 - ExecuteStreamComnand - 这将 运行 shell 脚本。
- 审计日志和任何其他东西都可以在这里完成。
更好 - 请参阅附带的模板,其中包含我使用的可重复使用的 PG,数据通过 NIFI 加载到 Vertica 中。
http://www.aodba.com/bulk-load-data-vertica-apache-nifi/
至于 Vertica DBCP,设置应如下所示:
- 红色标记是你的地方 ipaddress:port/dbadmin
注:
此 DBCPConnectionPool 可以在项目级别(在 PG 内)或 NIFI 级别(使用 Controller Services 菜单在主 canvas 中创建它)
我正在尝试将从 SFTP 服务器抓取的 CSV 文件作为新 table 上传到 Vertica。我配置了 GetSFTP
处理器 - 但我似乎无法理解如何设置与 Vertica 的连接并执行 SQL?
除了来自@sKwa 的批量加载器想法之外,您还可以使用 Vertica JAR 和将执行 SQL 的 PutSQL 处理器创建一个 DBCPConnectionPool。如果你需要从数据转换为SQL你可以使用ConvertJSONToSQL,否则使用PutDatabaseRecord,它基本上是一个"ConvertXToSQL -> PutSQL"在一起。
1 - 您需要使用 Vertica JAR 设置 DBCPConnectionPool,就像提到的 @mattyb。
2 - 创建一个暂存区,您将在其中放置可执行文件(复制脚本)
3 - 创建一个模板来管理您的脚本或加载(替换文本处理器)
注:
- 您在此处看到的参数来自上游处理器的流文件。
- 这是一个可重用的进程组,因此有许多其他 PG 会将其输出发送到此。
示例:
data_feed 任务将 运行 启动数据馈送 (此 PG 将保存它自己的参数和值)-如果没有错误执行到这一步,它是否失败它会转到另一个处理错误的可重用 PG。
每日摄取过程(每 5 分钟滴流加载),- PG 将准备 CSV 文件,将其移至暂存,确保所有格式都正确,- 如果正在执行,则没有错误出现在这一步,如果失败,它会转到另一个处理错误的可重用PG。
等等,许多 PG 将使用这个可重用的 PG 在数据库中加载数据
PG - 进程组的代表
- 这是我的样子
./home/dbadmin/.profile /opt/vertica/bin/vsql -U $username -w $password -d analytics -c " copy ${TableSchema}.${TableToLoad} FROM '${folder}/*.csv' delimiter '|' enclosed by '~' null as ' ' STREAM NAME '${TableToLoad} ${TaskType}' REJECTED DATA AS TABLE ${TableSchema}.${TableToLoad}_Rejects; select analyze_statistics('${TableSchema}.${TableToLoad}');"
-您也可以添加参数或创建新参数一次
4 - 更新属性过程以便您可以命名可执行文件。
5 - 将 Vertica 加载脚本放置在机器上的 Putfile 过程。
6 - ExecuteStreamComnand - 这将 运行 shell 脚本。 - 审计日志和任何其他东西都可以在这里完成。
更好 - 请参阅附带的模板,其中包含我使用的可重复使用的 PG,数据通过 NIFI 加载到 Vertica 中。
http://www.aodba.com/bulk-load-data-vertica-apache-nifi/
至于 Vertica DBCP,设置应如下所示:
- 红色标记是你的地方 ipaddress:port/dbadmin
注: 此 DBCPConnectionPool 可以在项目级别(在 PG 内)或 NIFI 级别(使用 Controller Services 菜单在主 canvas 中创建它)