用于 Hive 插入查询的 ConvertJsonToSQL

Posted

技术标签:

【中文标题】用于 Hive 插入查询的 ConvertJsonToSQL【英文标题】:ConvertJsonToSQL for Hive Insert query 【发布时间】:2020-05-14 20:11:42 【问题描述】:

我想将 Json 插入 hive 数据库。

我尝试使用 ConvertJsonToSQL Ni-Fi 处理器将 Json 转换为 SQL。如何在查询中使用PARTITION (....) 部分??

我可以这样做还是应该使用 ReplaceText 处理器进行查询?

【问题讨论】:

【参考方案1】:

您使用的是哪个版本的 Hive?有 Hive 1.2 和 Hive 3 版本的 PutHiveStreaming 和 PutHive3Streaming(分别)让您可以将数据直接放入 Hive,而无需发出 HiveQL 语句。对于 ORC 格式的外部 Hive 表,还有 ConvertAvroToORC(用于 Hive 1.2)和 PutORC(用于 Hive 3)处理器。

假设这些不适用于您的用例,您还可以考虑将 ConvertRecord 与 FreeFormTextRecordSetWriter 结合使用,后者使用 PARTITION 语句等生成 HiveQL。与尝试修补 SQL 语句以将其转换为分区表的 HiveQL 相比,它提供了更大的灵活性。

编辑:由于空间原因,我忘了提到 Hive 3 NAR/组件不包含在 NiFi 版本中。您可以找到适用于 NiFi 1.11.4 here 的 Hive 3 NAR。

【讨论】:

感谢您的回答,@mattyb 但我还没有将PutHive3Streaming 处理器放入我的nifi (1.11.4) 我更新了我的答案以包含指向 NAR 的链接(默认情况下不包含)

以上是关于用于 Hive 插入查询的 ConvertJsonToSQL的主要内容,如果未能解决你的问题,请参考以下文章

Hive:根据查询结果插入多个表

用于插入数据的 Hive 循环

Presto 查询无法将数据插入 Hive

在 HIVE 插入查询中,为啥 from 子句在开头?

PostgreSQl的分区表创建,插入数据,查询

用于更新和插入的 Hive 托管与外部表