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

DB2數據源

DB2數據源作為數據中樞,為您提供讀取和寫入DB2數據庫的雙向通道,能夠快速解決海量數據的計算問題。本文為您介紹DataWorks的DB2數據同步的能力支持情況。

支持的版本

DB2 Reader和DB2 Writer使用的DB2驅動版本為IBM Data Server Driver for JDBC and SQLJ 4.11.77。DB2驅動和數據庫服務之間的版本映射請參見官網文檔。

使用限制

  • DB2 Reader和DB2 Writer支持使用Serverless資源組獨享數據集成資源組,不支持使用公共資源組自定義資源組。

  • DB2 Writer通過數據同步框架獲取Reader生成的協議數據,通過insert into(當主鍵/唯一性索引沖突時,沖突的行會寫不進去)語句,寫入數據至DB2。另外出于性能考慮采用了PreparedStatement + Batch,并且設置了rewriteBatchedStatements=true,將數據緩沖到線程上下文Buffer中,當Buffer累計到預定閾值時,才發起寫入請求。

    說明

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

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

  • 目前不支持DB2 AES加密算法。

支持的字段類型

離線讀寫

DB2 Reader和DB2 Writer支持大部分DB2類型,但也存在個別類型未被支持的情況,請注意檢查您的數據類型。

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

類型分類

DB2數據類型

整數類

SMALLINT

浮點類

DECIMAL、REAL和DOUBLE

字符串類

CHAR、CHARACTER、VARCHAR、GRAPHIC、VARGRAPHIC、LONG VARCHAR、CLOB、LONG VARGRAPHIC和DBCLOB

日期時間類

DATE、TIME和TIMESTAMP

布爾類

二進制類

BLOB

創建數據源

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

數據同步任務開發

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

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

整庫離線讀同步配置指導

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

常見問題

  • 主備同步數據恢復問題

    主備同步問題指DB2使用主從災備,備庫從主庫不間斷通過binlog恢復數據。由于主備數據同步存在一定的時間差,特別在網絡延遲等情況下,會導致備庫同步恢復的數據不是一份當前時間的完整鏡像,與主庫有較大差別。

  • 一致性約束

    DB2在數據存儲劃分中屬于RDBMS系統,對外可以提供強一致性數據查詢接口。例如,一次同步任務啟動運行過程中,有其它數據源寫入數據至該庫。由于數據庫本身的快照特性,DB2 Reader完全不會獲取到寫入的更新數據。

    上述是在DB2 Reader單線程模型下數據同步一致性的特性,DB2 Reader可以根據您配置信息并發抽取數據,因此不能嚴格保證數據的一致性。

    DB2 Reader根據splitPk切分數據后,會先后啟動多個并發任務完成數據同步。多個并發任務不屬于同一個讀事務且存在時間間隔。對于原始數據而言,多并發讀取的快照數據可能存在不完整、不一致的情況。

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

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

    • 關閉其他數據寫入方,保證當前數據為靜態數據,例如鎖表、關閉備庫同步等。缺點是可能影響在線業務。

  • 數據庫編碼問題

    DB2 Reader底層使用JDBC進行數據抽取,JDBC天然適配各類編碼,并在底層進行了編碼轉換。因此DB2 Reader不需您指定編碼,可以自動識別編碼并轉碼。

  • 增量數據同步的方式

    DB2 Reader使用JDBC SELECT語句完成數據抽取工作,因此可以使用SELECT…WHERE…進行增量數據抽取,方式如下:

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

    • 對于新增流水型數據,DB2 Reader在where條件后跟上一階段最大自增ID即可。

    對于業務上無字段區分新增、修改數據的情況,DB2 Reader無法進行增量數據同步,只能同步全量數據。

  • SQL安全性

    DB2 Reader提供querySql語句交給您自己實現SELECT抽取語句,DB2 Reader本身對querySql不進行任何安全性校驗。

附錄:腳本Demo與參數說明

離線任務腳本配置方式

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

Reader腳本Demo

{
    "type":"job",
    "version":"2.0",//版本號
    "steps":[
        {
            "stepType":"db2",//插件名
            "parameter":{
                "password":"",//密碼
                "jdbcUrl":"",//DB2數據庫的JDBC連接信息
                "column":[
                    "id"
                ],
                "where":"",//篩選條件。
                "splitPk":"",//數據分片
                "table":"",//表名 
                "username":""http://用戶名
            },
            "name":"Reader",
            "category":"reader"
        },
        { 
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"http://錯誤記錄數
        },
        "speed":{
             "throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
             "concurrent":1 //作業并發數。
             "mbps":"12"http://限流,此處1mbps = 1MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Reader腳本參數

參數

描述

是否必選

默認值

datasource

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

jdbcUrl

描述的是到DB2數據庫的JDBC連接信息,jdbcUrl按照DB2官方規范,DB2格式為jdbc:db2://ip:port/database,并可以填寫連接附件控制信息。

username

數據源的用戶名。

password

數據源指定用戶名的密碼。

table

所選取的需要同步的表,一個作業只能支持一個表同步。

column

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

  • 支持列裁剪,即可以導出部分列。

  • 支持列換序,即可以不根據表Schema信息順序導出列。

  • 支持常量配置,您需要遵循DB2的SQL語法格式。例如,["id", "1", "'const name'", "null", "upper('abc_lower')", "2.3" , "true"]

    • id為普通列名。

    • 1為整型數字常量。

    • 'const name'為字符串常量(需要加上一對單引號)。

    • null為空指針。

    • upper(‘abc_lower’)為函數表達式。

    • 2.3為浮點數。

    • true為布爾值。

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

splitPk

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

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

  • 目前splitPk僅支持整型數據切分,不支持浮點、字符串和日期等其它類型。如果您指定其它非支持類型,DB2 Reader將報錯。

""

where

篩選條件,DB2 Reader根據指定的columntablewhere條件拼接SQL,并根據該SQL抽取數據。

在實際業務場景中,通常會選擇當天的數據進行同步,可以指定where條件為gmt_create>$bizdate。where條件可以有效地進行業務增量同步。如果該值為空,代表同步全表所有的信息。

querySql

在部分業務場景中,where配置項不足以描述所篩選的條件,您可以通過該配置型來自定義篩選SQL。當您配置該項后,數據同步系統會忽略tablecolumn等配置,直接使用該配置項的內容篩選數據。

例如,您需要在多表Join后同步數據,使用select a,b from table_a join table_b on table_a.id = table_b.id。當您配置querySql時,DB2 Reader直接忽略table、column、where條件的配置。

fetchSize

該配置項定義了插件和數據庫服務器端每次批量數據獲取條數,該值決定了數據同步系統和服務器端的網絡交互次數,能夠較大的提升數據抽取性能。

說明

fetchSize值過大(>2048)可能造成數據同步進程OOM。

1024

Writer腳本Demo

{
    "type":"job",
    "version":"2.0",//版本號。
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"db2",//插件名。
            "parameter":{
                "postSql":[],//執行數據同步任務之后率先執行的SQL語句。
                "password":"",//密碼。
                "jdbcUrl":"jdbc:db2://ip:port/database",//DB2數據庫的JDBC連接信息。
                "column":[
                    "id"
                ],
                "batchSize":1024,//一次性批量提交的記錄數大小。
                "table":"",//表名。
                "username":"",//用戶名。
                "preSql":[]//執行數據同步任務之前執行的SQL語句。
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"http://錯誤記錄數。
        },
        "speed":{
            "throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
            "concurrent":1, //作業并發數。
            "mbps":"12"http://限流,此處1mbps = 1MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Writer腳本參數

參數

描述

是否必選

默認值

jdbcUrl

描述的是到DB2數據庫的JDBC連接信息,JDBC URL遵循DB2官方規范。DB2格式為jdbc:db2://ip:port/database,您還可以填寫連接附件控制信息。

username

數據源的用戶名 。

password

數據源指定用戶名的密碼 。

table

所選取的需要同步的表 。

column

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

preSql

執行數據同步任務之前率先執行的SQL語句,目前僅允許執行一條SQL語句,例如清除舊數據。

postSql

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

batchSize

一次性批量提交的記錄數大小,該值可以極大減少數據同步系統與Db2的網絡交互次數,并提升整體吞吐量。如果該值設置過大,會導致數據同步運行進程OOM異常。

1024