我正在尝试将从SFTP服务器抓取的CSV文件作为新表上传到Vertica。我配置了GetSFTP
处理器 - 但我似乎无法理解如何设置与Vertica的连接并执行SQL?
答案 0 :(得分:3)
1 - 您需要使用提及的@mattyb等Vertica JAR设置 DBCPConnectionPool 。
2 - 创建一个临时区域,您将拥有可执行文件(复制脚本)
3 - 创建模板来管理您的脚本或加载(ReplaceText处理器)
注意:强>
示例:强>
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,设置应如下所示:
注意:强> 此DBCPConnectionPool可以位于项目级别(在PG内部)或NIFI级别(使用Controller Services菜单在主画布中创建)
答案 1 :(得分:1)
除了来自@sKwa的批量加载器创意之外,您还可以使用Vertica JAR和将执行SQL的PutSQL处理器创建DBCPConnectionPool。如果你需要从数据转换为SQL,你可以使用ConvertJSONToSQL,否则使用PutDatabaseRecord,它基本上是一个“ConvertXToSQL - > PutSQL”。