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

DRDS(PolarDB-X 1.0)數(shù)據(jù)源

DRDS(PolarDB-X 1.0)數(shù)據(jù)源為您提供讀取和寫入DRDS(PolarDB-X 1.0)雙向通道的功能,本文為您介紹DataWorks的DRDS(PolarDB-X 1.0)數(shù)據(jù)同步的能力支持情況。

支持的版本

實時讀取

支持DRDS(PolarDB-X 1.0)實例。創(chuàng)建DRDS(PolarDB-X 1.0)實例的操作可參見創(chuàng)建PolarDB-X 1.0實例。

使用限制

離線讀寫

  • 目前DRDS(PolarDB-X 1.0)的插件僅適配MySQL引擎的場景。DRDS(PolarDB-X 1.0)是一套分布式MySQL數(shù)據(jù)庫,并且大部分通信協(xié)議遵守MySQL使用場景。

  • DRDS(PolarDB-X 1.0)下的MySQL8.0版本支持使用Serverless資源組(推薦)獨享數(shù)據(jù)集成資源組。

  • 在底層實現(xiàn)上,DRDS(PolarDB-X 1.0) Writer通過JDBC連接遠程DRDS(PolarDB-X 1.0)數(shù)據(jù)庫的Proxy,執(zhí)行相應的replace into語句,寫入數(shù)據(jù)至DRDS(PolarDB-X 1.0)。

    執(zhí)行的SQL語句是replace into,為避免數(shù)據(jù)重復寫入,需要您的表具備主鍵(Primary Key)或唯一性索引(Unique index)。

  • DRDS(PolarDB-X 1.0) Writer通過數(shù)據(jù)同步框架獲取Reader生成的協(xié)議數(shù)據(jù),通過replace into(沒有遇到主鍵/唯一性索引沖突時,與insert into行為一致,沖突時會用新行替換原有行所有字段)語句寫入數(shù)據(jù)至DRDS(PolarDB-X 1.0)。DRDS(PolarDB-X 1.0) Writer累積一定數(shù)據(jù),提交給DRDS(PolarDB-X 1.0)的Proxy,該Proxy內(nèi)部決定數(shù)據(jù)是寫入一張還是多張表,以及多張表寫入時如何路由數(shù)據(jù)。

    說明

    整個任務至少需要具備replace into的權限。是否需要其它權限,取決于您配置任務時在preSql和postSql中指定的語句。

  • 支持讀取視圖表。

實時讀

  • 目前僅支持使用實例模式配置的數(shù)據(jù)源,如果您使用JDBC連接串配置的數(shù)據(jù)源,任務運行將會出錯。

  • 實例的存儲類型:僅支持PolarDB(即租戶側(cè)PolarDB MySQL)和存量的用戶RDS(新購已不支持),不支持RDS MySQL(即私有定制RDS MySQL)。

  • 不支持XA ROLLBACK。

    針對已經(jīng)XA PREPARE的事務數(shù)據(jù),實時同步會將其同步到目標端,如果XA ROLLBACK,實時同步不會針對XA PREPARE的數(shù)據(jù)做回滾寫入的操作。若要處理XA ROLLBACK場景,需要手動將XA ROLLBACK的表從實時同步任務中移除,再添加表后重新進行同步。

支持的字段類型

DRDS(PolarDB-X 1.0) Reader和DRDS(PolarDB-X 1.0) Writer支持大部分DRDS(PolarDB-X 1.0)類型,但也存在個別類型沒有支持的情況,請注意檢查您的數(shù)據(jù)類型。

DRDS(PolarDB-X 1.0) Reader和DRDS(PolarDB-X 1.0) Writer針對DRDS(PolarDB-X 1.0)類型的轉(zhuǎn)換列表,如下所示。

類型分類

DRDS(PolarDB-X 1.0)數(shù)據(jù)類型

整數(shù)類

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

數(shù)據(jù)同步前準備

您需要規(guī)劃一個數(shù)據(jù)庫的登錄賬戶用于后續(xù)執(zhí)行操作,此賬號需要擁有DRDS(PolarDB-X 1.0)的相關操作權限,詳情請參見新建賬號。

創(chuàng)建數(shù)據(jù)源

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

數(shù)據(jù)同步任務開發(fā)

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

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

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

操作流程請參見數(shù)據(jù)集成側(cè)同步任務配置

常見問題

  • 一致性視圖問題

    DRDS(PolarDB-X 1.0)本身屬于分布式數(shù)據(jù)庫,對外無法提供一致性的多庫多表視圖。不同于MySQL等單庫單表同步,DRDS(PolarDB-X 1.0) Reader無法抽取同一個時間切片的分庫分表快照信息,即DRDS(PolarDB-X 1.0) Reader抽取底層不同的分表將獲取不同的分表快照,無法保證強一致性。

  • 數(shù)據(jù)庫編碼問題

    DRDS(PolarDB-X 1.0)本身的編碼設置非常靈活,包括指定編碼到庫、表、字段級別,甚至可以設置不同編碼。優(yōu)先級從高到低為字段、表、庫、實例。建議您在庫級別將編碼統(tǒng)一設置為UTF-8。

    DRDS(PolarDB-X 1.0) Reader底層使用JDBC進行數(shù)據(jù)抽取,JDBC天然適配各類編碼,并在底層進行了編碼轉(zhuǎn)換。因此DRDS(PolarDB-X 1.0) Reader不需要您指定編碼,可以自動獲取編碼并轉(zhuǎn)碼。

    對于DRDS(PolarDB-X 1.0)底層寫入編碼和其設定的編碼不一致的混亂情況,DRDS(PolarDB-X 1.0) Reader對此無法識別,該類情況的同步結果有可能為亂碼。

  • 增量數(shù)據(jù)同步的方式

    DRDS(PolarDB-X 1.0) Reader使用JDBC SELECT語句完成數(shù)據(jù)抽取工作,因此您可以使用SELECT…WHERE…進行增量數(shù)據(jù)抽取,方式如下:

    • 數(shù)據(jù)庫在線應用寫入數(shù)據(jù)庫時,填充modify字段為更改時間戳,包括新增、更新、刪除(邏輯刪除)。對于這類應用,DRDS(PolarDB-X 1.0) Reader只需要where條件后跟上一同步階段時間戳即可。

    • 對于新增流水型數(shù)據(jù),DRDS(PolarDB-X 1.0) Reader在where條件后跟上一階段最大自增ID即可。

    對于業(yè)務上無字段區(qū)分新增、修改數(shù)據(jù)的情況,DRDS(PolarDB-X 1.0) Reader無法進行增量數(shù)據(jù)同步,只能同步全量數(shù)據(jù)。

  • 不支持在where語句中配置物理表相關的篩選條件。

附錄:腳本Demo與參數(shù)說明

離線任務腳本配置方式

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

Reader腳本Demo

{
    "type":"job",
    "version":"2.0",//版本號
    "steps":[
        {
            "stepType":"drds",//插件名
            "parameter":{
                "datasource":"",//數(shù)據(jù)源名
                "column":[//列名
                    "id",
                    "name"
                ],
                "where":"",//過濾條件
                "table":"",//表名
                "splitPk": ""http://切分鍵
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",//插件名
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"http://錯誤記錄數(shù)
        },
        "speed":{
            "throttle":true,//當throttle值為false時,mbps參數(shù)不生效,表示不限流;當throttle值為true時,表示限流。
            "concurrent":1,//并發(fā)數(shù)
            "mbps":"12"http://限流,此處1mbps = 1MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Reader腳本參數(shù)

參數(shù)

描述

是否必選

默認值

datasource

數(shù)據(jù)源名稱,腳本模式支持添加數(shù)據(jù)源,該配置項填寫的內(nèi)容必須與添加的數(shù)據(jù)源名稱保持一致。

table

所選取的需要同步的表。

column

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

  • 支持列裁剪,即可以同步部分列。

  • 支持列換序,即可以不根據(jù)表Schema信息的順序同步列。

  • 支持常量配置,您需要按照MySQL的語法格式。例如,["id", "`table`", "1", "'bazhen.csy'", "null", "to_char(a + 1)", "2.3", "true"]。示例中的參數(shù)說明如下:

    • id為普通列名。

    • table包含保留的列名。

    • 1為整型數(shù)字常量。

    • bazhen.csy為字符串常量。

    • null為空指針。

    • to_char(a + 1)為計算字符串長度函數(shù)表達式。

    • 2.3為浮點數(shù)。

    • true為布爾值。

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

where

篩選條件,DRDS(PolarDB-X 1.0) Reader根據(jù)指定的columntable、where條件拼接SQL,并根據(jù)該SQL進行數(shù)據(jù)抽?。?

  • where條件可以有效地進行業(yè)務增量同步。

  • where條件不配置或者為空時,視作全表同步數(shù)據(jù) 。

例如,在測試時使用where條件指定實際業(yè)務場景。通常會選擇當天的數(shù)據(jù)進行同步,您可以指定where條件為STRTODATE('${bdp.system.bizdate}','%Y%m%d') <= today AND today < DATEADD(STRTODATE('${bdp.system.bizdate}', '%Y%m%d'), interval 1 day)

Writer腳本Demo

{
    "type":"job",
    "version":"2.0",//版本號。
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
                },
        {
            "stepType":"drds",//插件名。
            "parameter":{
                "postSql":[],//執(zhí)行數(shù)據(jù)同步任務之后執(zhí)行的SQL語句。
                "datasource":"",//數(shù)據(jù)源。
                "column":[//列名。
                "id"
                ],
                "writeMode":"insert ignore",
                "batchSize":"1024",//一次性批量提交的記錄數(shù)大小。
                "table":"test",//表名。
                "preSql":[]//執(zhí)行數(shù)據(jù)同步任務之前執(zhí)行的SQL語句。
                },
            "name":"Writer",
            "category":"writer"
                }
                ],
    "setting":{
        "errorLimit":{
        "record":"0"http://錯誤記錄數(shù)。
            },
        "speed":{
            "throttle":true,//當throttle值為false時,mbps參數(shù)不生效,表示不限流;當throttle值為true時,表示限流。
            "concurrent":1, //作業(yè)并發(fā)數(shù)。
            "mbps":"12"http://限流,此處1mbps = 1MB/s。
                }
            },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
                }
            ]
        }
    }

Writer腳本參數(shù)

參數(shù)

描述

必選

默認值

datasource

數(shù)據(jù)源名稱,腳本模式支持添加數(shù)據(jù)源,該配置項填寫的內(nèi)容必須與添加的數(shù)據(jù)源名稱保持一致。

table

所選取的需要同步的表。

writeMode

選擇導入模式,包括insert ignorereplace into

  • insert ignore:當主鍵或約束沖突時,忽略來源數(shù)據(jù)。

  • replace into:當主鍵或約束沖突時,使用來源數(shù)據(jù)替換目標數(shù)據(jù)。

insert ignore

column

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

preSql

執(zhí)行數(shù)據(jù)同步任務之前率先執(zhí)行的SQL語句。目前向?qū)J絻H允許執(zhí)行一條SQL語句,腳本模式可以支持多條SQL語句。

例如delete * from table xxx;,表示同步寫入數(shù)據(jù)前清理xxx表的數(shù)據(jù)。請根據(jù)自身需求進行配置。

postSql

執(zhí)行數(shù)據(jù)同步任務之后執(zhí)行的SQL語句。目前向?qū)J絻H允許執(zhí)行一條SQL語句,腳本模式可以支持多條SQL語句。

例如delete * from table xxx where xx=xx;,表示同步數(shù)據(jù)后,刪除符合某條件的數(shù)據(jù)。請根據(jù)自身需求進行配置。

batchSize

一次性批量提交的記錄數(shù)大小,該值可以極大減少數(shù)據(jù)同步系統(tǒng)與DRDS(PolarDB-X 1.0)的網(wǎng)絡交互次數(shù),并提升整體吞吐量。如果該值設置過大,會導致數(shù)據(jù)同步運行進程OOM異常。

1,024