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

SQL Server數(shù)據(jù)源

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

支持的版本

SQL Server Reader使用驅(qū)動(dòng)版本是com.microsoft.sqlserver sqljdbc4 4.0,驅(qū)動(dòng)能力具體請(qǐng)參見官網(wǎng)文檔。該驅(qū)動(dòng)支持的SQL Server版本如下所示:

版本

支持性(是/否)

SQL Server 2016

SQL Server 2014

SQL Server 2012

PDW 2008R2 AU34

SQL Server 2008 R2

SQL Server 2008

SQL Server 2019

SQL Server 2018

Azure SQL Managed Instance

Azure Synapse Analytics

Azure SQL Database

使用限制

離線同步支持讀取視圖表。

支持的字段類型

SQL Server全量的字段類型請(qǐng)參見SQL Server幫助文檔。以下以SQL Server 2016為例,為您列舉常見的字段類型的支持情況。

sql server 2016字段類型

SQL Server Reader

SQL Server Writer

bigint

支持

支持

bit

支持

支持

decimal

支持

支持

int

支持

支持

money

支持

支持

numeric

支持

支持

smallint

支持

支持

smallmoney

支持

支持

tinyint

支持

支持

float

支持

支持

real

支持

支持

date

支持

支持

datetime2

支持

支持

datetime

支持

支持

datetimeoffset

不支持

不支持

smalldatetime

支持

支持

time

支持

支持

char

支持

支持

text

支持

支持

varchar

支持

支持

nchar

支持

支持

ntext

支持

支持

nvarchar

支持

支持

binary

支持

支持

image

支持

支持

varbinary

支持

支持

cursor

不支持

不支持

hierarchyid

不支持

不支持

sql_variant

支持

支持

Spatial Geometry Types

不支持

不支持

table

不支持

不支持

rowversion

不支持

不支持

uniqueidentifier

支持

支持

xml

支持

支持

Spatial Geography Types

不支持

不支持

SQL Server Reader和SQL Server Writer針對(duì)SQL Server的類型轉(zhuǎn)換列表,如下所示。

類型分類

SQL Server數(shù)據(jù)類型

整數(shù)類

BIGINT、INT、SMALLINT和TINYINT

浮點(diǎn)類

FLOAT、DECIMAL、REAL和NUMERIC

字符串類

CHAR、NCHAR、NTEXT、NVARCHAR、TEXT、VARCHAR、NVARCHAR(MAX)和VARCHAR(MAX)

日期時(shí)間類

DATE、DATETIME和TIME

布爾型

BIT

二進(jìn)制類

BINARY、VARBINARY、VARBINARY(MAX)和TIMESTAMP

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

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

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

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

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

整庫(kù)離線讀同步任務(wù)配置指導(dǎo)

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

常見問(wèn)題

  • 主備同步數(shù)據(jù)恢復(fù)問(wèn)題

    主備同步問(wèn)題指SQL Server使用主從災(zāi)備,備庫(kù)從主庫(kù)不間斷通過(guò)binlog恢復(fù)數(shù)據(jù)。由于主備數(shù)據(jù)同步存在一定的時(shí)間差,特別在于某些特定情況,例如網(wǎng)絡(luò)延遲等問(wèn)題,導(dǎo)致備庫(kù)同步恢復(fù)的數(shù)據(jù)與主庫(kù)有較大差別,從備庫(kù)同步的數(shù)據(jù)不是一份當(dāng)前時(shí)間的完整鏡像。

  • 一致性約束

    SQL Server在數(shù)據(jù)存儲(chǔ)劃分中屬于RDBMS系統(tǒng),對(duì)外可以提供強(qiáng)一致性數(shù)據(jù)查詢接口。例如一次同步任務(wù)啟動(dòng)運(yùn)行過(guò)程中,當(dāng)該庫(kù)存在其他數(shù)據(jù)寫入方寫入數(shù)據(jù)時(shí),由于數(shù)據(jù)庫(kù)本身的快照特性,SQL Server Reader完全不會(huì)獲取到寫入的更新數(shù)據(jù)。

    上述是在SQL Server Reader單線程模型下數(shù)據(jù)同步一致性的特性,SQL Server Reader可以根據(jù)您配置的信息使用并發(fā)數(shù)據(jù)抽取,因此不能嚴(yán)格保證數(shù)據(jù)一致性。

    當(dāng)SQL Server Reader根據(jù)splitPk進(jìn)行數(shù)據(jù)切分后,會(huì)先后啟動(dòng)多個(gè)并發(fā)任務(wù)完成數(shù)據(jù)同步。多個(gè)并發(fā)任務(wù)相互之間不屬于同一個(gè)讀事務(wù),同時(shí)多個(gè)并發(fā)任務(wù)存在時(shí)間間隔,因此這份數(shù)據(jù)并不是完整的、一致的數(shù)據(jù)快照信息。

    針對(duì)多線程的一致性快照需求,目前在技術(shù)上無(wú)法實(shí)現(xiàn),只能從工程角度解決。工程化的方式存在取舍,在此提供以下解決思路,您可以根據(jù)自身情況進(jìn)行選擇。

    • 使用單線程同步,即不再進(jìn)行數(shù)據(jù)切片。缺點(diǎn)是速度比較慢,但是能夠很好保證一致性。

    • 關(guān)閉其他數(shù)據(jù)寫入方,保證當(dāng)前數(shù)據(jù)為靜態(tài)數(shù)據(jù),例如鎖表、關(guān)閉備庫(kù)同步等。缺點(diǎn)是可能影響在線業(yè)務(wù)。

  • 數(shù)據(jù)庫(kù)編碼問(wèn)題

    SQL Server Reader底層使用JDBC進(jìn)行數(shù)據(jù)抽取,JDBC天然適配各類編碼,并在底層進(jìn)行了編碼轉(zhuǎn)換。因此SQL Server Reader不需您指定編碼,可以自動(dòng)獲取編碼并轉(zhuǎn)碼。

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

    SQL Server Reader使用JDBC SELECT語(yǔ)句完成數(shù)據(jù)抽取工作,因此您可以使用SELECT…WHERE…進(jìn)行增量數(shù)據(jù)抽取,方式如下:

    • 數(shù)據(jù)庫(kù)在線應(yīng)用寫入數(shù)據(jù)庫(kù)時(shí),填充modify字段為更改時(shí)間戳,包括新增、更新、刪除(邏輯刪除)。對(duì)于該類應(yīng)用,SQL Server Reader只需要where條件后跟上一同步階段時(shí)間戳即可。

    • 對(duì)于新增流水型數(shù)據(jù),SQL Server Reader在where條件后跟上一階段最大自增ID即可。

    對(duì)于業(yè)務(wù)上無(wú)字段區(qū)分新增、修改數(shù)據(jù)的情況,SQL Server Reader無(wú)法進(jìn)行增量數(shù)據(jù)同步,只能同步全量數(shù)據(jù)。

  • SQL安全性

    SQL Server Reader提供querySql語(yǔ)句交給您自己實(shí)現(xiàn)SELECT抽取語(yǔ)句,SQL Server Reader本身對(duì)querySql不進(jìn)行任何安全性校驗(yàn)。

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

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

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

Reader腳本Demo

{
    "type":"job",
    "version":"2.0",//版本號(hào)。
    "steps":[
        {
            "stepType":"sqlserver",//插件名。
            "parameter":{
                "datasource":"",//數(shù)據(jù)源。
                "column":[//字段。
                    "id",
                    "name"
                ],
                "where":"",//篩選條件。
                "splitPk":"",//如果指定splitPk,表示您希望使用splitPk代表的字段進(jìn)行數(shù)據(jù)分片。
                "table":""http://數(shù)據(jù)表。
            },
            "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",//限流,此處1mbps = 1MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

如果您想使用querySql查詢,Reader部分腳本代碼示例如下(SQL Server數(shù)據(jù)源是sql_server_source,待查詢的表是dbo.test_table,待查詢的列是name)。

{
    "stepType": "sqlserver",
    "parameter": {
        "querySql": "select name from dbo.test_table",
        "datasource": "sql_server_source",
        "column": [
            "name"
        ],
        "where": "",
        "splitPk": "id"
    },
    "name": "Reader",
    "category": "reader"
},

Reader腳本參數(shù)

參數(shù)

描述

是否必選

默認(rèn)值

datasource

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

無(wú)

table

選取的需要同步的表名稱,一個(gè)作業(yè)只能支持一個(gè)表同步。

無(wú)

column

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

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

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

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

    • id為普通列名。

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

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

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

    • 'null'為字符串。

    • to_char(a + 1)為函數(shù)表達(dá)式。

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

    • true為布爾值。

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

無(wú)

splitPk

SQL Server Reader進(jìn)行數(shù)據(jù)抽取時(shí),如果指定splitPk,表示您希望使用splitPk代表的字段進(jìn)行數(shù)據(jù)分片。數(shù)據(jù)同步系統(tǒng)因此會(huì)啟動(dòng)并發(fā)任務(wù)進(jìn)行數(shù)據(jù)同步,這樣可以提高數(shù)據(jù)同步的效能。

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

  • 目前splitPk僅支持整型數(shù)據(jù)切分,不支持字符串、浮點(diǎn)、日期等其他類型 。如果您指定其他非支持類型,SQL Server Reader將報(bào)錯(cuò)。

無(wú)

where

篩選條件,SQL Server Reader根據(jù)指定的columntablewhere條件拼接SQL,并根據(jù)該SQL進(jìn)行數(shù)據(jù)抽取。例如在測(cè)試時(shí),可以將where條件指定為limit 10。在實(shí)際業(yè)務(wù)場(chǎng)景中,往往會(huì)選擇當(dāng)天的數(shù)據(jù)進(jìn)行同步,將where條件指定為gmt_create > $bizdate

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

  • where條件為空,視作同步全表所有的信息。

無(wú)

querySql

使用格式:"querysql" : "查詢statement",在部分業(yè)務(wù)場(chǎng)景中,where配置項(xiàng)不足以描述所篩選的條件,您可以通過(guò)該配置型來(lái)自定義篩選SQL。當(dāng)配置此項(xiàng)后,數(shù)據(jù)同步系統(tǒng)就會(huì)忽略tables、columns配置項(xiàng),直接使用這項(xiàng)配置的內(nèi)容對(duì)數(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í),SQL Server Reader直接忽略columntablewhere條件的配置。

無(wú)

fetchSize

該配置項(xiàng)定義了插件和數(shù)據(jù)庫(kù)服務(wù)器端每次批量數(shù)據(jù)獲取條數(shù),該值決定了數(shù)據(jù)集成和服務(wù)器端的網(wǎng)絡(luò)交互次數(shù),能夠提升數(shù)據(jù)抽取性能。

說(shuō)明

fetchSize值過(guò)大(>2048)可能造成數(shù)據(jù)同步進(jìn)程OOM。

1024

  • 對(duì)于您配置的tablecolumnwhere等信息,SQL Server Reader將其拼接為SQL語(yǔ)句發(fā)送至SQL Server數(shù)據(jù)庫(kù)。

  • 對(duì)于您配置的querySql信息,SQL Server直接將其發(fā)送至SQL Server數(shù)據(jù)庫(kù)。

Writer腳本Demo

{
    "type":"job",
    "version":"2.0",//版本號(hào)。
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"sqlserver",//插件名。
            "parameter":{
                "postSql":[],//執(zhí)行數(shù)據(jù)同步任務(wù)之后率先執(zhí)行的SQL語(yǔ)句。
                "datasource":"",//數(shù)據(jù)源。
                "column":[//字段。
                    "id",
                    "name"
                ],
                "table":"",//表名。
                "preSql":[]//執(zhí)行數(shù)據(jù)同步任務(wù)之前率先執(zhí)行的SQL語(yǔ)句。
            },
            "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"
            }
        ]
    }
}

Writer腳本參數(shù)

參數(shù)

描述

是否必選

默認(rèn)值

datasource

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

無(wú)

table

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

無(wú)

column

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

無(wú)

preSql

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

無(wú)

postSql

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

無(wú)

writeMode

選擇導(dǎo)入模式,可以支持insert方式。 當(dāng)主鍵/唯一性索引沖突時(shí),數(shù)據(jù)集成視為臟數(shù)據(jù)但保留原有的數(shù)據(jù)。

insert

batchSize

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

1,024