使用 Azure 数据工厂或 Synapse Analytics 从 Greenplum 复制数据

适用于:Azure 数据工厂 Azure Synapse Analytics

本文概述如何使用 Azure 数据工厂或 Synapse Analytics 管道中的复制活动从 Greenplum 复制数据。 它是基于概述复制活动总体的复制活动概述一文。

支持的功能

以下功能支持此 Greenplum 连接器:

支持的功能 红外线
复制活动(源/-) (1) (2)
Lookup 活动 (1) (2)

① Azure 集成运行时 ② 自承载集成运行时

有关复制活动支持作为源/接收器的数据存储列表,请参阅支持的数据存储表。

该服务提供内置的驱动程序用于启用连接,因此使用此连接器无需手动安装任何驱动程序。

先决条件

如果数据存储位于本地网络、Azure 虚拟网络或 Amazon Virtual Private Cloud 内部,则需要配置自承载集成运行时才能连接到该数据存储。

如果数据存储是托管的云数据服务,则可以使用 Azure Integration Runtime。 如果访问范围限制为防火墙规则中允许的 IP,你可以选择将 Azure Integration Runtime IP 添加到允许列表。

此外,还可以使用 Azure 数据工厂中的托管虚拟网络集成运行时功能访问本地网络,而无需安装和配置自承载集成运行时。

要详细了解网络安全机制和数据工厂支持的选项,请参阅数据访问策略

入门

若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:

使用 UI 创建一个到 Greenplum 的链接服务

使用以下步骤在 Azure 门户 UI 中创建一个到 Greenplum 的链接服务。

  1. 浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:

  2. 搜索 Greenplum 并选择 Greenplum 连接器。

    Greenplum 连接器的屏幕截图。

  3. 配置服务详细信息、测试连接并创建新的链接服务。

    Greenplum 的链接服务配置的屏幕截图。

连接器配置详细信息

对于特定于 Greenplum 连接器的数据工厂实体,以下部分提供有关用于定义这些实体的属性的详细信息。

链接服务属性

Greenplum 连接器现在支持版本 2.0。 请参阅此 部分 ,以将 Greenplum 连接器从版本 1.0 升级至新版本。 关于属性详情,请参阅对应部分。

版本 2.0

应用版本 2.0 时,Greenplum 链接服务支持以下属性:

属性 描述 必需
类型 type 属性必须设置为:Greenplum
版本 指定的版本。 该值为 2.0
主机 指定运行数据库的主机名和端口(可选)。
港口 数据库服务器的 TCP 端口。 默认值是 5432
数据库 要连接到的数据库。
用户名 要连接的用户名。 如果使用 IntegratedSecurity,则不需要。
密码 要用于连接的密码。 如果使用 IntegratedSecurity,则不需要。 将此字段标记为 SecureString 以安全存储它。 或者,可以引用 Azure Key Vault 中存储的机密
SSL模式 控制是否使用 SSL,具体取决于服务器支持。
- 禁用:已禁用 SSL。 如果服务器需要 SSL,则连接将失败。
- 允许:如果服务器允许非 SSL 连接,则首选非 SSL 连接,但允许 SSL 连接。
- 首选:如果服务器允许 SSL 连接,则首选 SSL 连接,但允许不使用 SSL 的连接。
- 要求:如果服务器不支持 SSL,则连接会失败。
- Verify-ca:如果服务器不支持 SSL,则连接失败。 同时验证服务器证书。
- Verify-full:如果服务器不支持 SSL,则连接失败。 同时使用主机名验证服务器证书。
选项:禁用 (0) / 允许 (1) / 首选 (2) / 需要 (3) (默认) / Verify-ca (4) / 验证完整 (5)
验证类型 用于连接到数据库的身份验证类型。 仅支持“基本”
connectVia 用于连接到数据存储的集成运行时。 在先决条件部分了解更多信息。 如果未指定,则使用默认 Azure Integration Runtime。
其他连接属性:
connectionTimeout 等待的时间(以秒为单位),这是在尝试建立连接时,终止尝试并生成错误之前的时间。 默认值是 15
commandTimeout 尝试执行命令之前等待的时间(以秒为单位),如果超过这个时间,将终止尝试并产生错误。 对于无穷大,设置为零。 默认值是 30

示例:

{
    "name": "GreenplumLinkedService",
    "properties": {
        "type": "Greenplum",
        "version": "2.0",
        "typeProperties": {
            "host": "<host>",
            "port": 5432,
            "database": "<database>",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "sslMode": <sslmode>,
            "authenticationType": "Basic"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

示例:在 Azure 密钥保管库中存储密码

{
    "name": "GreenplumLinkedService",
    "properties": {
        "type": "Greenplum",
        "version": "2.0",
        "typeProperties": {
            "host": "<host>",
            "port": 5432,
            "database": "<database>",
            "username": "<username>",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            },
            "sslMode": <sslmode>,
            "authenticationType": "Basic"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

版本 1.0

应用版本 1.0 时,Greenplum 链接服务支持以下属性:

属性 描述 必需
类型 type 属性必须设置为:Greenplum
connectionString 用于连接到 Greenplum 的 ODBC 连接字符串。
还可以将密码放在 Azure 密钥保管库中,并从连接字符串中拉取 pwd 配置。 有关更多详细信息,请参阅以下示例和在 Azure 密钥保管库中存储凭据一文。
connectVia 用于连接到数据存储的集成运行时。 在先决条件部分了解更多信息。 如果未指定,则使用默认 Azure Integration Runtime。

示例:

{
    "name": "GreenplumLinkedService",
    "properties": {
        "type": "Greenplum",
        "typeProperties": {
            "connectionString": "HOST=<server>;PORT=<port>;DB=<database>;UID=<user name>;PWD=<password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

示例:在 Azure 密钥保管库中存储密码

{
    "name": "GreenplumLinkedService",
    "properties": {
        "type": "Greenplum",
        "typeProperties": {
            "connectionString": "HOST=<server>;PORT=<port>;DB=<database>;UID=<user name>;",
            "pwd": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

数据集属性

有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 Greenplum 数据集支持的属性列表。

要从 Greenplum 复制数据,请将数据集的 type 属性设置为 GreenplumTable。 支持以下属性:

属性 描述 必需
类型 数据集的类型属性必须设置为:GreenplumTable
图式 架构的名称。 否(如果指定了活动源中的“query”)
表的名称。 否(如果指定了活动源中的“query”)
表名称 具有架构的表的名称。 支持此属性是为了向后兼容。 对于新的工作负荷,请使用 schematable 否(如果指定了活动源中的“query”)

示例

{
    "name": "GreenplumDataset",
    "properties": {
        "type": "GreenplumTable",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Greenplum linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

复制活动属性

有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 Greenplum 数据源支持的属性列表。

以 GreenplumSource 作为源

要从 Greenplum 复制数据,请将复制活动中的源类型设置为“GreenplumSource”。 复制活动source部分支持以下属性:

属性 描述 必需
类型 复制活动源的 type 属性必须设置为:GreenplumSource
查询 使用自定义 SQL 查询读取数据。 例如:"SELECT * FROM MyTable" 否(如果指定了数据集中的“tableName”)

示例:

"activities":[
    {
        "name": "CopyFromGreenplum",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Greenplum input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "GreenplumSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Greenplum 的数据类型映射

从 Greenplum 复制数据时,以下映射从 Greenplum 的数据类型应用到服务使用的内部数据类型。 若要了解复制活动如何将源架构和数据类型映射到接收器,请参阅架构和数据类型映射

Greenplum 数据类型 临时服务数据类型(适用于版本 2.0) 临时服务数据类型(适用于版本 1.0)
SmallInt Int16 Int16
整数 Int32 Int32
BigInt Int64 Int64
十进制 (精度 <= 28) 十进制 十进制
十进制 (精度 > 28) 十进制 字符串
数值 十进制 十进制
真正 单身 单身
加倍 加倍 加倍
SmallSerial Int16 Int16
串行 Int32 Int32
BigSerial Int64 Int64
金钱 十进制 字符串
字符串 字符串
Varchar 字符串 字符串
文本 字符串 字符串
Bytea Byte[] Byte[]
时间戳 日期时间 日期时间
具有时区的时间戳 日期时间偏移 (DateTimeOffset) 字符串
日期 日期 日期时间
时间 TimeSpan TimeSpan
带时区的时间 日期时间偏移 (DateTimeOffset) 字符串
时间间隔 TimeSpan 字符串
布尔型 布尔型 布尔型
字符串 字符串
线条 字符串 字符串
Iseg 字符串 字符串
字符串 字符串
路径 字符串 字符串
多边形 字符串 字符串
字符串 字符串
Cidr 字符串 字符串
Inet 字符串 字符串
Macaddr 字符串 字符串
Macaddr8 字符串 字符串
Tsvector 字符串 字符串
Tsquery 字符串 字符串
唯一通用识别码 (UUID) Guid Guid
Json 字符串 字符串
Jsonb 字符串 字符串
数组 字符串 字符串
Byte[] Byte[]
比特变化 Byte[] Byte[]
XML 字符串 字符串
IntArray 字符串 字符串
TextArray 字符串 字符串
NumericArray 字符串 字符串
DateArray 字符串 字符串
范围 字符串 字符串
Bpchar 字符串 字符串

查找活动属性

若要了解有关属性的详细信息,请查看 Lookup 活动

升级 Greenplum 连接器

下面是帮助你升级 Greenplum 连接器的步骤:

  1. “编辑链接服务 ”页中,选择版本 2.0,并通过引用 链接服务版本 2.0 属性配置链接服务

  2. Greenplum 链接服务版本 2.0 的数据类型映射不同于版本 1.0 的数据类型映射。 若要了解最新的数据类型映射,请参阅 Greenplum 的数据类型映射

Greenplum 版本 2.0 和版本 1.0 之间的差异

Greenplum 连接器版本 2.0 提供新功能,并与版本 1.0 的大多数功能兼容。 下表显示了版本 2.0 和版本 1.0 之间的功能差异。

版本 2.0 版本 1.0
以下映射用于将 Greenplum 数据类型转换为临时服务数据类型。

十进制(精确度 > 28) -> 十进制
货币 -> 小数
具有时区的时间戳 -> DateTimeOffset
带时区的时间 -> DateTimeOffset
间隔 -> 时间跨度
以下映射用于将 Greenplum 数据类型转换为临时服务数据类型。

十进制 (精度 > 28) -> 字符串
货币 -> 字符串
具有时区的时间戳 ->String
带时区的时间 -> 字符串
区间 -> 字符串

有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储