我有一个用例,其中我必须将数据从内部CDH集群移至AWS EMR集群。 我正在考虑在AWS EC2实例上设置NiFi,以将数据从内部集群移至AWS s3存储。
我在CDH群集上的所有表都以镶木地板格式存储。
问题1: 我们在NiFi中提供支持,允许以实木复合地板格式读取桌子吗?
OR
我唯一的选择是直接从hdfs目录中读取数据并将其放在s3上,然后在EMR中创建配置单元表?
问题2:Nifi如何确定插入表中的新数据并读取新数据。在我的情况下,所有表都按yyyymm分区。
答案 0 :(得分:3)
如果使用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驱动程序一起使用。