创建AnalyticDB for PostgreSQL数据源

若您要使用DataWorks进行AnalyticDB for PostgreSQL任务的开发、管理,需先将您的AnalyticDB for PostgreSQL实例创建为DataWorks的AnalyticDB for PostgreSQL数据源。创建完成后,可在DataWorks的各功能模块使用该数据源连接AnalyticDB for PostgreSQL实例,进行相应的数据同步、数据开发、数据分析等操作。

前提条件

  • 已购买AnalyticDB for PostgreSQL实例并创建数据库,详情请参见创建实例数据库管理

    说明

    建议购买AnalyticDB for PostgreSQL实例时,地域与创建AnalyticDB for PostgreSQL数据源的DataWorks工作空间地域一致。若地域不一致,则只能创建为跨地域的数据源,此类数据源无法在DataWorks的数据开发(DataStudio)模块绑定,即无法用于数据开发或周期性调度任务,仅可进行数据同步任务。

  • 已购买所需的DataWorks资源组并完成资源组配置。

    AnalyticDB for PostgreSQL实例支持Serverless资源组(推荐)旧版独享资源组(独享数据集成资源组、独享调度资源组、独享数据服务资源组)。AnalyticDB for PostgreSQL数据源创建完成后,可用于进行数据同步、计算任务开发与调度、生成API提供数据服务等应用场景。

    说明

    您需根据应用场景提前准备对应的资源组并完成配置,在创建AnalyticDB for PostgreSQL数据源时确保与对应资源组间网络连通。资源组的介绍与配置引导,请参见DataWorks资源组概述

  • 已创建或加入目标工作空间。

    您需在目标工作空间中,将AnalyticDB for PostgreSQL实例创建为该工作空间的数据源,用于后续在该工作空间进行开发操作。同时,需将购买的DataWorks资源组绑定至该工作空间,确保数据源与资源组网络连通。创建工作空间,详情请参见创建并管理工作空间

    说明

    同一个AnalyticDB for PostgreSQL实例可在多个DataWorks工作空间中被创建为数据源。

使用限制

  • 仅当AnalyticDB for PostgreSQL实例和DataWorks工作空间属于同地域、同一阿里云账号时,基于该实例创建的数据源才可在DataWorks的数据开发(DataStudio)模块绑定,即此类数据源才可用于数据开发或周期性调度任务。

  • 支持跨账号创建数据源,即支持将其他阿里云账号下的AnalyticDB for PostgreSQL实例创建为数据源,但数据源创建完成后仅支持通过RAM角色访问对应实例,并且该类数据源不能用于数据开发或周期性调度任务。

  • 使用连接串模式创建的数据源不支持用于数据开发或周期性调度任务,只能用于数据同步。详情请参见创建数据源

  • 仅支持使用Serverless资源组(推荐)旧版独享数据集成、调度资源组运行AnalyticDB for PostgreSQL任务。

  • 基于AnalyticDB for PostgreSQL数据源创建数据服务API,推荐使用Serverless资源组

操作前准备:权限说明与配置

  • 使用RAM用户(即子账号)或RAM角色创建数据源,需拥有如下任意权限:

  • 若执行跨账号场景创建数据源,则还需执行如下权限配置。

    跨阿里云账号创建AnalyticDB for PostgreSQL数据源时,仅支持通过RAM角色访问对应AnalyticDB for PostgreSQL实例,且需对RAM角色配置相应权限策略。

    场景示例

    本文以“账号A通过创建AnalyticDB for PostgreSQL数据源访问账号B的AnalyticDB for PostgreSQL实例”场景为例进行说明。

    • 主账号A:已开通DataWorks,需访问主账号B的AnalyticDB for PostgreSQL。

    • 主账号B:已开通AnalyticDB for PostgreSQL实例并创建相应数据库。同时,已创建RAM角色并授权账号A可通过该角色访问账号B的相关服务。

    完成上述操作后,账号A可参考本文创建AnalyticDB for PostgreSQL数据源,实现跨账号访问账号B的AnalyticDB for PostgreSQL实例。

    RAM角色要求及权限配置

    账号B的RAM角色要求及权限配置,具体如下:

    1. 账号B需创建一个RAM角色并授权该角色可访问指定AnalyticDB for PostgreSQL实例。同时,RAM角色需添加账号A为信任的云账号,即允许账号A使用此RAM角色。详情请参见创建RAM角色创建自定义权限策略

    2. 修改RAM角色的权限策略,授权给账号A,后续账号A可使用该角色访问AnalyticDB for PostgreSQL。详情请参见修改RAM角色的信任策略。策略内容如下。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "sts:AssumeRole",
                      "gpdb:DescribeDBInstanceAttribute",
                      "gpdb:DescribeDBInstances",
                      "gpdb:DescribeResourceUsage",
                      "gpdb:DescribeDBInstanceIPArrayList",
                      "gpdb:DescribeDBClusterIPArrayList",
                      "gpdb:DescribeDBInstancePerformance",
                      "gpdb:DescribeDBInstanceNetInfo",
                      "gpdb:DescribeRegions",
                      "gpdb:ModifySecurityIps"
                  ],
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "账号A的阿里云账号ID@engine.dataworks.aliyuncs.com"
                      ]
                  }
              }
          ]
      }

数据源创建入口

  1. 进入数据源页面。

    1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心

    2. 进入工作空间管理中心页面后,单击左侧导航栏的数据源 > 数据源列表,进入数据源页面。

  2. 单击新增数据源,选择AnalyticDB for PostgreSQL,根据界面指引创建数据源。

    您也可进入数据集成界面创建,但该页面仅支持创建生产数据源,且创建完成后需在管理中心 > 数据源进行管理。数据集成页面支持创建的数据源类型,具体请以实际界面为准。

创建数据源

DataWorks支持通过如下两种方式创建数据源。

说明

标准模式工作空间,需分别创建开发环境数据源和生产环境数据源。工作空间模式介绍,详情请参见必读:简单模式和标准模式的区别

方式一:通过阿里云实例模式创建数据源

  1. 配置基础信息。image.png

    参数

    说明

    数据源名称

    定义数据源在DataWorks的名称,名称必须唯一。

    配置模式

    选择阿里云实例模式。

    所属云账号

    定义创建数据源所使用的AnalyticDB for PostgreSQL实例属于当前阿里云主账号还是其他阿里云主账号。

    • 当前阿里云主账号:添加当前阿里云主账号下的AnalyticDB for PostgreSQL实例作为当前工作空间的数据源。

    • 其他阿里云主账号:添加其他阿里云主账号下的AnalyticDB for PostgreSQL实例作为当前工作空间的数据源。

      说明

      此方式即可实现跨账号创建数据源,数据源创建完成后仅支持通过RAM角色访问;且不支持在数据开发(DataStudio)绑定,即此类数据源不能用于数据开发或周期性调度任务,仅可用于数据集成模块进行数据同步。

    请根据选择的账号类型,参照下文进行AnalyticDB for PostgreSQL实例及访问身份配置

    地域

    AnalyticDB for PostgreSQL实例所在地域。

    说明

    若选择的地域与当前工作空间地域不一致,则创建数据源后,该数据源不支持在数据开发(DataStudio)绑定,即此类数据源不能用于数据开发或周期性调度任务,仅可用于数据集成模块进行数据同步。

    AnalyticDB for PostgreSQL实例及访问身份配置

    所属云账号不同时,AnalyticDB for PostgreSQL实例及访问身份的配置参数不同。

    所属云账号:当前阿里云主账号

    • 实例:选择需将指定地域下哪一个AnalyticDB for PostgreSQL实例创建为当前工作空间的数据源。

    • 数据库名称、用户名、密码:选择访问目标实例的哪个数据库,并输入访问该数据库的密钥信息。您可登录云原生数据仓库AnalyticDB for PostgreSQL控制台,查看数据库信息。

    所属云账号:其他阿里云主账号

    • 对方阿里云主账号UID、对方实例ID、对方RAM角色:填写跨账号的阿里云账号UID、实例ID和RAM用户角色。该实例将被创建为数据源,且后续使用此阿里云账号下的RAM角色访问该实例。

      说明

      跨账号创建数据源,需拥有的RAM角色权限请参见操作前准备:权限说明与配置

    • 对方数据库名称、用户名、密码:选择访问目标实例的哪个数据库,并输入访问该数据库的密钥信息。您可登录云原生数据仓库AnalyticDB for PostgreSQL控制台,查看数据库信息。

    说明

    此方式即可实现跨账号创建数据源,数据源创建完成后仅支持通过RAM角色访问;且不支持在数据开发(DataStudio)绑定,即此类数据源不能用于数据开发或周期性调度任务,仅可用于数据集成模块进行数据同步。

  2. 测试资源组连通性。

    根据使用场景不同,资源组分为数据集成(用于数据同步)、数据开发(用于任务调度)、数据服务(用于数据服务任务)三种类型。资源组的详细介绍,请参见DataWorks资源组概述

    您需根据数据源后续的用途,在连接配置区域对应资源组类型后,测试所需资源组的连通性。若资源组与数据源无法连通,则相应数据源任务将无法正常执行。

方式二:通过连接串模式创建数据源

该方式仅支持使用当前阿里云账号创建数据源。

  1. 配置基础信息。image.png

    参数

    说明

    数据源名称

    定义数据源在DataWorks的名称,名称必须唯一。

    配置模式

    选择连接串模式。

    JDBC URL

    连接AnalyticDB for PostgreSQL实例的JDBC URL信息。您可登录云原生数据仓库AnalyticDB for PostgreSQL控制台,获取相关数据库及端口信息。

    用户名

    访问数据库的用户名。

    密码

    访问数据库的密码。

  2. 测试资源组连通性。

    根据使用场景不同,资源组分为数据集成(用于数据同步)、数据开发(用于任务调度)、数据服务(用于数据服务任务)三种类型。资源组的详细介绍,请参见DataWorks资源组概述

    您需根据数据源后续的用途,在连接配置区域对应资源组类型后,测试所需资源组的连通性。若资源组与数据源无法连通,则相应数据源任务将无法正常执行。

后续操作

数据源创建完成后,您可根据需要执行如下操作:

  • 计算任务开发与调度

    DataWorks的数据开发与运维中心模块,为您提供AnalyticDB for PostgreSQL任务的开发与调度能力,若您需要基于该AnalyticDB for PostgreSQL数据源进行AnalyticDB for PostgreSQL任务开发,或周期性调度AnalyticDB for PostgreSQL相关任务,需先进入数据开发(DataStudio)页面,将创建的数据源绑定至数据开发(DataStudio)。

    说明

    仅当AnalyticDB for PostgreSQL实例和DataWorks工作空间同地域、同账号时,基于该项目创建的数据源才可绑定至数据开发(DataStudio)。

  • 进行数据同步

    DataWorks的数据集成模块为您提供读取和写入数据至AnalyticDB for PostgreSQL的能力,您可将其他数据源的数据同步至当前AnalyticDB for PostgreSQL数据源,或将当前AnalyticDB for PostgreSQL数据源的数据同步至其他数据源。同时,可根据需要选择离线同步、同步解决方案等场景执行相关数据同步操作。

  • 增删改查数据源:进入数据源管理页面执行编辑、删除等管理操作。