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

MariaDB數(shù)據(jù)源

更新時(shí)間:

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

支持的MariaDB版本

離線讀寫

支持MariaDB 5.5.x、MariaDB 10.0.x、MariaDB 10.1.x、MariaDB 10.2.x、MariaDB 10.3.x版本,且離線同步支持讀取視圖表。

支持的字段類型

各版本MariaDB的全量字段類型請參見MariaDB官方文檔。以下以MariaDB 10.3.x為例,為您羅列當(dāng)前主要字段的支持情況。

字段類型

離線讀(MariaDB Reader)

離線寫(MariaDB Writer)

TINYINT

支持

支持

SMALLINT

支持

支持

INTEGER

支持

支持

BIGINT

支持

支持

FLOAT

支持

支持

DOUBLE

支持

支持

DECIMAL/NUMBERIC

支持

支持

REAL

不支持

不支持

VARCHAR

支持

支持

JSON

支持

支持

TEXT

支持

支持

MEDIUMTEXT

支持

支持

LONGTEXT

支持

支持

VARBINARY

支持

支持

BINARY

支持

支持

TINYBLOB

支持

支持

MEDIUMBLOB

支持

支持

LONGBLOB

支持

支持

ENUM

支持

支持

SET

支持

支持

BOOLEAN

支持

支持

BIT

支持

支持

DATE

支持

支持

DATETIME

支持

支持

TIMESTAMP

支持

支持

TIME

支持

支持

YEAR

支持

支持

LINESTRING

不支持

不支持

POLYGON

不支持

不支持

MULTIPOINT

不支持

不支持

MULTILINESTRING

不支持

不支持

MULTIPOLYGON

不支持

不支持

GEOMETRYCOLLECTION

不支持

不支持

數(shù)據(jù)同步前準(zhǔn)備:MariaDB環(huán)境準(zhǔn)備

在DataWorks上進(jìn)行數(shù)據(jù)同步前,您需要參考本文提前在MariaDB側(cè)進(jìn)行數(shù)據(jù)同步環(huán)境準(zhǔn)備,以便在DataWorks上進(jìn)行MariaDB數(shù)據(jù)同步任務(wù)配置與執(zhí)行時(shí)服務(wù)正常。以下為您介紹MariaDB同步前的相關(guān)環(huán)境準(zhǔn)備。

準(zhǔn)備工作1:確認(rèn)MariaDB版本

數(shù)據(jù)集成對MariaDB版本有要求,您可參考上文支持的MariaDB版本章節(jié),查看當(dāng)前待同步的MariaDB是否符合版本要求。您可以在MariaDB數(shù)據(jù)庫通過如下語句查看當(dāng)前MariaDB數(shù)據(jù)庫版本。

準(zhǔn)備工作2:配置賬號權(quán)限

建議您提前規(guī)劃并創(chuàng)建一個(gè)專用于DataWorks訪問數(shù)據(jù)源的MariaDB賬號,操作如下。

  1. 可選:創(chuàng)建賬號。

    操作詳情請參見創(chuàng)建MariaDB賬號

  2. 配置權(quán)限。

    • 在離線讀MariaDB數(shù)據(jù)時(shí),此賬號需擁有同步表的讀(SELECT)權(quán)限。

    • 在離線寫MariaDB數(shù)據(jù)時(shí),此賬號需擁有同步表的寫(INSERTDELETEUPDATE)權(quán)限。

  3. 您可以參考以下命令為賬號添加權(quán)限,或直接給賬號賦予SUPER權(quán)限。如下執(zhí)行語句在實(shí)際使用時(shí),請?zhí)鎿Q'同步賬號'上述創(chuàng)建的賬號。

    -- CREATE USER '同步賬號'@'%' IDENTIFIED BY '密碼'; //創(chuàng)建同步賬號并設(shè)置密碼,使其可以通過任意主機(jī)登錄數(shù)據(jù)庫。%表示任意主機(jī)。
    GRANT SELECT, INSERT, DELETE,UPDATE CLIENT ON *.* TO '同步賬號'@'%'; //授權(quán)同步賬號數(shù)據(jù)庫的 SELECT, INSERT, DELETE,UPDATE 權(quán)限。

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

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

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

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

單表離線同步任務(wù)配置指導(dǎo)

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

離線任務(wù)腳本配置方式

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

Reader腳本Demo

{
    "type":"job",
    "version":"2.0",//版本號。
    "steps":[
        {
            "stepType":"mariadb",//插件名。
            "parameter":{
                "column":[//列名。
                    "id"
                ],
                "connection":[
                    {   "querySql":["select a,b from join1 c join join2 d on c.id = d.id;"], //使用字符串的形式,將querySql寫在connection中。
                        "datasource":"",//數(shù)據(jù)源。
                        "table":[//表名,即使只有一張表,也必須以[]的數(shù)組形式書寫。
                            "xxx"
                        ]
                    }
                ],
                "where":"",//過濾條件。
                "splitPk":"",//切分鍵。
                "encoding":"UTF-8"http://編碼格式。
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"http://錯(cuò)誤記錄數(shù)。
        },
        "speed":{
            "throttle":true,//當(dāng)throttle值為false時(shí),mbps參數(shù)不生效,表示不限流;當(dāng)throttle值為true時(shí),表示限流。
            "concurrent":1,//作業(yè)并發(fā)數(shù)。
            "mbps":"12"http://限流,此處1mbps = 1MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Reader腳本參數(shù)

腳本參數(shù)名

描述

是否必選

默認(rèn)值

datasource

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

table

選取的需要同步的表名稱,一個(gè)數(shù)據(jù)集成任務(wù)只能同步數(shù)據(jù)到一張目標(biāo)表。

table用于配置范圍的高級用法示例如下:

  • 您可以通過配置區(qū)間讀取分庫分表,例如'table_[0-99]'表示讀取'table_0''table_1''table_2'直到'table_99'

  • 如果您的表數(shù)字后綴的長度一致,例如'table_000''table_001''table_002'直到'table_999',您可以配置為'"table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"]'

說明

任務(wù)會讀取匹配到的所有表,具體讀取這些表中column配置項(xiàng)指定的列。如果表不存在,或者讀取的列不存在,會導(dǎo)致任務(wù)失敗。

column

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

  • 支持列裁剪:列可以挑選部分列進(jìn)行導(dǎo)出。

  • 支持列換序:列可以不按照表schema信息順序進(jìn)行導(dǎo)出。

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

    • id為普通列名。

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

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

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

    • 關(guān)于null

  • " "表示空。

  • null表示null。

  • 'null'表示null這個(gè)字符串。

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

    • 2.3為浮點(diǎn)數(shù)。

    • true為布爾值。

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

splitPk

MariaDB Reader進(jìn)行數(shù)據(jù)抽取時(shí),如果指定splitPk,表示您希望使用splitPk代表的字段進(jìn)行數(shù)據(jù)分片,數(shù)據(jù)同步因此會啟動并發(fā)任務(wù)進(jìn)行數(shù)據(jù)同步,提高數(shù)據(jù)同步的效能。

  • 推薦splitPk用戶使用表主鍵,因?yàn)楸碇麈I通常情況下比較均勻,因此切分出來的分片也不容易出現(xiàn)數(shù)據(jù)熱點(diǎn)。

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

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

where

篩選條件,在實(shí)際業(yè)務(wù)場景中,往往會選擇當(dāng)天的數(shù)據(jù)進(jìn)行同步,將where條件指定為gmt_create>$bizdate

  • where條件可以有效地進(jìn)行業(yè)務(wù)增量同步。如果不填寫where語句,包括不提供wherekeyvalue,數(shù)據(jù)同步均視作同步全量數(shù)據(jù)。

  • 不可以將where條件指定為limit 10,這不符合MariaDB SQL where子句約束。

querySql(高級模式,向?qū)J讲恢С执藚?shù)的配置)

在部分業(yè)務(wù)場景中,where配置項(xiàng)不足以描述所篩選的條件,您可以通過該配置型來自定義篩選SQL。配置該項(xiàng)后,數(shù)據(jù)同步系統(tǒng)會忽略tablescolumnssplitPk配置項(xiàng),直接使用該項(xiàng)配置的內(nèi)容對數(shù)據(jù)進(jìn)行篩選。

例如,需要進(jìn)行多表join后同步數(shù)據(jù),使用select a,b from table_a join table_b on table_a.id = table_b.id。當(dāng)您配置querySql時(shí),MariaDB Reader直接忽略table、column、wheresplitPk條件的配置,querySql優(yōu)先級大于tablecolumnwheresplitPk選項(xiàng)。datasource通過它解析出用戶名和密碼等信息。

說明

querySql需要區(qū)分大小寫,例如,寫為querysql會不生效。

Writer腳本Demo

{
    "type":"job",
    "version":"2.0",//版本號。
    "steps":[ 
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"mariadb",//插件名。
            "parameter":{
                "postSql":[],//導(dǎo)入后的準(zhǔn)備語句。
                "datasource":"",//數(shù)據(jù)源。
                "column":[//列名。
                    "id",
                    "value"
                ],
                "writeMode":"insert",//寫入模式,您可以設(shè)置為insert、replace或update。
                "batchSize":1024,//一次性批量提交的記錄數(shù)大小。
                "table":"",//表名。
                "preSql":[ 
                     "delete from XXX;" //導(dǎo)入前的準(zhǔn)備語句。
                   ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{//錯(cuò)誤記錄數(shù)。
            "record":"0"
        },
        "speed":{
            "throttle":true,//當(dāng)throttle值為false時(shí),mbps參數(shù)不生效,表示不限流;當(dāng)throttle值為true時(shí),表示限流。
            "concurrent":1, //作業(yè)并發(fā)數(shù)。
            "mbps":"12"http://限流,控制同步的最高速率,防止對上游/下游數(shù)據(jù)庫讀取/寫入壓力過大,此處1mbps = 1MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Writer腳本參數(shù)

腳本參數(shù)名

描述

是否必選

默認(rèn)值

datasource

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

table

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

writeMode

選擇導(dǎo)入模式,支持insert into、on duplicate key update和replace into三種方式:

  • insert into:當(dāng)主鍵/唯一性索引沖突時(shí)會寫不進(jìn)去沖突的行,以臟數(shù)據(jù)的形式體現(xiàn)。如果您通過腳本模式配置任務(wù),請?jiān)O(shè)置writeMode為insert。

  • on duplicate key update:沒有遇到主鍵/唯一性索引沖突時(shí),與insert into行為一致。沖突時(shí)會用新行替換已經(jīng)指定的字段的語句,寫入數(shù)據(jù)至MariaDB。如果您通過腳本模式配置任務(wù),請?jiān)O(shè)置writeMode為update。

  • replace into:沒有遇到主鍵/唯一性索引沖突時(shí),與insert into行為一致。沖突時(shí)會先刪除原有行,再插入新行。即新行會替換原有行的所有字段。如果您通過腳本模式配置任務(wù),請?jiān)O(shè)置writeModereplace

insert into

column

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

preSql

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

說明

當(dāng)有多條SQL語句時(shí),不支持事務(wù)。

postSql

執(zhí)行數(shù)據(jù)同步任務(wù)之后執(zhí)行的SQL語句,目前向?qū)J絻H允許執(zhí)行一條SQL語句,腳本模式可以支持多條SQL語句。例如,加上某一個(gè)時(shí)間戳alter table tablename add colname timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

說明

當(dāng)有多條SQL語句時(shí),不支持事務(wù)。

batchSize

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

256

updateColumn

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