配置Azure和Google Cloud Storage对象存储的连接器(可选)

您可以使用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存储服务,你需要提供如下的配置项并且替换模板中的值。

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

Azure数据湖服务配置

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

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

Google Cloud Storage服务配置

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

Property Description Value
google.cloud.auth.service.account.enable 启用服务帐户授权 Must specify true.
google.cloud.auth.service.account.json.keyfile Google 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主机

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

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

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

    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中:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <property>
            <name>google.cloud.auth.service.account.enable</name>
            <value>true</value>
        </property>
        <property>
            <name>google.cloud.auth.service.account.json.keyfile</name>
            <value>/home/gpadmin/keys/gcs-account.key.json</value>
        </property>
        <property>
            <name>fs.AbstractFileSystem.gs.impl</name>
            <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS</value>
        </property>
    </configuration>
    
  6. 保存更改并退出编辑器。

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

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