NiFi - SelectHiveQL 能否以镶木地板格式从 CDH 集群上的表中读取数据?



我有一个使用案例,我必须将数据从内部 CDH 集群移动到 AWS EMR 集群。 我正在考虑在 AWS EC2 实例上设置 NiFi,以将数据从内部集群移动到 AWS s3 存储。

我在 CDH 集群上的所有表都以镶木地板格式存储。

问题#1: 我们在 NiFi 中是否支持以镶木地板格式读取表格?

我唯一的选择是直接从 hdfs 目录中读取数据并将其放在 s3 上,然后在 EMR 中创建 hive 表?

问题#2:Nifi如何确定插入表中的新数据并读取新数据。在我的情况下,所有表都按 yyyymm 分区。

如果使用 SelectHiveQL,它可以读取 Hive 可以读取的任何内容(包括 Parquet(,所有转换工作都在 Hive 中完成,并通过 JDBC 驱动程序作为 ResultSet 返回,因此您将以 Avro 或 CSV 的形式获取数据,具体取决于您在 SelectHiveQL 中设置为输出格式属性的内容。

话虽如此,您的CDH至少需要1.2.1的Hive版本,我已经看到了很多关于CDH具有Hive 1.1.x的兼容性的问题,而NiFi不支持Hive处理器。为此,您需要像Simba JDBC驱动程序(不是Apache Hive JDBC驱动程序,它没有实现所有必要的JDBC方法(,并且您可以将ExecuteSQL和其他SQL处理器与JDBC驱动程序一起使用。

最新更新