ALIYUN::DTS::SynchronizationJob类型用于购买同步实例、配置同步作业。

语法

{
  "Type": "ALIYUN::DTS::SynchronizationJob",
  "Properties": {
    "SynchronizationJobClass": String,
    "SourceEndpoint": Map,
    "PayType": String,
    "DataInitialization": Boolean,
    "Period": String,
    "DestRegion": String,
    "SourceRegion": String,
    "UsedTime": Integer,
    "SynchronizationObjects": List,
    "NetworkType": String,
    "DestinationEndpoint": Map,
    "StructureInitialization": Boolean,
    "Topology": String
  }
}

属性

属性名称类型必须允许更新描述约束
SynchronizationJobClassString同步实例规格。取值:
  • micro
  • small(默认值)
  • medium
  • large
SourceEndpointMap源实例配置。详情请参见SourceEndpoint属性
PayTypeString付费类型。取值:
  • Postpaid:后付费。
  • Prepaid:预付费。
DataInitializationBoolean同步之前是否进行全量数据初始化。取值:
  • true(默认值)
  • false
PeriodString预付费周期。取值:
  • Year
  • Month
PayType取值为Prepaid时生效。
DestRegionString目标实例所在的地域。
SourceRegionString源实例所在的地域。
UsedTimeInteger预付费类型实例订购时长。PayType取值为Prepaid时此参数生效。
SynchronizationObjectsList同步对象。详情请参见SynchronizationObjects属性
NetworkTypeString当进行跨地域同步时,使用的数据传输网络类型。取值:
  • Internet(默认值)
  • Intranet
DestinationEndpointMap同步链路配置。详情请参见DestinationEndpoint属性
StructureInitializationBoolean同步之前是否进行结构对象初始化。取值:
  • true(默认值)
  • false
TopologyString同步拓扑。取值:
  • oneway(默认值)
  • bidirectional
只有MySQL之间的同步时,此参数才能取值bidirectional。

SourceEndpoint语法

"SourceEndpoint": {
  "UserName": String,
  "InstanceId": String,
  "IP": String,
  "Port": String,
  "Role": String,
  "OwnerID": String,
  "Password": String,
  "InstanceType": String,
  "InstanceTypeForCreation": String
}

SourceEndpoint属性

属性名称类型必须允许更新描述约束
UserNameString源实例的访问账号。当源实例为ECS或通过专线接入的本地数据库时,必须指定此参数。当源数据库为Redis时,无需指定此参数。
InstanceIdString源实例的ID。
IPString源实例的IP地址。当源实例为通过专线接入的本地数据库时,必须指定此参数。
PortString源实例的监听端口。当源实例为ECS或通过专线接入的本地数据库时,必须指定此参数。
RoleString当源实例与目标实例不属于同一个阿里云账号时,此参数为源实例所属账号对目标实例所属账号的授权角色。角色的相关权限及授权步骤,请参见跨阿里云账号数据迁移或同步时如何配置RAM授权
OwnerIDString当源实例与目标实例不属于同一个阿里云账号时,此参数为源实例所属阿里云账号的UID。
PasswordString源实例的访问密码。当源实例为ECS或通过专线接入的本地数据库时,必须指定此参数。
InstanceTypeString源实例的类型。取值:
  • Redis:阿里云Redis实例。
  • RDS:阿里云RDS实例。
  • POLARDB:阿里云PolarDB MySQL集群 。
  • ECS:ECS上的自建数据库。
  • Express:通过专线接入的自建数据库。
  • dg:通过数据库网关DG接入的自建数据库。
  • cen:通过云企业网CEN接入的自建数据库。
InstanceTypeForCreationString同步链路的源实例类型。取值:
  • MySQL
  • PolarDB
  • Redis
  • SQLServer
  • PostgreSQL
  • PolarDB-X(原DRDS升级版)

SynchronizationObjects 语法

"SynchronizationObjects": [
  {
    "TableExcludes": List,
    "NewSchemaName": String,
    "NewDBName": String,
    "TableIncludes": List,
    "SchemaName": String,
    "DBName": String
  }
]

SynchronizationObjects属性

属性名称类型必须允许更新描述约束
TableExcludesList待同步数据库不需要同步的表名。
NewSchemaNameString待同步Schema在目标实例中映射的Schema名。
NewDBNameString待同步数据库在目标实例中映射的库名。
TableIncludesList待同步表。
SchemaNameString待同步Schema名。
DBNameString待同步数据库名。

TableExcludes语法

"TableExcludes": [
  {
    "TableName": String
  }
]

TableExcludes属性

属性名称类型必须允许更新描述约束
TableNameString表名

TableIncludes语法

"TableIncludes": [
  {
    "TableName": String,
    "FilterCondition": String,
    "ColumnExcludes": List,
    "ColumnIncludes": List,
    "NewTableName": String
  }
]

TableIncludes属性

属性名称类型必须允许更新描述约束
TableNameString待同步的表名。
FilterConditionString过滤条件。
ColumnExcludesList不同步的列。
ColumnIncludesList需同步的列。
NewTableNameString待同步表在目标实例映射的表名。

ColumnExcludes语法

"ColumnExcludes": [
  {
    "ColumnName": String
  }
]

ColumnExcludes属性

属性名称类型必须允许更新描述约束
ColumnNameString不同步的列名

ColumnIncludes语法

"ColumnIncludes": [
  {
    "NewColumnName": String,
    "ColumnName": String
  }
]

ColumnIncludes属性

属性名称类型必须允许更新描述约束
NewColumnNameString待同步列在目标实例中映射的列名。
ColumnNameString需同步的列名。

DestinationEndpoint语法

"DestinationEndpoint": {
  "UserName": String,
  "InstanceId": String,
  "IP": String,
  "InstanceType": String,
  "Password": String,
  "InstanceTypeForCreation": String,
  "Port": String
}

DestinationEndpoint属性

属性名称类型必须允许更新描述约束
UserNameString目标实例的访问账号。当目标实例为ECS或通过专线接入的本地数据库时,必须指定此参数。当目标数据库为Redis时,无需指定此参数。
InstanceIdString目标实例的ID。
  • 当目标实例为MaxCompute时,指定MaxCompute实例中的Project名称。
  • 当目标实例为阿里云分析型数据库MySQL版时,指定分析型数据库MySQL版的集群ID。
  • 当目标实例为DataHub时,指定DataHub实例中的Project名称。
IPString目标实例IP地址。当目标实例为通过专线接入的本地数据库时,必须指定此参数。
InstanceTypeString目标实例的类型。取值:
  • Redis:阿里云Redis实例。
  • RDS(默认值):阿里云RDS实例。
  • POLARDB:阿里云PolarDB MySQL集群。
  • ECS:ECS上的自建数据库。
  • Express:通过专线接入的本地数据库。
  • MaxCompute:阿里云MaxCompute实例。
  • DataHub:阿里云DataHub实例。
  • AnalyticDB:阿里云分析型数据库MySQL版(2.0)。
  • AnalyticDB30:阿里云分析型数据库MySQL版(3.0)。
InstanceTypeForCreationString同步链路的目标实例类型。取值:
  • MySQL
  • PolarDB
  • Redis
  • MaxCompute
  • DataHub
  • Kafka
  • Elasticsearch
  • Tablestore
PasswordString目标实例的访问密码。当目标实例为ECS或通过专线接入的本地数据库时,必须指定此参数。
PortString目标实例监听端口。当目标实例为ECS或通过专线接入的本地数据库时,必须指定此参数。

返回值

Fn::GetAtt

SynchronizationJobId:同步实例ID。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      RdsId:
        Type: String
        AssociationProperty: ALIYUN::RDS::Instance::InstanceId
    Resources:
      SynchronizationJob:
        Type: ALIYUN::DTS::SynchronizationJob
        Properties:
          SynchronizationJobClass: small
          SourceEndpoint:
            InstanceId:
              Ref: RdsId
            InstanceTypeForCreation: MySQL
            InstanceType: RDS
          PayType: Postpaid
          DataInitialization: false
          DestRegion:
            Ref: ALIYUN::Region
          SourceRegion:
            Ref: ALIYUN::Region
          NetworkType: Internet
          DestinationEndpoint:
            InstanceId:
              Ref: RdsId
            InstanceTypeForCreation: MySQL
            InstanceType: RDS
          StructureInitialization: false
    Outputs:
      SynchronizationJobId:
        Description: Synchronization instance ID
        Value:
          Fn::GetAtt:
            - SynchronizationJob
            - SynchronizationJobId
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "RdsId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::RDS::Instance::InstanceId"
        }
      },
      "Resources": {
        "SynchronizationJob": {
          "Type": "ALIYUN::DTS::SynchronizationJob",
          "Properties": {
            "SynchronizationJobClass": "small",
            "SourceEndpoint": {
              "InstanceId": {
                "Ref": "RdsId"
              },
              "InstanceTypeForCreation": "MySQL",
              "InstanceType": "RDS"
            },
            "PayType": "Postpaid",
            "DataInitialization": false,
            "DestRegion": {
              "Ref": "ALIYUN::Region"
            },
            "SourceRegion": {
              "Ref": "ALIYUN::Region"
            },
            "NetworkType": "Internet",
            "DestinationEndpoint": {
              "InstanceId": {
                "Ref": "RdsId"
              },
              "InstanceTypeForCreation": "MySQL",
              "InstanceType": "RDS"
            },
            "StructureInitialization": false
          }
        }
      },
      "Outputs": {
        "SynchronizationJobId": {
          "Description": "Synchronization instance ID",
          "Value": {
            "Fn::GetAtt": [
              "SynchronizationJob",
              "SynchronizationJobId"
            ]
          }
        }
      }
    }