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:parquet
和s3:text
配置文件的PXF S3连接器
Note: 如果无法成功序列化查询过滤条件,PXF可能会禁用列投影; 例如,当WHERE子句解析为布尔类型时。
总而言之,必须满足以下所有条件才能进行列投影:
- 外部数据源必须支持列投影。例如,Hive支持ORC格式数据的列投影,某些SQL数据库支持列投影。
- 底层PXF连接器和配置文件实现必须支持列投影。例如,上面标识的PXF Hive和JDBC连接器配置文件支持列投影,支持读取Parquet数据的PXF连接器也支持列投影。
- PXF必须能够序列化查询过滤条件