DataWorksData Integration支援使用OpenSearch Writer將資料寫至OpenSearch,本文為您介紹DataWorks的OpenSearch資料離線寫入能力。
支援的版本
V3版本使用二方包,依賴pom為:com.aliyun.opensearch aliyun-sdk-opensearch 2.1.3。
如果您需要使用OpenSearchWriter外掛程式,請務必使用JDK 1.6-32及以上版本,您可以使用
java -version
查看Java版本號碼。
使用限制
OpenSearch Writer支援使用Serverless資源群組(推薦)和獨享Data Integration資源群組,不支援使用自訂資源群組。
OpenSearch的列是無序的,因此OpenSearch Writer寫入時,需嚴格按照指定的列的順序寫入。如果指定的列比OpenSearch的列少,則其餘列使用預設值或null。
例如,您需要匯入的欄位列表有b、c兩個欄位,但OpenSearch表中的欄位有a、b、c三列,在列配置中可以寫為"column":["c","b"],表示會把Reader的第一列和第二列匯入OpenSearch的c欄位和b欄位,而OpenSearch表中新插入的a欄位會被置為預設值或null。
當前僅支援使用指令碼模式將離線資料寫入OpenSearch。
支援的欄位類型
OpenSearch Writer支援大部分OpenSearch類型,請注意檢查您的資料類型。OpenSearch Writer針對OpenSearch類型的轉換列表,如下所示。
類型分類 | OpenSearch資料類型 |
整數類 | INT |
浮點類 | DOUBLE和FLOAT |
字串類 | TEXT、LITERAL和SHORT_TEXT |
日期時間類 | INT |
布爾類 | LITERAL |
資料同步任務開發
資料同步任務的配置入口和通用配置流程可參見下文的配置指導。
操作流程請參見通過指令碼模式配置離線同步任務。
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:指令碼Demo與參數說明。
常見問題
列配置錯誤的處理
為保證寫入資料的可靠性,避免多餘列資料丟失造成資料品質故障。對於寫入多餘的列,OpenSearch Writer將報錯。例如OpenSearch表欄位為a、b、c,如果OpenSearch Writer寫入的欄位多於3列,OpenSearch Writer將報錯。
表配置注意事項
OpenSearch Writer一次只能寫入一個表。
任務重跑和Failover
重跑後會自動根據ID覆蓋。所以插入OpenSearch的列中,必須有一個ID,該ID是OpenSearch的一行記錄的唯一標識。唯一標識一樣的資料,會被覆蓋掉。
附錄:指令碼Demo與參數說明
離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要按照統一的指令碼格式要求,在任務指令碼中編寫相應的參數,詳情請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下資料來源的參數配置詳情。