PutHiveQL NiFi处理器速度极慢-配置错误?

时间:2019-08-12 11:58:05

标签: sql hive apache-nifi

我目前正在设置一个简单的NiFi流,该流从RDBMS源读取并写入Hive接收器。该流程将按预期运行,直到运行极慢的PuHiveSql处理器为止。大约每分钟插入一条记录。
当前设置为在一个节点上运行的独立实例。

enter image description here

大约每1分钟显示一次插入的日志:

({INSERT INTO customer (id, name, address) VALUES (x, x, x)enter image description here

关于为什么会这样的任何想法?尝试改善吗?

预先感谢

2 个答案:

答案 0 :(得分:2)

一次将一个记录插入Hive将导致速度极慢。

定期将其插入配置单元表

Change your flow:

QueryDatabaseTable
PutHDFS

然后在存储数据的 HDFS目录顶部创建Hive avro表。

(或)

QueryDatabaseTable
ConvertAvroToORC //incase if you need to store data in orc format
PutHDFS

然后在存储数据的 HDFS目录顶部创建Hive orc表。

答案 1 :(得分:0)

您一次要刷新一项记录吗?如果可以的话,可以在推送到HiveQL之前使用合并记录过程创建批次,

建议批量处理100条记录: 看到这里:https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-hive-nar/1.5.0/org.apache.nifi.processors.hive.PutHiveQL/

  

批次大小| 100 |在单个事务中放入数据库的首选FlowFiles数量

使用MergeRecord进程并设置记录数或/和超时,它应该大大加快速度