使用PXF访问Azure, Google Cloud Storage, Minio和S3对象存储
PXF安装了Azure Blob Storage, Azure Data Lake, Google Cloud Storage, Minio和S3对象存储的连接器
先决条件
在使用PXF处理对象存储数据之前,请确保:
- 您已经配置并初始化了PXF,并且PXF正在每台主机上运行。有关其他信息,请参阅配置PXF
- 您已经配置了计划使用的PXF对象存储连接器。有关说明,请参阅配置Azure、Google云端存储、Minio和S3对象存储的连接器。
- Greenplum数据库segment主机与外部对象存储系统之间的时间是同步的。
连接器、数据格式和配置文件
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');