使用NiFi将CSV数据导入Hive

时间:2019-05-16 09:06:15

标签: hadoop hive apache-nifi avro orc

我正在尝试将csv数据提取到Hive数据库中。为此,

我尝试过

listFile --> FetchFile --> ConvertCSVToAvro --> ConvertAvroToOrc --> PutHDFS

csv数据被转换为ORC格式,并且数据正在加载到HDFS中。在此HDFS数据之上,我可以创建配置单元外部表。

现在,我想使用putHiveQL处理器进行测试。

为此,我需要将CSV数据转换为AVRO还是JSON?

ORC数据不能直接加载到Hive吗?

如果是,我们必须手动创建Hive表还是自动创建?

1 个答案:

答案 0 :(得分:1)

我们可以在NiFi流中创建 Hive表

ConvertAvroToOrc 处理器使用该属性将hive.ddl属性添加到流文件,我们可以使用PutHiveQL处理器在Hive中创建表。

listFile --> FetchFile --> ConvertCSVToAvro --> ConvertAvroToOrc --> PutHDFS -->
 ReplaceText(Always replace with ${hive.ddl}) --> PutHiveQL

请参阅this,我详细解释了NiFi流程,该流程可在蜂巢中动态创建表/分区。

  • 一旦 ORC 数据加载到HDFS中,然后在HDFS目录顶部创建表。
  • 使用 SelectHiveQL 从表中读取数据 在处理器中选择的output format(csv,avro)上 这种格式的流文件。