【问题标题】:Importing data from mysql to Hive/hdfs using Apache Nifi使用 Apache Nifi 将数据从 mysql 导入 Hive/hdfs
【发布时间】:2016-12-30 09:20:50
【问题描述】:

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

  1. QueryDatabaseTable ---mysql 数据
  2. ConvertAvroToJson --- 输出
[{"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文件拆分为单个流文件

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    正如詹姆斯所说,在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 表,以使数据准备好进行查询。

    【讨论】:

      【解决方案2】:

      我相信分割这些记录的 JsonPath 表达式只是 $,因为记录数组是根对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-11
        • 2019-03-09
        • 1970-01-01
        • 1970-01-01
        • 2019-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多