使用PXF访问Azure, Google Cloud Storage, Minio和S3对象存储

PXF安装了Azure Blob Storage, Azure Data Lake, Google Cloud Storage, Minio和S3对象存储的连接器

先决条件

在使用PXF处理对象存储数据之前,请确保:

连接器、数据格式和配置文件

PXF对象存储连接器提供内置配置文件支持以下数据格式:

  • Text
  • Avro
  • JSON
  • Parquet
  • AvroSequenceFile
  • SequenceFile

与Azure、Google Cloud Storage、Minio和S3的PXF连接器提供了以下配置文件以读取、写入(在许多情况下)这些受支持的数据格式:

数据格式 Azure Blob Storage Azure Data Lake Google Cloud Storage S3 或 Minio
分隔的单行纯文本 wasbs:text adl:text gs:text s3:text
分隔的带引号的换行符文本 wasbs:text:multi adl:text:multi gs:text:multi s3:text:multi
Avro wasbs:avro adl:avro gs:avro s3:avro
JSON wasbs:json adl:json gs:json s3:json
Parquet wasbs:parquet adl:parquet gs:parquet s3:parquet
AvroSequenceFile wasbs:AvroSequenceFile adl:AvroSequenceFile gs:AvroSequenceFile s3:AvroSequenceFile
SequenceFile wasbs:SequenceFile adl:SequenceFile gs:SequenceFile s3:SequenceFile

CREATE EXTERNAL TABLE 命令中指定 pxf 协议以创建引用特定对象存储中的文件或目录的Greenplum数据库外部表时,可以提供配置文件名称。

示例CREATE EXTERNAL TABLE命令

以下命令创建了一个引用S3上的文本文件的外部表。指定名为 s3:text 的配置文件和名为 s3srvcfg 的服务配置:

CREATE EXTERNAL TABLE pxf_s3_text(location text, month text, num_orders int, total_sales float8)
  LOCATION ('pxf://S3_BUCKET/pxf_examples/pxf_s3_simple.txt?PROFILE=s3:text&SERVER=s3srvcfg')
FORMAT 'TEXT' (delimiter=E',');

以下命令创建了一个引用Azure Blob Storage上文本文件的外部表。 指定名为 wasbs:text 的配置文件和名为 wasbssrvcfg 的服务配置。 您将提供Azure Blob Storage 容器标识和您的 Azure Blob Storage 账户。

CREATE EXTERNAL TABLE pxf_wasbs_text(location text, month text, num_orders int, total_sales float8)
  LOCATION ('pxf://AZURE_CONTAINER@YOUR_AZURE_BLOB_STORAGE_ACCOUNT_NAME.blob.core.windows.net/path/to/blob/file?PROFILE=wasbs:text&SERVER=wasbssrvcfg')
FORMAT 'TEXT';

以下命令创建了一个引用Azure Data Lake上文本文件的外部表。 指定名为 adl:text 的配置文件和名为 adlsrvcfg 的服务配置。 您将提供您的Azure Data Lake 账户。

CREATE EXTERNAL TABLE pxf_adl_text(location text, month text, num_orders int, total_sales float8)
  LOCATION ('pxf://YOUR_ADL_ACCOUNT_NAME.azuredatalakestore.net/path/to/file?PROFILE=adl:text&SERVER=adlsrvcfg')
FORMAT 'TEXT';

以下命令创建了一个引用Google Cloud Storage上JSON文件的外部表。 指定名为 gs:json 的配置文件和名为 gcssrvcfg 的服务配置:

CREATE EXTERNAL TABLE pxf_gsc_json(location text, month text, num_orders int, total_sales float8)
  LOCATION ('pxf://dir/subdir/file.json?PROFILE=gs:json&SERVER=gcssrvcfg')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import');