NiFi - SelectHiveQL 能否以 parquet 格式从 CDH 集群上的 table 读取数据?

Can NiFi - SelectHiveQL reads the data from a table on CDH cluster in parquet format?

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

我在 CDH 集群上的所有 table 都以 parquet 格式存储。

问题#1: 我们在 NiFi 中是否支持允许读取镶木地板格式的 tables??

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

问题#2:Nifi如何判断插入table的新数据并读取新数据。在我的例子中,所有 table 都按 yyyymm 分区。

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

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