PXF支持谓词下推。启用谓词下推时,可以提取SELECT查询中WHERE子句的约束并将其传递到外部数据源进行过滤。此过程可以提高查询性能,还可以减少传输到Greenplum数据库的数据量。

    通过设置gp_external_enable_filter_pushdown服务器配置参数,可以为所有外部表协议(包括pxf)启用或禁用谓词下推。此配置参数的默认值为on;将其设置为关闭以禁用谓词下推。例如:

    1. SHOW gp_external_enable_filter_pushdown;
    2. SET gp_external_enable_filter_pushdown TO 'on';

    Note: 某些外部数据源不支持谓词下推。此外,某些数据类型或运算符可能不支持谓词下推。如果查询访问不支持谓词下推的数据源,则执行查询时不进行谓词下推(数据传输到Greenplum数据库后进行过滤)

    PXF使用不同的连接器访问数据源,谓词下推支持由特定的连接器实现方式决定。以下PXF连接器支持谓词下推:

    • Hive Connector, all profiles
    • HBase Connector
    • JDBC Connector
    • S3 Connector using the Amazon S3 Select service to access CSV and Parquet data

    PXF谓词下推可与这些数据类型一起使用(特定连接器):

    • INT2, INT4, INT8
    • CHAR, TEXT
    • FLOAT
    • NUMERIC (使用S3 Select时,不适用于S3连接器)
    • BOOL
    • DATE, TIMESTAMP (使用S3 Select时仅适用于JDBC连接器和S3连接器)

    您可以通过以下运算符使用PXF过滤器下推功能:

    • <, <=, >=, >
    • <>, =
    • AND, OR, NOT
    • 数组INTTEXT的运算符IN (仅JDBC连接器)
    • LIKE (TEXT字段,仅JDBC连接器)

    总而言之,必须满足以下所有条件才能进行谓词下推:

    • gp_external_enable_filter_pushdown服务配置参数设置为'on'来启用外部表谓词下推
    • 访问外部数据源的Greenplum数据库协议必须支持谓词下推.PXF外部表协议支持下推
    • 访问的外部数据源必须支持下推。 例如,HBase和Hive支持下推
    • 使用pxf协议创建的外部表查询,基础PXF连接器还必须支持谓词下推。例如,PXF Hive,HBase和JDBC连接器支持下推。