閱讀738 返回首頁    go 阿裏雲


DRDSWriter__Writer插件_使用手冊_數據集成-阿裏雲

1 快速介紹

DRDSWriter 插件實現了寫入數據到 DRDS 的目的表的功能。在底層實現上, DRDSWriter 通過 JDBC 連接遠程 DRDS 數據庫的 Proxy,並執行相應的 replace into ... 的 sql 語句將數據寫入 DRDS,特別注意執行的 Sql 語句是 replace into,為了避免數據重複寫入,需要你的表具備主鍵或者唯一性索引(Unique Key)。

DRDSWriter 麵向ETL開發工程師,他們使用 DRDSWriter 從數倉導入數據到 DRDS。同時 DRDSWriter 亦可以作為數據遷移工具為DBA等用戶提供服務。

2 實現原理

DRDSWriter 通過 CDP 框架獲取 Reader 生成的協議數據,通過 replace into...(沒有遇到主鍵/唯一性索引衝突時,與 insert into 行為一致,衝突時會用新行替換原有行所有字段) 的語句寫入數據到 DRDS。DRDSWriter 累積一定數據,提交給 DRDS 的 Proxy,該 Proxy 內部決定數據是寫入一張還是多張表以及多張表寫入時如何路由數據。 注意:整個任務至少需要具備 replace into...的權限,是否需要其他權限,取決於你任務配置中在 preSql 和 postSql 中指定的語句。

3 功能說明

3.1 配置樣例
  • 配置一個寫入DRDS的作業。
{
    "type": "job",
    "traceId": "您可以在這裏填寫您作業的追蹤ID,建議使用業務名+您的作業ID",
    "version": "1.0",
    "configuration": {
        "reader": {
            "plugin": "sqlserver",
            "parameter": {
                "instanceName": "rds.aliyun.com",
                "username": "username",
                "password": "password",
                "table": "table",
                "column": [
                    "*"
                ],
                "where": "1 = 1"
            }
        },
        "writer": {
            "plugin": "drds",
            "parameter": {
                "writeMode": "replace",
                "jdbcUrl": "jdbc:mysql://ip:port/database",
                "username": "username",
                "password": "password",
                "table": "table",
                "column": [
                    "*"
                ],
                "preSql": [
                    "delete from XXX;"
                ]
            }
        }
    }
}
3.2 參數說明
  • jdbcUrl
    • 描述:jdbc連接信息,使用mysql的jdbc協議格式填寫內容。
    • 必選:是
    • 默認值:無
  • username
    • 描述:數據源的用戶名
    • 必選:是
    • 默認值:無
  • password
    • 描述:數據源指定用戶名的密碼
    • 必選:是
    • 默認值:無
  • table
    • 描述:所選取的需要同步的表。
    • 必選:是
    • 默認值:無
  • writeMode
    • 描述: 選擇導入模式,可以支持replace/insert ignore方式,
      • replace指沒有遇到主鍵/唯一性索引衝突時,與 insert行為一致,當主鍵/唯一性索引衝突時會用新行替換原有行所有字段。
      • insert ignore指當主鍵/唯一性索引衝突,CDP將直接忽略更新丟棄,並且不記錄!
    • 必選:否
    • 默認值:insert
  • column
    • 描述:所配置的表中需要同步的列名集合。以英文逗號(,)進行分隔。我們強烈不推薦用戶使用默認列情況
    • 必選:是
    • 默認值:無
  • preSql
    • 描述:執行數據同步任務之前率先執行的sql語句,目前隻允許執行一條SQL語句,例如清除舊數據。
    • 必選:否
    • 默認值:無
  • postSql
    • 描述:執行數據同步任務之後執行的sql語句,目前隻允許執行一條SQL語句,例如加上某一個時間戳。
    • 必選:否
    • 默認值:無
  • batchSize
    • 描述:一次性批量提交的記錄數大小,該值可以極大減少CDP與Mysql的網絡交互次數,並提升整體吞吐量。但是該值設置過大可能會造成CDP運行進程OOM情況。
    • 必選:否
    • 默認值:1024
3.3 類型轉換

目前 DRDSWriter 支持大部分 Mysql 類型,但也存在部分個別類型沒有支持的情況,請注意檢查你的類型。

下麵列出 DRDSWriter 針對 DRDS 類型轉換列表:

CDP 內部類型 DRDS 數據類型
Long int, tinyint, smallint, mediumint, int, bigint, year
Double float, double, decimal
String varchar, char, tinytext, text, mediumtext, longtext
Date date, datetime, timestamp, time
Boolean bit, bool
Bytes tinyblob, mediumblob, blob, longblob, varbinary

最後更新:2016-11-23 16:03:59

  上一篇:go OTSWriter__Writer插件_使用手冊_數據集成-阿裏雲
  下一篇:go OSSWriter__Writer插件_使用手冊_數據集成-阿裏雲