Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache nifi NiFi-SelectHiveQL能否以拼花格式从CDH集群上的表中读取数据?_Apache Nifi_Parquet_Cloudera Cdh - Fatal编程技术网

Apache nifi NiFi-SelectHiveQL能否以拼花格式从CDH集群上的表中读取数据?

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,它

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

CDH集群上的我的所有表格都以拼花地板格式存储

问题1: 我们在NiFi中是否支持读取拼花地板格式的表格

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


问题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进行增量抓取,即仅加载新数据。