将NiFi连接到Vertica

时间:2018-01-07 13:03:36

标签: apache-nifi vertica

我正在尝试将从SFTP服务器抓取的CSV文件作为新表上传到Vertica。我配置了GetSFTP处理器 - 但我似乎无法理解如何设置与Vertica的连接并执行SQL?

2 个答案:

答案 0 :(得分:3)

1 - 您需要使用提及的@mattyb等Vertica JAR设置 DBCPConnectionPool

2 - 创建一个临时区域,您将拥有可执行文件(复制脚本)

3 - 创建模板来管理您的脚本或加载(ReplaceText处理器)

注意:

  • 您在此处看到的参数来自上游proccesors的流文件。
  • 这是可重复使用的进程组,因此还有许多其他PG将其输出发送到此。

示例:

  • data_feed任务将运行一个开始数据源 (此PG将保留它自己的参数和值) - 如果执行时没有错误进入此步骤,是否失败转到另一个处理错误的可重用PG。

  • 每日摄取过程(每5分钟加载一次Trickle), - 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'分隔符'|'由'~'null包围为''STREAM   NAME'$ {TableToLoad} $ {TaskType}'被拒绝的数据如表   $ {TableSchema表} $ {} TableToLoad _Rejects。选择   analyze_statistics( '$ {TableSchema表} $ {TableToLoad}。');“

- 你也可以添加你的param或者创建一次新的

4 - 更新属性过程,以便命名可执行文件。

5 - 将Vertica加载脚本置于机器上的Putfile proc。

6 - ExecuteStreamComnand - 这将运行shell脚本。 - 审计日志和其他任何东西都可以在这里完成。

更好 - 请参阅附带的模板,其中包含可重复使用的PG,我使用NIFI将数据加载到Vertica中。

http://www.aodba.com/bulk-load-data-vertica-apache-nifi/

对于Vertica DBCP,设置应如下所示:

  • 其中红色标记是 ipaddress:port / dbadmin

enter image description here

注意: 此DBCPConnectionPool可以位于项目级别(在PG内部)或NIFI级别(使用Controller Services菜单在主画布中创建)

答案 1 :(得分:1)

除了来自@sKwa的批量加载器创意之外,您还可以使用Vertica JAR和将执行SQL的PutSQL处理器创建DBCPConnectionPool。如果你需要从数据转换为SQL,你可以使用ConvertJSONToSQL,否则使用PutDatabaseRecord,它基本上是一个“ConvertXToSQL - > PutSQL”。