此数据管道的最佳方法?

时间:2019-03-14 10:01:15

标签: hive hdfs apache-nifi

我需要使用Nifi设计管道,但是当我在两种方法之间进行思考时,我有一些疑问,我不确定要使用哪个处理器,所以也许你可以帮我。

情况如下:我需要将一些.csv文件摄取到我的HDFS中,这些文件不包含我要用来分区以后使用的Hive表的日期,所以我想到了两个选择:

  1. 在.csv处理期间的某个时刻,创建某种从Nifi启动的代码段,以修改.csv文件,并在其中添加带有日期的列。
  2. 在配置单元上创建一个临时(内部?)表,更改该表以添加该列,最后将其添加到按日期划分的表中。

我不确定哪个选项更好(内存方式,简单性,资源管理),或者甚至可能,或者有更好的方法。我也不确定要使用哪些Nifi处理器。

谢谢大家的帮助。

1 个答案:

答案 0 :(得分:2)

您应该能够在NiFi中轻松执行第一名,而无需编写任何代码:)

步骤如下:

  1. 从某处(可能是GetFile)获取CSV的源处理器
  2. UpdateAttribute以添加当前日期的属性
  3. 使用CsvReader和CsvWriter的UpdateRecord,添加一个新的日期字段 来自#2的值

我已经创建了一个示例,并在此处发布了模板:

https://gist.githubusercontent.com/bbende/113f8fa44250c09a5282d04ee600cd09/raw/c6fe8b1b9f31bb106f9c816e4fd5ea90ebe19f80/CsvAddDate.xml

保存该xml文件,然后使用NiFi画布左侧的调色板将其上传为模板。然后通过拖动模板图标从顶部工具栏实例化模板。