如何最好地通过 NiFi 与 AWS RDS Postgres 交互
How best to interact with AWS RDS Postgres via NiFi
我有一个 FlowFile,我想将属性插入到 RDS 中。如果这是一台本地机器,我会创建一个 DBCPConnectionPool,引用一个 JDBC 驱动程序等
使用 RDS,我应该做什么?类似的东西(我将如何在 AWS 上执行此操作)?还是我一直在使用 ExecuteScript?如果是后者,是否有 Python 如何执行此操作的示例?
假设您要插入数据库的所有值都在流文件属性中。
使用ReplaceText
处理器将流文件的内容替换为sql插入语句:
insert into mytable (id, message, start_date) values(?, ?, ?)
然后使用具有以下属性的PutSQL
处理器来指定sql语句
的三个参数(?
)
sql.args.1.type = 2 # NUMERIC
sql.args.1.value = ${MY_ATTR_ID} # get value from attribute or context variable MY_ATTR_ID
sql.args.2.type = 12 # VARCHAR
sql.args.2.value = ${MY_ATTR_MSG}
sql.args.3.type = 93 # TIMESTAMP
sql.args.3.value = ${MY_ATTR_DATE}
sql.args.3.format = yyyy-MM-dd HH:mm:ss.SSS
此处列出了所有 jdbc 数据类型:
https://docs.oracle.com/javase/7/docs/api/constant-values.html#java.sql.Types.ARRAY
根据反馈,问题可能不明确,但这里是获得与 Amazon RDS 实例通信的 NiFi(运行 在 AWS EC2 实例上)的答案:
- 在 EC2 实例上,下载最新的 JDBC 驱动程序 (
wget "https://driver.jar"
)
- (如果需要)将 JDBC 驱动程序移动到安全文件夹中。
- 创建 DBCPConnectionPool,将完全解析的文件路径引用到 driver.jar(有用:使用
readlink -f driver.jar
获取路径)。
- 不要忘记——在您的 AWS 安全组下,添加允许您的 EC2 实例访问 RDS 的入站规则(在 Source 下,您应该将安全组您的 EC2 实例)。
我有一个 FlowFile,我想将属性插入到 RDS 中。如果这是一台本地机器,我会创建一个 DBCPConnectionPool,引用一个 JDBC 驱动程序等
使用 RDS,我应该做什么?类似的东西(我将如何在 AWS 上执行此操作)?还是我一直在使用 ExecuteScript?如果是后者,是否有 Python 如何执行此操作的示例?
假设您要插入数据库的所有值都在流文件属性中。
使用ReplaceText
处理器将流文件的内容替换为sql插入语句:
insert into mytable (id, message, start_date) values(?, ?, ?)
然后使用具有以下属性的PutSQL
处理器来指定sql语句
?
)
sql.args.1.type = 2 # NUMERIC
sql.args.1.value = ${MY_ATTR_ID} # get value from attribute or context variable MY_ATTR_ID
sql.args.2.type = 12 # VARCHAR
sql.args.2.value = ${MY_ATTR_MSG}
sql.args.3.type = 93 # TIMESTAMP
sql.args.3.value = ${MY_ATTR_DATE}
sql.args.3.format = yyyy-MM-dd HH:mm:ss.SSS
此处列出了所有 jdbc 数据类型:
https://docs.oracle.com/javase/7/docs/api/constant-values.html#java.sql.Types.ARRAY
根据反馈,问题可能不明确,但这里是获得与 Amazon RDS 实例通信的 NiFi(运行 在 AWS EC2 实例上)的答案:
- 在 EC2 实例上,下载最新的 JDBC 驱动程序 (
wget "https://driver.jar"
) - (如果需要)将 JDBC 驱动程序移动到安全文件夹中。
- 创建 DBCPConnectionPool,将完全解析的文件路径引用到 driver.jar(有用:使用
readlink -f driver.jar
获取路径)。 - 不要忘记——在您的 AWS 安全组下,添加允许您的 EC2 实例访问 RDS 的入站规则(在 Source 下,您应该将安全组您的 EC2 实例)。