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

PolarDB數據源

PolarDB數據源為您提供讀取和寫入PolarDB雙向通道的功能,您可以通過向導模式和腳本模式配置同步任務。

使用限制

離線讀寫

支持讀取視圖表。

實時讀

來源數據源為阿里云PolarDB MySQL時,您需要開啟Binlog。阿里云PolarDB MySQL是一款完全兼容MySQL的云原生數據庫,默認使用了更高級別的物理日志代替Binlog,但為了更好地與MySQL生態融合,PolarDB支持開啟Binlog的功能。

支持的字段類型

離線讀

PolarDB Reader針對PolarDB類型的轉換列表,如下所示。

類型分類

PolarDB數據類型

整數類

INT、TINYINT、SMALLINT、MEDIUMINT和BIGINT

浮點類

FLOAT、DOUBLE和DECIMAL

字符串類

VARCHAR、CHAR、TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT

日期時間類

DATE、DATETIME、TIMESTAMP、TIME和YEAR

布爾型

BIT和BOOL

二進制類

TINYBLOB、MEDIUMBLOB、BLOB、LONGBLOB和VARBINARY

說明
  • 除上述羅列字段類型外,其它類型均不支持。

  • PolarDB Reader插件將tinyint(1)視作整型。

離線寫

類似于PolarDB Reader ,目前PolarDB Writer支持大部分PolarDB類型,但也存在部分類型沒有支持的情況,請注意檢查您的數據類型。

PolarDB Writer針對PolarDB類型的轉換列表,如下所示。

類型分類

PolarDB數據類型

整數類

INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT和YEAR

浮點類

FLOAT、DOUBLE和DECIMAL

字符串類

VARCHAR、CHAR、TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT

日期時間類

DATE、DATETIME、TIMESTAMP和TIME

布爾型

BOOL

二進制類

TINYBLOB、MEDIUMBLOB、BLOB、LONGBLOB和VARBINARY

數據同步前準備

準備工作1:配置白名單

Serverless資源組或獨享數據集成資源組所在的VPC網段添加至OceanBase的白名單中,詳情請參見添加白名單。

準備工作2:創建賬號并配置賬號權限

創建賬號并配置賬號權限。

您需要規劃一個數據庫的登錄賬戶用于后續執行操作,此賬戶需擁有數據庫的 SELECT, REPLICATION SLAVE, REPLICATION CLIENT權限。

  1. 創建賬號。

    操作詳情可參見創建和管理數據庫賬號

  2. 配置權限。

    您可參考以下命令為賬號添加此權限,或直接給賬號賦予SUPER權限。

    -- CREATE USER '同步賬號'@'%' IDENTIFIED BY '同步賬號';
    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '同步賬號'@'%';

準備工作3:開啟PolarDB的開啟Binlog

操作詳情可參見開啟Binlog

創建數據源

在進行數據同步任務開發時,您需要在DataWorks上創建一個對應的數據源,操作流程請參見創建并管理數據源詳細的配置參數解釋可在配置界面查看對應參數的文案提示

數據同步任務開發:PolarDB同步流程引導

數據同步任務的配置入口和通用配置流程可參見下文的配置指導。

單表離線同步任務配置指導

單表、整庫實時同步任務配置指導

操作流程請參見DataStudio側實時同步任務配置

整庫離線讀、單表/整庫全增量實時讀同步任務配置指導

操作流程請參見數據集成側同步任務配置

常見問題

實時同步Oracle、PolarDB、MySQL任務重復報錯

附錄:腳本Demo與參數說明

離線任務腳本配置方式

如果您配置離線任務時使用腳本模式的方式進行配置,您需要按照統一的腳本格式要求,在任務腳本中編寫相應的參數,詳情請參見通過腳本模式配置離線同步任務,以下為您介紹腳本模式下數據源的參數配置詳情。

Reader腳本Demo

單庫單表的腳本示例如下,詳情請參見上述參數說明。

{
    "type": "job",
    "steps": [
        {
            "parameter": {
                "datasource": "test_005",//數據源名。
                "column": [//源端列名。
                    "id",
                    "name",
                    "age",
                    "sex",
                    "salary",
                    "interest"
                ],
                "where": "id=1001",//過濾條件。
                "splitPk": "id",//切分鍵。
                "table": "PolarDB_person",//源端表名。
              	"useReadonly": "false"http://是否從備庫讀取數據。
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "parameter": {}
    ],
    "version": "2.0",//版本號。
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {//錯誤記錄數。
            "record": ""
        },
        "speed": {
            "concurrent": 6,//并發數。
            "throttle": true//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
      "mbps":"12",//限流,此處1mbps = 1MB/s。
        }
    }
}

Reader腳本參數

參數

描述

是否必選

默認值

datasource

數據源名稱,腳本模式支持添加數據源,此配置項填寫的內容必須要與添加的數據源名稱保持一致。

table

選取的需要同步的表名稱。

useReadonly

如果您希望讀寫分離,從PolarDB集群的備庫讀取數據,則此參數配置為true。不配置時,默認為false,表示從主庫讀取數據。

false

column

所配置的表中需要同步的列名集合,使用JSON的數組描述字段信息 。默認使用所有列配置,例如[*]。

  • 支持列裁剪,即列可以挑選部分列進行導出。

  • 支持列換序,即列可以不按照表Schema信息順序進行導出。

  • 支持常量配置,您需要按照SQL語法格式,例如["id", "table","1","'mingya.wmy'","'null'", "to_char(a+1)","2.3","true"]

    • id為普通列名。

    • table為包含保留字的列名。

    • 1為整型數字常量。

    • ‘mingya.wmy’為字符串常量(注意需要加上一對單引號)。

    • 'null'為字符串常量。

    • to_char(a+1)為計算字符串長度函數。

    • 2.3為浮點數。

    • true為布爾值。

  • column必須顯示指定同步的列集合,不允許為空。

splitPk

PolarDB Reader進行數據抽取時,如果指定splitPk,表示您希望使用splitPk代表的字段進行數據分片,數據同步因此會啟動并發任務進行數據同步,從而提高數據同步的效能。

  • 推薦splitPk用戶使用表主鍵,因為表主鍵通常情況下比較均勻,因此切分出來的分片不容易出現數據熱點。

  • 目前splitPk僅支持整型數據切分,不支持字符串、浮點、日期等其他類型 。如果您指定其他非支持類型,忽略plitPk功能,使用單通道進行同步。

  • 如果splitPk不填寫,包括不提供splitPk或者splitPk值為空,數據同步視作使用單通道同步該表數據 。

splitFactor

切分因子,可以配置同步數據的切分份數,如果配置了多并發,會按照并發數 * splitFactor份來切分。例如,并發數=5,splitFactor=5,則會按照5*5=25份來切分,在5個并發線程上執行。

說明

建議取值范圍:1~100,過大會導致內存溢出。

5

where

篩選條件,在實際業務場景中,往往會選擇當天的數據進行同步,將where條件指定為gmt_create>$bizdate

  • where條件可以有效地進行業務增量同步。如果不填寫where語句,包括不提供where的key或value,數據同步均視作同步全量數據。

  • 將where條件指定為limit 10不符合WHERE子句約束,不建議使用。

querySql(高級模式,向導模式不提供)

在部分業務場景中,where配置項不足以描述所篩選的條件,您可以通過該配置型來自定義篩選SQL。當配置該項后,數據同步系統就會忽略columntablewhere配置項,直接使用該項配置的內容對數據進行篩選。例如需要進行多表 join 后同步數據,使用select a,b from table_a join table_b on table_a.id = table_b.id。當您配置querySql時,PolarDB Reader直接忽略columntablewhere條件的配置,querySql優先級大于table、column、where、splitPk選項。datasource會使用它解析出用戶名和密碼等信息。

Writer腳本Demo

腳本配置樣例如下,詳情請參見上述參數說明。

{
    "type": "job",
    "steps": [
        {
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "parameter": {
                "postSql": [],//導入后完成語句。
                "datasource": "test_005",//數據源名稱。
                "column": [//目標列名。
                    "id",
                    "name",
                    "age",
                    "sex",
                    "salary",
                    "interest"
                ],
                "writeMode": "insert",//寫入模式。
                "batchSize": 256,//一次性批量提交的記錄數大小。
                "table": "PolarDB_person_copy",//目標表名。
                "preSql": []//導入前準備語句。
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",//版本號。
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {//錯誤記錄數。
            "record": ""
        },
        "speed": {
            "throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
            "concurrent":6, //作業并發數。
            "mbps":"12"http://限流,此處1mbps = 1MB/s。
        }
    }
}

Writer腳本參數

  • 全量參數說明

    參數

    描述

    必選

    默認值

    datasource

    數據源名稱,腳本模式支持添加數據源,此配置項填寫的內容必須要與添加的數據源名稱保持一致。

    table

    選取的需要同步的表名稱。

    writeMode

    選擇導入模式,可以支持:

    • insert(即向導模式的insert into)

    • update(即向導模式的on duplicate key update)

    • replace(即向導模式的replace into)

    不同方式的詳細介紹與場景示例請參見下文的writeMode(主鍵沖突)參數詳解

    insert

    column

    目標表需要寫入數據的字段,字段之間用英文所逗號分隔。例如"column": ["id", "name", "age"]。如果要依次寫入全部列,使用(*)表示。 例如"column": [" *"]

    preSql

    執行數據同步任務之前率先執行的SQL語句。目前向導模式僅允許執行一條SQL語句,腳本模式可以支持多條SQL語句,例如清除舊數據。

    postSql

    執行數據同步任務之后執行的SQL語句,目前向導模式僅允許執行一條SQL語句,腳本模式可以支持多條SQL語句,例如加上某一個時間戳。

    batchSize

    一次性批量提交的記錄數大小,該值可以極大減少數據同步系統與PolarDB的網絡交互次數,并提升整體吞吐量。但是該值設置過大可能會造成數據同步運行進程OOM情況。

    1,024

    updateColumn

    writeMode配置成update時,發生遇到主鍵/唯一性索引沖突時所更新的字段。字段之間用英文逗號所分隔,例如"updateColumn": ["name", "age"]

    說明

    目前僅支持PolarDB for MySQL。

  • writeMode(主鍵沖突)參數詳解

    對比介紹

    insert(即向導模式的insert into)

    update(即向導模式的on duplicate key update)

    replace(即向導模式的replace into)

    處理策略

    當主鍵或唯一性索引沖突時,沖突行不寫入目標表,以臟數據的形式體現。

    沒有遇到主鍵或唯一性索引沖突時,與insert into行為一致。沖突時會用新行替換已經指定的字段的語句,寫入數據至目標表。

    沒有遇到主鍵或唯一性索引沖突時,與insert into行為一致。沖突時會先刪除原有行,再插入新行。即新行會替換原有行的所有字段。

    數據示例

    • 源表數據

      +----+---------+-----+
      | id | name    | age |
      +----+---------+-----+
      | 1  | zhangsan| 1   |
      | 2  | lisi    |     |
      +----+---------+-----+
    • 目標表原始數據

      +----+---------+-----+
      | id | name    | age |
      +----+---------+-----+
      | 2  | wangwu  |     |
      +----+---------+-----+
    • 運行任務后,成功寫入目標表1條數據,臟數據1條。

      +----+---------+-----+
      | id | name    | age |
      +----+---------+-----+
      | 1  | zhangsan| 1   |
      | 2  | wangwu  |     |
      +----+---------+-----+
    • 場景1:任務配置部分字段:"column": ["id","name"]

      • 源表數據

        +----+---------+-----+
        | id | name    | age |
        +----+---------+-----+
        | 1  | zhangsan| 1   |
        | 2  | lisi    |     |
        +----+---------+-----+
      • 目標表原始數據

        +----+---------+-----+
        | id | name    | age |
        +----+---------+-----+
        | 2  | wangwu  |  3  |
        +----+---------+-----+
      • 運行任務后,成功寫入目標表2條數據,臟數據0條。

        +----+---------+-----+
        | id | name    | age |
        +----+---------+-----+
        | 1  | zhangsan| 1   |
        | 2  | lisi    | 3   |
        +----+---------+-----+
    • 場景2:任務配置所有字段,"column": ["id","name","age"]

      • 源表數據

        +----+---------+-----+
        | id | name    | age |
        +----+---------+-----+
        | 1  | zhangsan| 1   |
        | 2  | lisi    |     |
        +----+---------+-----+
      • 目標表原始數據

        +----+---------+-----+
        | id | name    | age |
        +----+---------+-----+
        | 2  | wangwu  |  3  |
        +----+---------+-----+
      • 運行任務后,成功寫入目標表2條數據,臟數據0條。

        +----+---------+-----+
        | id | name    | age |
        +----+---------+-----+
        | 1  | zhangsan| 1   |
        | 2  | lisi    |     |
        +----+---------+-----+
    • 源表數據

      +----+---------+-----+
      | id | name    | age |
      +----+---------+-----+
      | 1  | zhangsan| 1   |
      | 2  | lisi    |     |
      +----+---------+-----+
    • 目標表原始數據

      +----+---------+-----+
      | id | name    | age |
      +----+---------+-----+
      | 2  | wangwu  |  3  |
      +----+---------+-----+
    • 運行任務后,成功寫入目標表2條數據,臟數據0條。

      +----+---------+-----+
      | id | name    | age |
      +----+---------+-----+
      | 1  | zhangsan| 1   |
      | 2  | lisi    |     |
      +----+---------+-----+