日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

遷移、同步或訂閱對象說明

DTS支持調用API接口,配置或查詢DTS任務的遷移、同步或訂閱對象。本文將為您介紹相關API接口,并提供對象的定義和配置案例。

相關接口及參數

API

說明

在請求參數Dblist中配置DTS任務的遷移、同步或訂閱的對象。

在返回參數DbObject中查詢DTS任務的遷移、同步或訂閱的對象。

遷移、同步或訂閱對象定義說明

遷移、同步或訂閱對象的數據類型為JSON,詳細定義如下:

  • 若遷移、同步或訂閱對象包含多個庫,則您可參考如下定義:

    重要

    訂閱實例不支持映射功能,即訂閱實例中name的參數值必須與待訂閱的數據庫或表的名稱一致。

    {
        "待遷移、同步或訂閱的庫1的名稱": {
            "name": "遷移、同步或訂閱的庫1在目標實例中的名稱",
            "all": true(表示遷移、同步或訂閱對象為整庫)
        },
        "待遷移、同步或訂閱的庫2的名稱": {
            "name": "遷移、同步或訂閱的庫2在目標實例中的名稱",
            "all": false(表示遷移、同步或訂閱對象為非整庫),
            "Table": {
                "待遷移、同步或訂閱的表A的名稱": {
                    "name": "遷移、同步或訂閱的表A在目標實例中的名稱",
                    "all": true(表示遷移、同步或訂閱對象為整表),
                    "dml_op": "需增量遷移或同步的DML操作",
                    "ddl_op": "需增量遷移或同步的DDL操作"
                }
            }
        },
        "待遷移、同步或訂閱的庫3的名稱": {
            "name": "遷移、同步或訂閱的庫3在目標實例中的名稱",
            "all": true(表示遷移、同步或訂閱對象為整庫),
            "dml_op": "需增量遷移或同步的DML操作",
            "ddl_op": "需增量遷移或同步的DDL操作"
        }
    }
  • 若遷移或同步對象的粒度為列,或者包含過濾條件,則您可參考如下定義:

    {
        "待遷移、同步或訂閱的庫名": {
            "name": "遷移、同步或訂閱的庫在目標實例中的庫名",
            "all": false(表示遷移、同步或訂閱對象為非整庫),
            "Table": {
                "待遷移、同步或訂閱的表名A": {
                    "name": "遷移、同步或訂閱的表在目標實例中的表名A",
                    "all": false(表示遷移、同步或訂閱對象為非整表),
                    "filter": "id>10"
                    "column": {
                        "id": {
                            "key": "PRI",
                            "name": "id",
                            "type": "int(11)",
                            "sharedKey": false,
                            "state": "checked"
                        }
                    },
                    "shard": 12
                }
            }
        }
    }
  • 若遷移或同步對象所屬的目標庫實例為云原生數據倉庫AnalyticDB MySQL版AnalyticDB PostgreSQL版時,則您可參考如下定義:

    {
        "待遷移、同步的庫的名稱": {
            "name": "遷移、同步的庫在目標實例中的名稱",
            "all": false(固定為false。無論是對象為整庫還是表級,如目標實例為AnalyticDB MySQL或AnalyticDB PostgreSQL,固定傳入false,且還需傳入表對應的分區鍵等信息),
            "Table": {
                "待遷移、同步的表A的名稱": {
                    "all": true(表示遷移、同步對象為整表),
                    "name": "遷移、同步的表A在目標實例中的名稱",
                    "primary_key": "id(指定主鍵)",
                    "type": "dimension(表的類型)",
                }
                "待遷移、同步的表B的名稱": {
                    "all": true(表示遷移、同步對象為整表),
                    "name": "遷移、同步的表B在目標實例中的名稱",
                    "part_key": "id(指定分區鍵)",
                    "primary_key": "id(指定主鍵)",
                    "type": "partition(表的類型)",
                    "tagColumnValue": "標簽列的值"
                }
            }
        }
    }
  • 若需要給同步對象設置獨立沖突修復策略,則您可參考如下定義:

    說明
    • 當前僅MySQL間或PolarDB MySQL版集群間的雙向同步實例支持。

    • 支持設置庫級別或表級別的獨立沖突修復策略。

    • 設置了獨立沖突修復策略的列,全局沖突修復策略對其不生效。

    表級別

    {
        "待同步的庫的名稱1": {
          "name": "待同步的庫1在目標實例中的名稱",
          "all": true(表示同步對象為整庫),
          "conflict": "任務級別的沖突修復策略"
        },
        "待同步的庫的名稱2": {
          "name": "待同步的庫2在目標實例中的名稱",
          "all": false(表示同步對象為非整庫),
          "conflict": "overwrite",
          "Table": {
            "待同步的表A的名稱": {
              "name": "同步的表A在目標實例中的名稱",
              "all": true(表示同步對象為整表),
              "cdr_cmp_col": "沖突檢測列",
              "cdr_rslv_col": "沖突檢測列",
              "resolve_method": "表級別的沖突修復策略"
            }
          }
        }
    }

    庫級別

    • 同步對象為整庫:

      "待同步的庫的名稱1": {
        "name": "待同步的庫1在目標實例中的名稱",
        "all": true(表示同步對象為整庫),
        "conflict": "任務級別的沖突修復策略",
        "cdr_cmp_col": "沖突檢測列",
        "cdr_rslv_col": "沖突檢測列",
        "resolve_method": "庫級別的沖突修復策略"
        }
      }
    • 同步對象非整庫:

      "待同步的庫的名稱2": {
        "name": "待同步的庫2在目標實例中的名稱",
        "all": false(表示同步對象為非整庫),
        "conflict": "任務級別的沖突修復策略",
        "cdr_cmp_col": "沖突檢測列",
        "cdr_rslv_col": "沖突檢測列",
        "resolve_method": "庫級別的沖突修復策略",
        "Table": {
          "待同步的表A的名稱": {
            "name": "同步的表A在目標實例中的名稱",
            "all": true(表示同步對象為整表)
          }
        }
      }

參數

說明

name

源庫、表、列名映射到目標庫、表、列的名稱。如源庫名為dtssource,目標庫名為dtstarget,則您需在name中傳入dtstarget,表示把源庫名映射成dtstarget后寫入目標庫中。

all

是否選擇全部表、列,取值:

  • true:是。

    說明

    如選擇全部表或列,則無需在配置具體的表或列信息。

  • false:否。

Table

待遷移、同步或訂閱的表信息。

filter

設置過濾條件,過濾待遷移、同步或訂閱的數據。目前僅支持在表級別中體現。

例如您可傳入id>10,選擇只遷移、同步該表中ID列的值大于10的數據。更多過濾條件的格式,請參見設置過濾條件

說明

訂閱任務暫不支持設置過濾條件。

column

待遷移、同步或訂閱的列信息。

key

是否為主鍵,取值:

  • PRI:是。

  • 空值:否。

sharedKey

是否為分片鍵,取值:

  • true:是。

  • false:否。

說明

當遷移、同步對象所屬數據庫的類型為Kafka時,才需配置本參數。

type

該字段的數據類型。

state

如為checked,則表示該列被選中。

shard

待遷移、同步的表的分片數量。

說明

當遷移、同步數據所屬數據庫的類型為Kafka時,才需配置本參數。

dml_op

選擇增量遷移或同步的DML操作,取值及意思如下:

  • i:INSERT。

  • u:UPDATE。

  • d:DELETE。

  • 如該值為空,則表示增量遷移或同步該任務所有支持的DML操作。

  • none:不增量遷移或同步DML操作。

說明

如需查詢不同遷移或同步任務支持的DML操作,請參見遷移方案概覽同步方案概覽中具體任務的配置文檔。

ddl_op

選擇增量遷移或同步的DDL操作。取值及意思如下:

  • ct:CREATE TABLE。

  • at:ALTER TABLE。

  • dt:DROP TABLE。

  • rt:RENAME TABLE。

  • tt:TRUNCATE TABLE。

  • 如該值為空,則表示增量遷移或同步該任務所有支持的DDL操作。

  • none:不增量遷移或同步DDL操作。

說明

如需查詢不同遷移或同步任務支持的DDL操作,請參見遷移方案概覽同步方案概覽中具體任務的配置文檔。

primary_key

表示主鍵。當目標實例為云原生數據倉庫AnalyticDB MySQL版AnalyticDB PostgreSQL版時,本參數才可用且必須傳入。

part_key

表示分區鍵。當目標實例為云原生數據倉庫AnalyticDB MySQL版AnalyticDB PostgreSQL版時,本參數才可用且必須傳入。

type

重要

此處的type參數與代表字段數據類型的type參數不同。

當目標實例為云原生數據倉庫AnalyticDB MySQL版AnalyticDB PostgreSQL版時,您需要指明遷移、同步對象的表類型:

  • dimension:維度表。

  • partition:分區表。

tagColumnValue

自定義__dts_data_source標簽列的值。當目標實例為云原生數據倉庫AnalyticDB MySQL版時,本參數才可用且必須傳入。

conflict

任務級別的全局沖突修復策略,待同步的每個庫中都需傳入該參數,且取值必須一致。取值:

  • overwrite:當數據同步遇到沖突時,直接覆蓋目標庫中的沖突記錄。

  • interrupt:當數據同步遇到沖突時,同步任務直接報錯并退出,同步任務進入失敗狀態,需要您介入修復任務。

    說明

    控制臺顯示為TaskFailed

  • ignore:當數據同步遇到沖突時,直接跳過當前同步語句,繼續往下執行,選擇使用目標庫中的沖突記錄。

resolve_method

表級別的獨立沖突修復策略(僅增量同步支持),取值:

  • overwrite:當數據同步遇到沖突時,直接覆蓋目標庫中的沖突記錄。

  • interrupt:當數據同步遇到沖突時,同步任務直接報錯并退出,同步任務進入失敗狀態,需要您介入修復任務。

    說明

    控制臺顯示為TaskFailed

  • ignore:當數據同步遇到沖突時,直接跳過當前同步語句,繼續往下執行,選擇使用目標庫中的沖突記錄。

  • use_max:當數據同步遇到沖突時,對當前沖突列的兩條記錄進行對比,將較大值的記錄寫入到目標庫中。若目標記錄不存在或字段類型不滿足要求,則系統的處理方法等效于overwrite

  • use_min:當數據同步遇到沖突時,對當前沖突列的兩條記錄進行對比,將較小值的記錄寫入到目標庫中。若目標記錄不存在或字段類型不滿足要求,則系統的處理方法等效于ignore

cdr_cmp_col

  • 表級別:表示除主鍵和唯一鍵外,需要設置獨立沖突修復策略的沖突檢測列,且取值必須一致。

    重要
    • 沖突策略為use_maxuse_min時,參數cdr_cmp_colcdr_rslv_col必須傳入。

    • 取值默認已包含主鍵和唯一鍵,無需手動傳入對應的列。

  • 庫級別:表示需要設置獨立沖突修復策略的沖突檢測列,且取值必須一致。

    重要

    參數cdr_cmp_colcdr_rslv_col必須傳入。

cdr_rslv_col

遷移、同步或訂閱對象配置示例

  • 示例一:遷移、同步或訂閱dtstestdata庫中所有的表。

    {"dtstestdata": {   "name": "dtstestdata",   "all": true }}
  • 示例二:遷移或同步dtstestdata庫,并修改庫名為dtstestdata_new。

    {"dtstestdata": {   "name": "dtstestdata_new",   "all": true }}
  • 示例三:遷移、同步或訂閱dtstestdata庫中部分表(如customer)。

    {"dtstestdata": {
       "name": "dtstestdata",
       "all": false,
       "Table": {
         "customer": {
           "name": "customer",
           "all": true, 
           "column": { 
             "id": {
               "key": "PRI",
               "name": "id",
               "type": "int(11)",
               "sharedKey": false,
               "state": "checked"  
             },
             "gmt_create": {
               "key": "",
               "name": "gmt_create",
               "type": "datetime",
               "sharedKey": false,
               "state": "checked"
             },
             "gmt_modify": {
               "key": "",
               "name": "gmt_modify",
               "type": "datetime",
               "sharedKey": false,
               "state": "checked"
             },
             "valid_time": {
               "key": "",
               "name": "valid_time",
               "type": "datetime",
               "sharedKey": false,
               "state": "checked"
             },
             "creator": {
               "key": "",
               "name": "creator",
               "type": "varchar(200)",
               "sharedKey": false,
               "state": "checked"
             }
           },
           "shard": 12
         }
       }
     }
    }
  • 示例四:遷移或同步dtstestdata庫中的表(如customer和order)的部分列。

    {"dtstestdata": {
       "name": "dtstestdata",
       "all": false,
       "Table": {
         "customer": {
           "name": "customer",
           "all": false, 
           "column": { 
             "id": {
               "key": "PRI",
               "name": "id",
               "type": "int(11)",
               "sharedKey": false,
               "state": "checked"  
             },
             "level": {
               "key": "",
               "name": "level",
               "type": "varchar(5000)",
               "sharedKey": false,
               "state": "checked"
             },
             "name": {
               "key": "",
               "name": "name",
               "type": "varchar(500)",
               "sharedKey": false,
               "state": "checked"
             },
           },
           "shard": 12
         },
         "order": {
           "name": "order",
           "all": false,
          "column": {
             "id": {
               "key": "PRI",
               "name": "id",
               "type": "int(11)",
               "sharedKey": false,
               "state": "checked"
             }
           },
           "shard": 12
         }
       }
     }
    }
  • 示例五:遷移或同步dtstestdata庫中的表(如customer、order、commodity)至目標實例云原生數據倉庫AnalyticDB MySQL版AnalyticDB PostgreSQL版中。

    {
        "dtstestdata": {
            "name": "dtstestdatanew",
            "all": false,
            "Table": {
                "order": {
                    "name": "ordernew",
                    "all": true,
                    "part_key": "id",
                    "primary_key": "id",
                    "type": "partition"
                },
                "customer": {
                    "name": "customernew",
                    "all": true,
                    "primary_key": "id",
                    "type": "dimension"
                },
                "commodity": {
                    "name": "commoditynew",
                    "all": false,
                    "filter": "id>10",
                    "column": {
                        "id": {
                            "key": "PRI",
                            "name": "id",
                            "type": "int(11)"
                        }
                    },
                    "part_key": "id",
                    "primary_key": "id",
                    "type": "partition"
                }
            }
        }
    }
  • 示例六:

    表級別

    給同步任務的對象設置全局沖突修復策略interrupt;給同步的dtstestdata2庫中的customer表的主鍵列、唯一鍵列和name列設置獨立沖突修復策略overwrite

    {
        "dtstestdata1": {
          "name": "dtstestdata1",
          "all": true,
          "conflict": "interrupt"
        },
        "dtstestdata2": {
          "name": "dtstestdata2",
          "all": false,
          "conflict": "interrupt",
          "Table": {
            "customer": {
              "name": "customer",
              "all": true,
              "cdr_cmp_col": "name",
              "cdr_rslv_col": "name",
              "resolve_method": "overwrite"
            }
          }
        }
      }

    庫級別

    • 同步對象為整庫:給同步的dtstestdata1庫中所有待同步表的nameaddr列,設置獨立沖突修復策略use_max

      "dtstestdata1": {
        "name": "dtstestdata1",
        "all": true,
        "conflict": "overwrite",
        "cdr_cmp_col": "name,addr",
        "cdr_rslv_col": "name,addr",
        "resolve_method": "use_max"
        }
      }
    • 同步對象非整庫:給同步的dtstestdata2庫中所有待同步表的nameaddr列,設置獨立沖突修復策略use_max

      "dtstestdata2": {
        "name": "dtstestdata2",
        "all": false,
        "conflict": "overwrite",
        "cdr_cmp_col": "name,addr",
        "cdr_rslv_col": "name,addr",
        "resolve_method": "use_max",
        "Table": {
          "person": {
            "name": "person",
            "all": true
          },
          "class": {
            "name": "class",
            "all": true
          }
        }
      }

  • 示例七:源數據庫類型為Tair/Redis的同步實例,對名稱為0和1的DB,僅同步Key前綴為HProp的數據(即需要同步的前綴HProp);對名稱為2的DB僅同步Key前綴為dts且不包含dtstest的數據(即需要同步的前綴dts,且需要過濾的前綴dtstest)。

    {
        "0": {
            "name": "0", 
            "all": true,
             "filter": "[{"condition":"HProp","filterType":"white","filterPattern":"prefix"}]"
        }, 
        "1": {
            "name": "1", 
            "all": true,
             "filter": "[{"condition":"HProp","filterType":"white","filterPattern":"prefix"}]"
        }, 
        "2": {
            "name": "2", 
            "all": true,
             "filter": "[{"condition":"dts","filterType":"white","filterPattern":"prefix"},{"condition":"dtstest","filterType":"black","filterPattern":"prefix"}]"
        }
    }