PXF列投影

PXF支持列投影,始终是启用状态。使用列投影时,只从外部数据源返回外部表上的SELECT查询所需的列。此过程可以提高查询性能,还可以减少传输到Greenplum数据库的数据量。

Note: 某些外部数据源不支持列投影。 如果查询访问不支持列投影的数据源,则在没有列投影的情况下执行查询,并且在将数据传输到Greenplum数据库之后对数据进行过滤。

pxf外部表协议自动启用列投影。PXF使用不同的连接器访问外部数据源,列投影支持也由特定的连接器实现决定。 以下PXF连接器和配置文件组合支持读取操作的列投影: - PXF Hive Connector, HiveORC profile - PXF JDBC Connector, Jdbc profile - PXF Hadoop 和 Object Store Connectors, hdfs:parquet, adl:parquet, gs:parquet,s3:parquet, 和 wasbs:parquet profiles - 使用Amazon S3 Select服务,s3:parquets3:text配置文件的PXF S3连接器

Note: 如果无法成功序列化查询过滤条件,PXF可能会禁用列投影; 例如,当WHERE子句解析为布尔类型时。

总而言之,必须满足以下所有条件才能进行列投影:

  • 外部数据源必须支持列投影。例如,Hive支持ORC格式数据的列投影,某些SQL数据库支持列投影。
  • 底层PXF连接器和配置文件实现必须支持列投影。例如,上面标识的PXF Hive和JDBC连接器配置文件支持列投影,支持读取Parquet数据的PXF连接器也支持列投影。
  • PXF必须能够序列化查询过滤条件