Apache nifi NiFi-SelectHiveQL能否以拼花格式从CDH集群上的表中读取数据?
我有一个用例,我必须将数据从内部CDH集群移动到AWS EMR集群。 我正在考虑在AWS EC2实例上设置NiFi,以便将数据从内部集群移动到AWS s3存储 CDH集群上的我的所有表格都以拼花地板格式存储 问题1: 我们在NiFi中是否支持读取拼花地板格式的表格 或 我唯一的选择是直接从hdfs目录中读取数据并将其放在s3上,然后在EMR中创建配置单元表Apache nifi NiFi-SelectHiveQL能否以拼花格式从CDH集群上的表中读取数据?,apache-nifi,parquet,cloudera-cdh,Apache Nifi,Parquet,Cloudera Cdh,我有一个用例,我必须将数据从内部CDH集群移动到AWS EMR集群。 我正在考虑在AWS EC2实例上设置NiFi,以便将数据从内部集群移动到AWS s3存储 CDH集群上的我的所有表格都以拼花地板格式存储 问题1: 我们在NiFi中是否支持读取拼花地板格式的表格 或 我唯一的选择是直接从hdfs目录中读取数据并将其放在s3上,然后在EMR中创建配置单元表 问题2:Nifi如何确定插入表中的新数据并读取新数据。在我的例子中,所有表都是按yyyymm进行分区的。如果使用SelectHiveQL,它
问题2:Nifi如何确定插入表中的新数据并读取新数据。在我的例子中,所有表都是按yyyymm进行分区的。如果使用SelectHiveQL,它可以读取Hive可以读取的任何内容,包括拼花地板,所有转换工作都在Hive中完成,并通过JDBC驱动程序作为结果集返回,因此您将根据您在SelectHiveQL中设置的输出格式属性将数据输出为Avro或CSV
话虽如此,您的CDH将需要至少1.2.1的配置单元版本,我已经看到了很多关于CDH配置单元1.1.x兼容性的问题,NiFi不支持配置单元处理器。为此,您需要Simba JDBC驱动程序而不是Apache Hive JDBC驱动程序,它没有实现所有必要的JDBC方法,您可以将ExecuteSQL和其他SQL处理器与JDBC驱动程序一起使用。如果您使用SelectHiveQL,它可以读取Hive可以读取的任何内容,包括拼花,所有转换工作都在配置单元中完成,并通过JDBC驱动程序作为结果集返回,因此您将根据在SelectHiveQL中设置为输出格式属性的内容以Avro或CSV的形式输出数据
话虽如此,您的CDH将需要至少1.2.1的配置单元版本,我已经看到了很多关于CDH配置单元1.1.x兼容性的问题,NiFi不支持配置单元处理器。为此,您需要Simba JDBC驱动程序,而不是Apache Hive JDBC驱动程序,它没有实现所有必要的JDBC方法,您可以将ExecuteSQL和其他SQL处理器与JDBC驱动程序一起使用。感谢您的澄清。如果我的查询类似于从表中选择*,我是否应该假设每次NiFi运行时都会得到该表的完整快照?或者它维护某种检查点,只加载新数据??是的,它一直运行相同的查询。如果您使用的是JDBC驱动程序,而不是配置单元处理器,则可以使用QueryDatabaseTable或GenerateTableFetch进行增量抓取,即仅加载新数据。感谢您的说明。如果我的查询类似于从表中选择*,我是否应该假设每次NiFi运行时都会得到该表的完整快照?或者它维护某种检查点,只加载新数据??是的,它一直运行相同的查询。如果您使用的是JDBC驱动程序而不是配置单元处理器,则可以使用QueryDatabaseTable或GenerateTableFetch进行增量抓取,即仅加载新数据。