重要
Azure Database for PostgreSQL 版本 2.0 提供了更加优化的 Azure Database for PostgreSQL 原生支持。 如果在解决方案中使用 Azure Database for PostgreSQL 版本 1.0,应尽早升级 Azure Database for PostgreSQL 链接服务。
什么是 Azure 数据工厂
Azure 数据工厂 是一项完全托管的无服务器数据集成服务,旨在协调和实施复杂的混合提取-转换-加载 (ETL)、提取-加载-转换 (ELT) 以及数据集成项目。 Azure 集成运行时 支持使用可公开访问的终结点连接数据存储和计算服务。 如果启用 Azure 集成运行时的托管虚拟网络功能,则它支持在专用网络环境中使用 Azure 专用链接服务连接到数据存储。
Azure 数据工厂提供 Azure Database for PostgreSQL 连接器,支持 各种功能,具体取决于所选的集成运行时。
关联服务
在 Azure 数据工厂中, 链接服务 是与数据源的连接。 使用 Azure Database for PostgreSQL 时,可以使用 JSON 定义链接服务以编程方式指定连接详细信息。 此方法适用于自动化、版本控制和部署方案。 JSON 定义包括服务器名称、数据库名称、身份验证类型和其他连接参数等属性。 通过创建链接服务,可以轻松连接到 Azure Database for PostgreSQL 实例,并在 Azure 数据工厂中执行数据集成任务。
可以使用 Azure 数据工厂 UI 或通过 JSON 以编程方式创建链接服务。 通过链接服务,可以连接到 Azure Database for PostgreSQL 实例,并在 Azure 数据工厂中执行数据集成任务。
先决条件
- Azure Database for PostgreSQL 灵活服务器实例。 若要了解详细信息,请转到 创建 Azure Database for PostgreSQL。
- (可选)在 托管虚拟网络中创建的 Azure 集成运行时。
通过 Azure 门户创建链接服务
可以使用 Azure 数据工厂 UI 或通过 JSON 以编程方式创建链接服务。 通过链接服务,可以连接到 Azure Database for PostgreSQL 实例,并在 Azure 数据工厂中执行数据集成任务。
浏览到 Azure 数据工厂或 Synapse 工作区中的“ 管理 ”选项卡,然后选择 “链接服务”,然后选择“ 新建”:
- Azure 数据工厂
- Azure Synapse
在链接服务页中,通过选择“ + 新建”创建新的链接服务。 此时会打开一个窗口,其中包含所有 Azure 数据工厂连接器的列表。 搜索 Azure Database for PostgreSQL,将其选中,然后选择“ 继续”。
确保已选择 版本 2.0 。
身份验证
身份验证有四种受支持的方法:基本身份验证、服务主体、系统分配的托管标识和用户分配的托管标识。
基本身份验证
选择“基本身份验证”作为身份验证类型,并确保输入 Azure PostgreSQL 灵活服务器实例连接详细信息,包括服务器名称、用户名和密码。
在“帐户选择方法”中,请选择“从 Azure 订阅”或“手动输入”
输入用户名和密码。
现在可以 测试连接 并创建链接服务
服务主体身份验证
按照服务主体身份验证设置步骤,需要在 Azure 数据工厂或 Synapse Analytics 中设置链接服务以连接到 Azure Database for PostgreSQL。 此过程涉及选择适当的身份验证方法、配置连接详细信息和验证连接。 在继续作之前,请确保具备必要的先决条件和权限。
在身份验证类型上选择 “服务主体 ”。
有两种类型的服务主体凭据类型,两种服务主体方法都需要“租户”、“服务主体 ID”和“Azure 云类型”值。
在“帐户选择方法”中,请选择“从 Azure 订阅”或“手动输入”。
输入您的服务主体名称,该名称也显示为服务主体密钥的显示名称。
在“身份验证参考方法”中选择“内联”。
输入 租户。 租户 ID 位于 Azure 中,在其中创建了服务主体名称。
输入 服务主体 ID。 可以在 Azure 中找到创建服务主体名称的客户端 ID。
在服务主体凭据类型中选择服务主体证书或服务主体密钥。
选择 Azure 云类型。
现在可以 测试连接 并创建链接服务
系统分配的托管身份认证
使用系统分配的托管标识作为身份验证类型,在 Azure 数据工厂或 Synapse Analytics 中的链接服务连接到你的 Azure Database for PostgreSQL,需要进行以下步骤。 此过程涉及选择适当的身份验证方法、配置连接详细信息和验证连接。 在继续作之前,请确保具备必要的先决条件和权限。
在 Azure Database for PostgreSQL 资源中的“安全性”下
在 Azure 数据工厂资源中,
在 Azure Database for PostgreSQL 资源中的“安全性”下
在 Azure 数据工厂的链接服务中,选择 系统分配的托管标识 作为身份验证类型。
在“帐户选择方法”中,请选择“从 Azure 订阅”或“手动输入”。
现在可以 测试连接 并创建链接服务
用户分配的托管身份身份验证
在 Azure 数据工厂或 Synapse Analytics 的链接服务中,将身份验证类型设为用户分配的托管标识,以连接到 Azure Database for PostgreSQL,需要执行以下步骤。 此过程涉及选择适当的身份验证方法、配置连接详细信息和验证连接。 在继续作之前,请确保具备必要的先决条件和权限。
在 Azure 门户中创建 用户分配的托管标识 资源。 若要了解详细信息,请转到“管理用户分配的托管标识”
将用户分配的托管标识应用于 Azure Database for PostgreSQL 资源
将 用户分配的托管标识 分配给 Azure 数据工厂资源
在 Azure 数据工厂的链接服务中,选择 用户分配的托管标识 作为 身份验证类型
在“帐户选择方法”中,请选择“从 Azure 订阅”或“手动输入”。
在凭据上,或选择用户分配的托管标识凭据,或使用 + 新建创建新凭据
现在可以 测试连接 并创建链接服务
测试连接
填充所有必需的连接字段后,右下角应显示 “测试连接 ”按钮。 测试连接按钮验证链接服务是否可以连接到 Azure Database for PostgreSQL 服务器。
单击“ 创建 ”按钮
链接服务 JSON
下表描述了 Azure Database for PostgreSQL 的链接服务的属性。 这些属性以 JSON 格式定义,用于以编程方式创建链接服务。
| 资产 | DESCRIPTION | 必选 |
|---|---|---|
| 姓名 | 链接服务的名称。 请参阅 命名规则 | 是的 |
| 类型 | 链接服务的类型。 它应该是 AzurePostgreSql | 是的 |
| 服务器 | Azure PostgreSQL 数据库灵活服务器实例的完全限定的主机名 | 是的 |
| 移植 | Azure 数据库用于 PostgreSQL 的灵活服务器实例端口号 | 是的 |
| 数据库 | 数据库名称 | 是的 |
| SSL模式 | 表示 SSL 连接配置的数值。 0 代表禁用,1 代表允许,2 代表优先,3 代表要求,4 代表验证CA,5 代表完全验证 | 是的 |
| 验证类型 | 指定要使用的身份验证。 BasicAuth、 ServicePrincipal、 SystemAssignedManagedIdentity 或 UserAssignedManagedIdentity | 是的 |
| 凭据 | 将用户分配的托管标识指定为凭据对象。 | UserAssignedManagedIdentity 为必需。 否则不需要 |
| 用户名 | 用于服务主体身份验证的基本身份验证或服务主体名称的用户名 | 是的 |
| 密码 | 基本身份验证的用户名密码 | BasicAuth 时是必需的。 否则不需要 |
| 租户 | 租户 ID | ServicePrincipal 身份验证类型必需 |
| 服务主体ID | 服务主体 ID | ServicePrincipal 身份验证类型必需 |
| 服务主体凭据类型 | 服务主体类型。 ServicePrincipalCert 或 ServicePrincipalKey | 是的 |
| 服务主体嵌入证书 (servicePrincipalEmbeddedCert) | 服务主体证书 | ServicePrincipalCert 时是必需的。 否则不需要 |
| 服务主体嵌入式证书密码 | 服务主体证书密码 | 否 |
| servicePrincipalKey 主要密钥 | 服务主体密钥 | 如果 ServicePrincipalKey 是 servicePrincipalCredentialType,则是必需的。 否则不需要 |
根据身份验证类型,不同的字段需要不同的 JSON 有效负载。
下面是不同身份验证方法的 JSON 配置示例,包括基本身份验证、服务主体证书和服务主体密钥。 可以自定义这些 JSON 模板,以满足特定要求。
使用 BasicAuth 的链接服务以 JSON 格式定义,如下所示:
{
"name": "<Name of the linked service>",
"properties": {
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server host name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"username": "<Service Principal Name>",
"authenticationType": "BasicAuth",
"password": "<username password>"
}
}
}
使用 服务主体证书 的链接服务以 JSON 格式定义,如下所示:
{
"name": "<Name of the linked service>",
"properties": {
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server host name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"username": "<Service Principal Name>",
"authenticationType": "ServicePrincipal",
"tenant": "<Tenant ID>",
"servicePrincipalId": "<SP ID>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalEmbeddedCert": "<Embedded certificate>",
"servicePrincipalEmbeddedCertPassword": "<Service Principal certificate password>"
}
}
}
使用 服务主体密钥 的链接服务以 JSON 格式定义,如下所示:
{
"name": "<Name of the linked service>",
"properties": {
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server host name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"username": "<Service Principal Name>",
"authenticationType": "ServicePrincipal",
"tenant": "<Tenant ID>",
"servicePrincipalId": "<SP ID>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalKey": "<Service Principal Key>"
}
}
}
系统分配的托管标识示例:
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"authenticationType": "SystemAssignedManagedIdentity"
}
}
}
使用用户分配的托管标识的示例:
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"authenticationType": "UserAssignedManagedIdentity",
"credential": {
"referenceName": "<your credential>",
"type": "CredentialReference"
}
}
}
}
通过 API 创建链接服务
在 Azure 数据工厂门户中通过管理中心以及引用链接服务的任何活动、数据集或数据流创建链接服务。
可以使用以下工具之一创建链接服务: .NET API、 PowerShell、 REST API、 Azure 资源管理器模板和 Azure 门户。
创建链接服务时,用户需要对指定服务进行适当的授权。 如果未授予足够的访问权限,则用户看不到可用的资源,并且必须使用手动输入选项。
活动
活动是管道中可以执行特定任务的任务。 使用脚本活动,用户可以运行 PostgreSQL 脚本来查询或修改其数据库。
查找活动: 控制流查找活动。