您可以使用PXF访问Azure Data Lake,Azure Blob存储和Google Cloud Storage对象存储。这个章节主要描述如何配置PXF连接器访问这个外部数据源。

如果您不打算使用PXF对象存储连接器,则不需要执行此过程。

对象存储配置

要访问对象存储中的数据,必须提供服务器位置和客户端凭据。配置PXF对象库连接器时,请为连接器添加至少一个名为PXF服务器的配置,如配置PXF服务器中所述。

PXF为每个对象存储连接器提供了一个模板配置文件。 这些模板文件位于$PXF_CONF/templates/目录中。

Azure Blob存储服务配置

Azure Blob存储服务的默认配置文件是$PXF_CONF/templates/wasbs-site.xml。如果你想要配置Azure Blob存储服务,你需要提供如下的配置项并且替换模板中的值。

PropertyDescriptionValue
fs.adl.oauth2.access.token.provider.type令牌类型必须指定ClientCredential.
fs.azure.account.key.<YOUR_AZURE_BLOB_STORAGE_ACCOUNT_NAME>.blob.core.windows.netAzure帐户密钥用你的账户秘钥替换
fs.AbstractFileSystem.wasbs.impl文件系统类名称必须指定org.apache.hadoop.fs.azure.Wasbs

Azure数据湖服务配置

Azure数据湖服务默认模板文件是$PXF_CONF/templates/adl-site.xml,当你配置Azure数据湖服务时需要配置如下的配置项并替换模板中的值:

PropertyDescriptionValue
fs.adl.oauth2.access.token.provider.type令牌类型必须指定ClientCredential.
fs.adl.oauth2.refresh.url要连接的Azure结束位置Your refresh URL.
fs.adl.oauth2.client.idAzure账户的客户端IDYour client ID (UUID).
fs.adl.oauth2.credentialAzure账户的客户端ID的密码Your password.

Google Cloud Storage服务配置

Google Cloud Storage服务默认配置模板文件是$PXF_CONF/templates/gs-site.xml,当你配置Google Cloud Storage服务的时候需要修改如下的配置项和值:

PropertyDescriptionValue
google.cloud.auth.service.account.enable启用服务帐户授权Must specify true.
google.cloud.auth.service.account.json.keyfileGoogle Storage的秘钥文件Path to your key file.
fs.AbstractFileSystem.gs.impl文件系统类名称Must specify com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS.

示例服务器配置过程

在配置对象存储连接器服务器之前,请确保已初始化PXF。

在此过程中,您需要在Greenplum数据库master主机上的$PXF_CONF/servers目录中为Google Cloud Storate(GCS)连接器命名并添加PXF服务器配置。 然后,您可以使用pxf cluster sync命令将服务器配置同步到Greenplum数据库集群。

  1. 登录到GPDB master主机

    1. $ ssh gpadmin@<gpmaster>
  2. 选择服务器的名称。 您将为需要引用对象存储中文件的最终用户提供名称。

  3. 创建$PXF_HOME/servers/<server_name>目录。 例如,使用以下命令为名为gs_public的Google Cloud Storage服务器创建服务器配置:

    1. gpadmin@gpmaster$ mkdir $PXF_CONF/servers/gs_public
  4. 将GCS的PXF模板文件复制到服务器配置目录。 例如:

    1. gpadmin@gpmaster$ cp $PXF_CONF/templates/gs-site.xml $PXF_CONF/servers/gs_public/
  5. 在您选择的编辑器中打开模板服务器配置文件,并为您的环境提供适当的属性值。 例如,如果您的Google Cloud Storage密钥文件位于/home/gpadmin/keys/gcs-account.key.json中:

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <configuration>
    3. <property>
    4. <name>google.cloud.auth.service.account.enable</name>
    5. <value>true</value>
    6. </property>
    7. <property>
    8. <name>google.cloud.auth.service.account.json.keyfile</name>
    9. <value>/home/gpadmin/keys/gcs-account.key.json</value>
    10. </property>
    11. <property>
    12. <name>fs.AbstractFileSystem.gs.impl</name>
    13. <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS</value>
    14. </property>
    15. </configuration>
  6. 保存更改并退出编辑器。

  7. 使用pxf cluster sync命令将新的服务器配置复制到Greenplum数据库集群。 例如:

    1. gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync