使用Apache Nifi将数据从mysql导入Hive / hdfs

时间:2016-07-19 22:18:38

标签: apache-nifi

我正在尝试使用Nifi将数据从mysql导入到hdfs / hive面临一些挑战。请建议我。

  
      
  1. QueryDatabaseTable --- mysql data
  2.   
  3. ConvertAvroToJson ---输出
  4.   
[{"emp_id": 467260, "emp_name": "Rob", "emp_age": 32},
{"emp_id": 467261, "emp_name": "Vijay", "emp_age": 32},
{"emp_id": 467258, "emp_name": "Jayaprakash", "emp_age": 26},
{"emp_id": 467259, "emp_name": "Kalyan", "emp_age": 32},
{"emp_id": 467262, "emp_name": "Andy", "emp_age": 20},
{"emp_id": 467263, "emp_name": "Ashley", "emp_age": 24},
{"emp_id": 467264, "emp_name": "Mounika", "emp_age": 24}]
  
      
  1. splitjson - 如何将json文件拆分为单个流文件
  2.   

2 个答案:

答案 0 :(得分:2)

正如James所说,在SplitJson中,你可能想要$,或者你可以试试$。*

作为替代方案,您可以尝试使用QueryDatabaseTable - > SplitAvro - > ConvertAvroToJson,这将首先拆分Avro记录,而不是将整个集转换为JSON然后拆分JSON。

在Apache NiFi 1.0.0中,将有一个ConvertAvroToORC处理器,它允许你直接转换为ORC,然后你可以使用PutHDFS和PutHiveQL(在NiFi 0.7.0和1.0.0中)将文件传输到HDFS并在目标目录的顶部创建一个Hive表,以便为查询做好准备。

答案 1 :(得分:0)

我相信用于拆分这些记录的JsonPath Expression只是$,因为记录数组是根对象。