本文将为您介绍支持连通性测试的数据源类型,以及数据源连通性测试常见问题示例。

数据源 数据源类型 网络类型 是否支持测试连通性 是否添加自定义资源组
MySQL 云数据库 经典网络 支持 -
专有网络 支持 -
连接串模式(数据集成网络可直接连通) 支持 -
连接串模式(数据集成网络不可直接连通) 不支持
ECS自建 经典网络 支持 -
专有网络 不支持
SQL Server 云数据库 经典网络 支持 -
专有网络 支持 -
连接串模式(数据集成网络可直接连通) 支持 -
连接串模式(数据集成网络不可直接连通) 不支持
ECS自建 经典网络 支持 -
专有网络 不支持
PostgreSQL 云数据库 经典网络 支持 -
专有网络 支持 -
连接串模式(数据集成网络可直接连通) 支持 -
连接串模式(数据集成网络不可直接连通) 不支持
ECS自建 经典网络 支持 -
专有网络 不支持
Oracle 连接串模式(数据集成网络可直接连通) 支持 -
连接串模式(数据集成网络不可直接连通) 不支持
ECS自建 经典网络 支持 -
专有网络 不支持
DRDS 云数据库 经典网络 支持 -
专有网络 排期中
HybridDB for MySQL 云数据库 经典网络 支持 -
专有网络 排期中
HybridDB for PostgreSQL 云数据库 经典网络 支持 -
专有网络 排期中
MaxCompute(对应odps数据源) 云数据库 经典网络 支持 -
AnalyticDBAnalyticDB for MySQL 2.0 云数据库 经典网络 支持 -
专有网络 排期中
OSS 云数据库 经典网络 支持 -
专有网络 支持 -
Hdfs 连接串模式(数据集成网络可直接连通) 支持 -
ECS自建 经典网络 支持 -
专有网络 不支持
FTP 连接串模式(数据集成网络可直接连通) 支持 -
连接串模式(数据集成网络不可直接连通) 不支持
ECS自建 经典网络 支持 -
专有网络 不支持
MongoDB 云数据库 经典网络 支持 -
专有网络 排期中
连接串模式(数据集成网络可直接连通) 支持 -
ECS自建 经典网络 支持 -
专有网络 不支持
Memcache 云数据库 经典网络 支持 -
专有网络 排期中
Redis 云数据库 经典网络 支持 -
专有网络 排期中
连接串模式(数据集成网络可直接连通) 支持 -
ECS自建 经典网络 支持 -
专有网络 不支持
Table Store(对应OTS数据源) 云数据库 经典网络 支持 -
专有网络 排期中
DataHub 云数据库 经典网络 支持 -
专有网络 不支持 -
说明

上述表格中的-表示没有该说法。不支持并不代表不能配置同步任务,只是单击测试连通性无效,需要添加自定义资源组。

以关系数据库JDBCUrl为例,约束如下:
  • 本地IDC
    • 连接串模式(数据集成网络可直接连通):支持测试连通性和通过JDBCUrl模式添加数据源。
    • 连接串模式(数据集成网络不可直接连通):不支持测试连通性。支持通过JDBCUrl模式添加数据源,需要使用数据集成自定义资源组同步任务。

      您也可以使用高速通道打通本地IDC网络和已有的专有网络,并提交工单

  • ECS自建数据源
    • 连接串模式(数据集成网络可直接连通):支持测试连通性和通过JDBCUrl模式添加数据源。
    • 经典网络:
      • 如果和DataWorks在相同的区域,支持测试连通性和通过JDBCUrl模式添加数据源。
      • 如果和DataWorks在不同的区域,则不支持测试连通性。支持通过JDBCUrl模式添加数据源,需要使用数据集成自定义资源组同步任务。
      • 经典网络ECS上自建的数据源,不保证默认资源组网络可通,建议使用数据集成自定义资源组同步任务。
    • 专有网络VPC内部地址:不支持测试连通性。支持通过JDBCUrl模式添加数据源,需要使用数据集成自定义资源组或独享数据集成资源同步任务。
  • 阿里云产品:
    • 实例模式添加数据源:
      • RDS(MySQL、PostgreSQL和SQLServer)、POLARDB、DRDS、HybridDB for MySQL、AnalyticDB for PostgreSQLr和AnalyticDB for MySQL3.0支持反向VPC,支持测试连通性和使用默认资源组同步任务。
      • Redis、MongoDB和AnalyticDB for MySQL2.0支持实例模式添加数据源,不支持反向VPC和测试连通性,需要使用数据集成自定义资源组或独享数据集成资源同步任务。
    • 连接串模式(数据集成网络可直接连通):支持测试连通性和通过JDBCUrl模式添加数据源。
    • 经典网络:
      • 如果和DataWorks在相同的区域,支持测试连通性和通过JDBCUrl模式添加数据源。
      • 如果和DataWorks在不同的区域,则不支持测试连通性。支持通过JDBCUrl模式添加数据源,需要使用数据集成自定义资源组同步任务。
    • 专有网络VPC内部地址:不支持测试连通性。支持通过JDBCUrl模式添加数据源,需要使用数据集成自定义资源组或独享数据集成资源同步任务。

    例如MaxCompute、OSS和LogHub等其它区域中心化服务的产品,包括3种类型的endpoint,您按照自身需求进行选择即可。

说明
  • HDFS、Redis和MongoDB等其它数据源对应连接地址的约束和关系型数据库一致。
  • 选择数据源连接地址时,需要和任务配置模式(包括向导模式和脚本模式)、任务实际执行资源组(包括默认资源组、自定义资源组和独享数据集成资源组)配合,让运行任务的资源组可以访问数据源。
  • 由于数据存储的特性,建议HBase数据源和HDFS数据源使用自定义资源组或独享数据集成资源组。
  • 金融云的数据源支持网络连通和通过实例模式添加数据源。如果网络不通,请使用自定义资源组同步任务。

调度集群

  • 目前调度集群在华东2、华南1、中国(香港)、新加坡均有部署,以调度集群在华东2为准和用户数据源进行对比。假设您的MongoDB数据源在华北经典网络,以调度集群在华东2经典网络为准,跨区域连接不通。
  • OXS集群和ECS集群内网不通。

    RDS的调度集群是OXS,OXS集群和内网中国大陆所有区域的RDS互通。其它数据源由另外一套ECS经典网络的调度集群调度。

    例如RDS同步至自建数据库测试时,RDS和自建数据库数据源测试连通性均可以成功。但实际调度时,RDS会下发至OXS调度集群,自建数据库会下发至ECS集群,RDS和ECS集群不通,所以测试失败。通常建议您将RDS改为MySQL>JDBC方式,以保证都可以调度ECS集群,网络连接成功。

如何查看任务下发执行集群

  • 出现RDS作为数据源时,任务会到OXS集群同步。日志
    您可以通过以下方式确认任务运行的资源组:
    • 任务运行在默认的资源组上,日志中会出现如下信息。
      running in Pipeline[basecommon_ group_xxxxxxxxx]
    • 任务运行在数据集成自定义资源组上,日志中会出现如下信息。
      running in Pipeline[basecommon_xxxxxxxxx]
    • 任务运行在独享数据集成资源上,日志中会出现如下信息。
      running in Pipeline[basecommon_S_res_group_xxx]

    如果需要切换资源组,请参见使用独享资源

  • 当数据源为其它数据源在ECS调度集群时。日志
  • 当调度集群为自定义调度资源时,日志如下图所示(非常重要,用于判断是否为自定义资源组)。日志
  • 进入数据集成测试页面,直接单击运行,统一由ECS调度集群调度。因为RDS作为数据源跨区域时,需要在OXS调度集群执行。所以可能出现RDS相关任务手动运行成功,但调度失败的情况,此时需要您选择调度运维 > 测试运行

测试连通性失败的常见场景

当测试连通性失败时,需要确认数据源区域、网络类型、RDS白名单是否添加完整实例ID、数据库名称和用户名是否正确。如果您的测试连通性失败,可以首先参见及如何排查数据集成问题进行排查。常见错误示例如下所示:
  • 数据库密码错误,如下所示。数据库密码错误
  • 网络不通错误,如下所示。网络不通
  • 同步过程中出现网络断开等情况。

    首先要查看完整日志,确定是哪个调度资源,是否是自定义资源。

    如果是自定义资源,请确认自定义资源组的IP是否添加至相应数据源的白名单,例如RDS白名单。
    说明 MongoDB有白名单限制,需要进行添加。

    确认两端是否通过数据源连通性、RDS和MongoDB的白名单是否添加完整。

    说明 如果白名单不完整,则不能保证任务成功。如果任务下发至已经添加的调度服务器上会成功,没添加的会失败。
  • 任务显示成功,但是日志出现8000断开报错。

    出现上述报错,是因为您使用的自定义调度资源组,没有对10.116.134.123的访问8000端口在安全组内网入方向放行,添加后重新运行即可。

测试连通性失败的示例

示例一
  • 问题现象

    测试连接失败,测试数据源连通性失败。连接数据库失败,数据库连接串:jdbc:mysql://xx.xx.xx.x:xxxx/t_uoer_bradef,用户名:xxxx_test,异常消息:Access denied for user ‘xxxx_test’@’%’ to database ‘yyyy_demo’

  • 排查思路
    1. 确认其添加的信息是否有问题。
    2. 密码、白名单或者用户的账号是否具有对应数据库的权限,RDS管控台可以添加授权。

示例二

  • 问题现象
    测试连接失败,测试数据源连通性失败,报错如下。
    error message: Timed out after 5000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[(xxxxxxxxxx), type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}]
  • 排查思路

    非VPC的MongoDB,添加MongoDB数据源测试连通性要添加相应的白名单,详情请参见添加白名单