OSS資料來源為您提供讀取和寫入OSS的雙向通道,本文為您介紹DataWorks的OSS資料同步的能力支援情況。
支援的欄位類型與使用限制
離線讀
OSS Reader實現了從OSS讀取資料並轉為Data Integration協議的功能,OSS本身是無結構化資料存放區。對於Data Integration而言,OSS Reader支援的功能如下。
支援 | 不支援 |
|
|
準備OSS資料時,如果資料為CSV檔案,則必須為標準格式的CSV檔案。例如,如果列內容在半形引號(")內,需要替換成兩個半形引號(""),否則會造成檔案被錯誤分割。
OSS屬於非結構化資料來源,裡面存放的都是檔案類型資料,因此在使用同步時,需要先自行確認同步的欄位結構是否符合預期。同理,非結構化資料來源中資料結構發生變化時必須要在任務配置中重新確認欄位結構,否則可能會造成同步資料錯亂。
離線寫
OSS Writer實現了從資料同步協議轉為OSS中的文字檔功能,OSS本身是無結構化資料存放區,目前OSS Writer支援的功能如下。
支援 | 不支援 |
|
|
類型分類 | Data Integrationcolumn配置類型 |
整數類 | LONG |
字串類 | STRING |
浮點類 | DOUBLE |
布爾類 | BOOLEAN |
日期時間類 | DATE |
即時寫
支援即時寫入的能力。
支援即時寫入Hudi格式版本:0.12.x。
建立資料來源
在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源,詳細的配置參數解釋可在配置介面查看對應參數的文案提示。
跨帳號建立OSS資料來源時需對相應的帳號進行授權,詳情可參見:基於Bucket Policy實現跨帳號訪問OSS。
如您在配置OSS資料來源時使用RAM角色授權模式配置資料來源,詳情可參見通過RAM角色授權模式配置資料來源。
資料同步任務開發
資料同步任務的配置入口和通用配置流程可參見下文的配置指導。
單表離線同步任務配置指導
操作流程請參見通過嚮導模式配置離線同步任務、通過指令碼模式配置離線同步任務。
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:指令碼Demo與參數說明。
單表即時同步任務配置指導
操作流程請參見配置單表增量資料即時同步、DataStudio側即時同步任務配置。
整庫(即時)全增量同步處理配置指導
操作流程請參見Data Integration側同步任務配置。
常見問題
附錄:指令碼Demo與參數說明
離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要按照統一的指令碼格式要求,在任務指令碼中編寫相應的參數,詳情請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下資料來源的參數配置詳情。
Reader指令碼Demo:通用樣本
Reader指令碼Demo:ORC或Parquet檔案讀取OSS
Reader指令碼參數
Writer指令碼Demo:通用樣本
Writer指令碼Demo:ORC或Parquet檔案寫入OSS指令碼配置demo
Writer指令碼參數
附錄:parquet類型資料的轉化策略
如果您沒有配置parquetSchema,那麼DataWorks側會根據源端欄位類型,按照一定的策略進行相應資料類型轉換,轉換策略如下。
轉換後的資料類型 | Parquet type | Parquet logical type |
CHAR / VARCHAR / STRING | BINARY | UTF8 |
BOOLEAN | BOOLEAN | 不涉及 |
BINARY / VARBINARY | BINARY | 不涉及 |
DECIMAL | FIXED_LEN_BYTE_ARRAY | DECIMAL |
TINYINT | INT32 | INT_8 |
SMALLINT | INT32 | INT_16 |
INT/INTEGER | INT32 | 不涉及 |
BIGINT | INT64 | 不涉及 |
FLOAT | FLOAT | 不涉及 |
DOUBLE | DOUBLE | 不涉及 |
DATE | INT32 | DATE |
TIME | INT32 | TIME_MILLIS |
TIMESTAMP/DATETIME | INT96 | 不涉及 |