Elasticsearch數據源為您提供讀取和寫入Elasticsearch雙向通道的功能,本文為您介紹DataWorks的Elasticsearch數據同步的能力支持情況。
背景信息
Elasticsearch在公共資源組上支持Elasticsearch 5.x版本,在Serverless資源組(推薦)和獨享數據集成資源組上支持Elasticsearch 5.x、6.x、7.x和8.x版本。
Serverless資源組的詳情請參見新增和使用Serverless資源組。
獨享數據集成資源組的詳情請參見新增和使用獨享數據集成資源組。
Elasticsearch是遵從Apache開源條款的一款開源產品,是當前主流的企業級搜索引擎。Elasticsearch是一個基于Lucene的搜索和數據分析工具,它提供分布式服務。Elasticsearch核心概念同數據庫核心概念的對應關系如下所示。
Relational DB(實例)-> Databases(數據庫)-> Tables(表)-> Rows(一行數據)-> Columns(一行數據的一列)
Elasticsearch -> Index -> Types -> Documents -> Fields
Elasticsearch中可以有多個索引或數據庫,每個索引可以包括多個類型或表,每個類型可以包括多個文檔或行,每個文檔可以包括多個字段或列。Elasticsearch Writer插件使用Elasticsearch的Rest API接口,批量把從Reader讀入的數據寫入Elasticsearch中。
支持的版本
DataWorks平臺目前僅支持配置阿里云Elasticsearch 5.x、6.x、7.x和8.x版本數據源,不支持配置自建Elasticsearch數據源。
使用限制
離線讀寫
Elasticsearch Reader會獲取Server端shard信息用于數據同步,需要確保在任務同步中Server端的shards處于存活狀態,否則會存在數據不一致風險。
如果您使用的是6.x及以上版本,支持使用Serverless資源組(推薦)和獨享數據集成資源組。
不支持同步scaled_float類型的字段。
不支持同步字段中帶有關鍵字
$ref
的索引。
支持的字段類型
類型 | 離線讀(Elasticsearch Reader) | 離線寫(Elasticsearch Writer) | 實時寫 |
binary | 支持 | 支持 | 支持 |
boolean | 支持 | 支持 | 支持 |
keyword | 支持 | 支持 | 支持 |
constant_keyword | 不支持 | 不支持 | 不支持 |
wildcard | 不支持 | 不支持 | 不支持 |
long | 支持 | 支持 | 支持 |
integer | 支持 | 支持 | 支持 |
short | 支持 | 支持 | 支持 |
byte | 支持 | 支持 | 支持 |
double | 支持 | 支持 | 支持 |
float | 支持 | 支持 | 支持 |
half_float | 不支持 | 不支持 | 不支持 |
scaled_float | 不支持 | 不支持 | 不支持 |
unsigned_long | 不支持 | 不支持 | 不支持 |
date | 支持 | 支持 | 支持 |
date_nanos | 不支持 | 不支持 | 不支持 |
alias | 不支持 | 不支持 | 不支持 |
object | 支持 | 支持 | 支持 |
flattened | 不支持 | 不支持 | 不支持 |
nested | 支持 | 支持 | 支持 |
join | 不支持 | 不支持 | 不支持 |
integer_range | 支持 | 支持 | 支持 |
float_range | 支持 | 支持 | 支持 |
long_range | 支持 | 支持 | 支持 |
double_range | 支持 | 支持 | 支持 |
date_range | 支持 | 支持 | 支持 |
ip_range | 不支持 | 支持 | 支持 |
ip | 支持 | 支持 | 支持 |
version | 支持 | 支持 | 支持 |
murmur3 | 不支持 | 不支持 | 不支持 |
aggregate_metric_double | 不支持 | 不支持 | 不支持 |
histogram | 不支持 | 不支持 | 不支持 |
text | 支持 | 支持 | 支持 |
annotated-text | 不支持 | 不支持 | 不支持 |
completion | 支持 | 不支持 | 不支持 |
search_as_you_type | 不支持 | 不支持 | 不支持 |
token_count | 支持 | 不支持 | 不支持 |
dense_vector | 不支持 | 不支持 | 不支持 |
rank_feature | 不支持 | 不支持 | 不支持 |
rank_features | 不支持 | 不支持 | 不支持 |
geo_point | 支持 | 支持 | 支持 |
geo_shape | 支持 | 支持 | 支持 |
point | 不支持 | 不支持 | 不支持 |
shape | 不支持 | 不支持 | 不支持 |
percolator | 不支持 | 不支持 | 不支持 |
string | 支持 | 支持 | 支持 |
工作原理
Elasticsearch Reader的工作原理如下:
通過Elasticsearch的_searchscrollslice(即游標分片)方式實現,slice結合數據集成任務的task多線程分片機制使用。
根據Elasticsearch中的Mapping配置,轉換數據類型。
更多詳情請參見Elasticsearch官方文檔。
Elasticsearch Reader會獲取Server端shard信息用于數據同步,需要確保在任務同步中Server端的shards處于存活狀態,否則會存在數據不一致風險。
基本配置
實際運行時,請刪除下述代碼中的注釋。
{
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
},
"setting":{
"errorLimit":{
"record":"0" //錯誤記錄數。
},
"jvmOption":"",
"speed":{
"concurrent":3,//并發數
"throttle":true,//
"mbps":"12",//限流,此處1mbps = 1MB/s。
}
},
"steps":[
{
"category":"reader",
"name":"Reader",
"parameter":{
"column":[ //讀取列。
"id",
"name"
],
"endpoint":"", //服務地址。
"index":"", //索引。
"password":"", //密碼。
"scroll":"", //scroll標志。
"search":"", //查詢query參數,與Elasticsearch的query內容相同,使用_search api,重命名為search。
"type":"default",
"username":"" //用戶名。
},
"stepType":"elasticsearch"
},
{
"stepType": "elasticsearch",
"parameter": {
"column": [ //寫入列
{
"name": "id",
"type": "integer"
},
{
"name": "name",
"type": "text"
}
],
"index": "test", //寫入索引
"indexType": "", //寫入索引類型,es7不填
"actionType": "index", //寫入方式
"cleanup": false, //是否重建索引
"datasource": "test", //數據源名稱
"primaryKeyInfo": { //主鍵取值方式
"fieldDelimiterOrigin": ",",
"column": [
"id"
],
"type": "specific",
"fieldDelimiter": ","
},
"dynamic": false, //動態映射
"batchSize": 1024 //批量寫文檔數
},
"name": "Writer",
"category": "writer"
}
],
"type":"job",
"version":"2.0" //版本號。
}
高級功能
支持全量拉取
支持將Elasticsearch中一個文檔的所有內容拉取為一個字段。配置詳情請參見場景一:全量拉取。
支持提取半結構化到結構化數據
分類
描述
相關文檔
產生背景
Elasticsearch中的數據特征為字段不固定,且有中文名、數據使用深層嵌套的形式。為更好地方便下游業務對數據的計算和存儲需求,特推出從半結構化到結構化的轉換解決方案。
—
實現原理
將Elasticsearch獲取到的JSON數據,利用JSON工具的路徑獲取特性,將嵌套數據扁平化為一維結構的數據。然后將數據映射至結構化數據表中,拆分Elasticsearch復合結構數據至多個結構化數據表。
—
解決方案
JSON有嵌套的情況,通過path路徑來解決。
屬性
屬性.子屬性
屬性[0].子屬性
附屬信息有一對多的情況,需要進行拆表拆行處理,進行遍歷。
屬性[*].子屬性
數組歸并,一個字符串數組內容,歸并為一個屬性,并進行去重。
屬性[]
多屬性合一,將多個屬性合并為一個屬性。
屬性1,屬性2
多屬性選擇處理。
屬性1|屬性2
創建數據源
在進行數據同步任務開發時,您需要在DataWorks上創建一個對應的數據源,操作流程請參見創建并管理數據源,詳細的配置參數解釋可在配置界面查看對應參數的文案提示。
數據同步任務開發
數據同步任務的配置入口和通用配置流程可參見下文的配置指導。
單表離線同步任務配置指導
操作流程請參見通過向導模式配置離線同步任務、通過腳本模式配置離線同步任務。
腳本模式配置的全量參數和腳本Demo請參見下文的附錄一:腳本Demo與參數說明。
單表實時寫同步任務配置指導
操作流程請參見DataStudio側實時同步任務配置。
整庫離線寫、單表/整庫全增量實時寫同步任務配置指導
操作流程請參見數據集成側同步任務配置。
附錄一:腳本Demo與參數說明
離線任務腳本配置方式
如果您配置離線任務時使用腳本模式的方式進行配置,您需要按照統一的腳本格式要求,在任務腳本中編寫相應的參數,詳情請參見通過腳本模式配置離線同步任務,以下為您介紹腳本模式下數據源的參數配置詳情。
Reader腳本Demo
{
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
},
"setting":{
"errorLimit":{
"record":"0" //錯誤記錄數。
},
"jvmOption":"",
"speed":{
"concurrent":3,
"throttle":false
}
},
"steps":[
{
"category":"reader",
"name":"Reader",
"parameter":{
"column":[ //讀取列。
"id",
"name"
],
"endpoint":"http://es-cn-xxx.elasticsearch.aliyuncs.com:9200", //服務地址。
"index":"aliyun_es_xx", //索引。
"password":"*******", //密碼。
"multiThread":true,
"scroll":"5m", //scroll標志。
"pageSize":5000,
"connTimeOut":600000,
"readTimeOut":600000,
"retryCount":30,
"retrySleepTime":"10000",
"search":{
"range":{
"gmt_modified":{
"gte":0
}
}
}, //查詢query參數,與Elasticsearch的query內容相同,使用_search api,重命名為search。
"type":"doc",
"username":"aliyun_di" //用戶名。
},
"stepType":"elasticsearch"
},
{
"category":"writer",
"name":"Writer",
"parameter":{ },
"stepType":"stream"
}
],
"type":"job",
"version":"2.0" //版本號。
}
Reader腳本參數
參數 | 描述 | 是否必選 | 默認值 |
datasource | 數據源名稱,腳本模式支持添加數據源,該配置項填寫的內容必須與添加的數據源名稱保持一致。 | 是 | 無 |
index | Elasticsearch中的index名。 | 是 | 無 |
type | Elasticsearch中index的type名。 | 否 | index名 |
search | Elasticsearch的query參數。 | 是 | 無 |
pageSize | 每次讀取數據的條數。 | 否 | 100 |
scroll | Elasticsearch的分頁參數,設置游標存放時間。
| 是 | 無 |
strictMode | 以嚴格模式讀取Elasticsearch中的數據,當出現Elasticsearch的shard.failed時會停止讀取,避免讀取少數據。 | 否 | true |
sort | 返回結果的排序字段。 | 否 | 無 |
retryCount | 失敗后重試的次數。 | 否 | 300 |
connTimeOut | 客戶端連接超時時間。 | 否 | 600,000 |
readTimeOut | 客戶端讀取超時時間。 | 否 | 600,000 |
multiThread | http請求,是否有多線程。 | 否 | true |
preemptiveAuth | http是否使用搶先模式請求 | 否 | false |
retrySleepTime | 失敗后重試的時間間隔。 | 否 | 1000 |
discovery | 是否開啟節點發現。
| 否 | false |
compression | 是否使用GZIP壓縮請求正文,使用時需要在es節點上啟用http.compression設置。 | 否 | false |
dateFormat | 待同步字段存在date類型,且該字段mapping沒有format配置時,需要配置dateFormat參數。配置形式如下: | 否 | 無 |
full | 是否將全文檔內容作為一個字段同步至目標端,將Elasticsearch的查詢數據作為一個字段,配置詳情請參見場景一:全量拉取。 | 否 | 無 |
multi | 該配置是一個高級功能具有五種用法,兩個子屬性分別為 | 否 | 無 |
Writer腳本Demo
{
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
"concurrent":1, //作業并發數。
"mbps":"12"http://限流,此處1mbps = 1MB/s。
}
},
"steps": [
{
"category": "reader",
"name": "Reader",
"parameter": {
},
"stepType": "stream"
},
{
"category": "writer",
"name": "Writer",
"parameter": {
"datasource":"xxx",
"index": "test-1",
"type": "default",
"cleanup": true,
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"discovery": false,
"primaryKeyInfo":{
"type":"pk",
"fieldDelimiter":",",
"column":[]
},
"batchSize": 1000,
"dynamic":false,
"esPartitionColumn":[
{
"name":"col1",
"comment":"xx",
"type":"STRING"
}
],
"column": [
{
"name": "pk",
"type": "id"
},
{
"name": "col_ip",
"type": "ip"
},
{
"name": "col_array",
"type": "long",
"array": true,
},
{
"name": "col_double",
"type": "double"
},
{
"name": "col_long",
"type": "long"
},
{
"name": "col_integer",
"type": "integer"
{
"name": "col_keyword",
"type": "keyword"
},
{
"name": "col_text",
"type": "text",
"analyzer": "ik_max_word",
"other_params":
{
"doc_values": false
},
},
{
"name": "col_geo_point",
"type": "geo_point"
},
{
"name": "col_date",
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
{
"name": "col_nested1",
"type": "nested"
},
{
"name": "col_nested2",
"type": "nested"
},
{
"name": "col_object1",
"type": "object"
},
{
"name": "col_object2",
"type": "object"
},
{
"name": "col_integer_array",
"type": "integer",
"array": true
},
{
"name": "col_geo_shape",
"type": "geo_shape",
"tree": "quadtree",
"precision": "10m"
}
]
},
"stepType": "elasticsearch"
}
],
"type": "job",
"version": "2.0"
}
VPC環境的Elasticsearch運行在默認資源組會存在網絡不通的情況。您需要使用Serverless資源組(推薦)和獨享數據集成資源組,才能連通VPC進行數據同步。添加資源的詳情請參見Serverless資源組。
Writer腳本參數
參數 | 描述 | 是否必選 | 默認值 |
datasource | 選擇需要同步的Elasticsearch數據源,若還未在DataWorks創建該數據源,請先創建,詳情請參見配置Elasticsearch數據源。 | 是 | 無 |
index | Elasticsearch中的index名。 | 是 | 無 |
indexType | Elasticsearch中index的type名。 | 否 | Elasticsearch |
cleanup | 定義當前任務在索引index已存在的情況是否要刪除數據。
| 否 | false |
batchSize | 定義同步任務一次性插入ElasticSearch的Document條數。 | 否 | 1,000 |
trySize | 定義往ElasticSearch寫入數據失敗后的重試次數。 | 否 | 30 |
timeout | 客戶端超時時間。 | 否 | 600,000 |
discovery | 任務是否啟動節點發現功能。
| 否 | false |
compression | HTTP請求,開啟壓縮。 | 否 | true |
multiThread | HTTP請求,是否有多線程。 | 否 | true |
ignoreWriteError | 忽略寫入錯誤,不重試,繼續寫入。 | 否 | false |
ignoreParseError | 忽略解析數據格式錯誤,繼續寫入。 | 否 | true |
alias | Elasticsearch的別名類似于數據庫的視圖機制,為索引my_index創建一個別名my_index_alias,對my_index_alias的操作與my_index的操作一致。 配置alias表示在數據導入完成后,為指定的索引創建別名。 | 否 | 無 |
aliasMode | 數據導入完成后增加別名的模式,包括append(增加模式)和exclusive(只留這一個):
后續會轉換別名為實際的索引名稱,別名可以用來進行索引遷移和多個索引的查詢統一,并可以用來實現視圖的功能。 | 否 | append |
settings | 創建index時的settings,與Elasticsearch官方一致。 | 否 | 無 |
column | column用來配置文檔的多個字段Filed信息,具體每個字段項可以配置name(名稱)、type(類型)等基礎配置,以及Analyzer、Format和Array等擴展配置。 Elasticsearch所支持的字段類型如下所示。
列類型的說明如下:
如果需要在column中配置除了type以外的屬性值,您可以使用other_params參數,該參數配置在column中,在update mappings時,用于描述column中除了type以外的Elasticsearch屬性信息。
如果您希望源端數據寫入為Elasticsearch時按照數組類型寫入,您可按照JSON格式或指定分隔符的方式來解析源端數據。配置詳情請參見附錄二:ElasticSearch寫入的格式期望是數組類型。 | 是 | 無 |
dynamic | 定義當在文檔中發現未存在的字段時,同步任務是否通過Elasticsearch動態映射機制為字段添加映射。
Elasticsearch 7.x版本的默認type為_doc。使用Elasticsearch的自動mappings時,請配置_doc和esVersion為7。 您需要轉換為腳本模式,添加一個版本參數: | 否 | false |
actionType | 表示Elasticsearch在數據寫出時的action類型,目前數據集成支持index和update兩種actionType,默認值為index:
| 否 | index |
primaryKeyInfo | 定義當前寫入ElasticSearch的主鍵取值方式。
| 是 | specific |
esPartitionColumn | 定義寫入ElasticSearch時是否開啟分區,用于修改ElasticSearch中的routing的參數。
| 否 | false |
enableWriteNull | 該參數用于是否支持將來源端的空值字段同步至Elasticsearch。取值如下:
| 否 | true |
附錄二:ElasticSearch寫入的格式期望是數組類型
支持以下兩種方式將源端數據按照數組類型寫入ElasticSearch。
按JSON格式解析源端數據
例如:源端數據為
"[1,2,3,4,5]"
,配置json_array=true對其進行解析,同步將以數組格式寫入ElasticSearch。"parameter" : { { "name":"docs_1", "type":"keyword", "json_array":true } }
按分隔符解析源端數據
例如:源端數據為
"1,2,3,4,5"
, 配置分隔符splitter=","對其進行解析,同步將以數組格式寫入ElasticSearch。說明一個任務僅支持配置一種分隔符,splitter全局唯一,不支持多array字段配置為不同的分隔符。例如源端字段列col1="1,2,3,4,5" , col2="6-7-8-9-10", splitter無法針對每列單獨配置使用。
"parameter" : { "column": [ { "name": "docs_2", "array": true, "type": "long" } ], "splitter":","http://注意:splitter配置與column配置同級。 }
附錄三:場景示例
場景一:全量拉取
背景說明:將Elasticsearch中文檔查詢的結果拉取為一個字段。
配置示例:
## 讀端:Elasticsearch中的原始數據 "hits": [ { "_index": "mutiltest_1", "_type": "_doc", "_id": "IXgdO4MB4GR_1DmrjTXP", "_score": 1.0, "_source": { "feature1": "value1", "feature2": "value2", "feature3": "value3" } }] ##數據集成Elasticsearch Reader插件配置 "parameter": { "column": [ "content" ], "full":true } ##寫端結果:同步至目標端1行1列 {"_index":"mutiltest_1","_type":"_doc","_id":"IXgdO4MB4GR_1DmrjTXP","_source":{"feature1":"value1","feature2":"value2","feature3":"value3"},"sort":["IXgdO4MB4GR_1DmrjTXP"]}
場景二:嵌套或對象字段屬性同步
背景說明:Object對象或nested嵌套字段的屬性時,通過path路徑來解決。
配置形式:
屬性
屬性.子屬性
屬性[0].子屬性
腳本配置:
"multi":{ "multi":true }
說明向導模式暫不支持配置。
配置示例:
## 讀端:Elasticsearch中的原始數據 "hits": [ { "_index": "mutiltest_1", "_type": "_doc", "_id": "7XAOOoMB4GR_1Dmrrust", "_score": 1.0, "_source": { "level1": { "level2": [ { "level3": "testlevel3_1" }, { "level3": "testlevel3_2" } ] } } } ] ##數據集成Elasticsearch reader插件配置 "parameter": { "column": [ "level1", "level1.level2", "level1.level2[0]", "level1.level2.level3" ], "multi":{ "multi":true } } ##寫端結果:1行數據4列 column1(level1): {"level2":[{"level3":"testlevel3_1"},{"level3":"testlevel3_2"}]} column2(level1.level2): [{"level3":"testlevel3_1"},{"level3":"testlevel3_2"}] column3(level1.level2[0]): {"level3":"testlevel3_1"} column4(level1.level2.level3): null
說明獲取的節點上層有數組時結果為null,如上樣例獲取level1.level2.level3不會報錯,同步結果為null,需要配置為level1.level2[0].level3或level1.level2[1].level3,當前不支持level1.level2[*].level3。
不支持key出現"."的數據, 如"level1.level2":{"level3":"testlevel3_1"}, 此時該條數據獲取結果為null。
場景三:數組屬性拆分為多行
背景說明:附屬信息有一對多的情況,需要將數組列拆成多行。
配置形式:屬性[*].子屬性
效果示意:源端數據{ "splitKey" :[1,2,3,4,5]},拆完后寫到目標端為5行:{"splitKey[0]":1,"splitKey[1]":2,"splitKey[2]":3,"splitKey[3]":4,"splitKey[4]":5}
腳本配置:
"multi":{ "multi":true, "key": "headers" }
說明向導模式下配置拆多行數組列名,會自動生成腳本配置,具有相同效果。
value必須為List,否則會報錯。
配置示例:
## 讀端:Elasticsearch中的原始數據 [ { "_index": "lmtestjson", "_type": "_doc", "_id": "nhxmIYMBKDL4VkVLyXRN", "_score": 1.0, "_source": { "headers": [ { "remoteip": "192.0.2.1" }, { "remoteip": "192.0.2.2" } ] } }, { "_index": "lmtestjson", "_type": "_doc", "_id": "wRxsIYMBKDL4VkVLcXqf", "_score": 1.0, "_source": { "headers": [ { "remoteip": "192.0.2.3" }, { "remoteip": "192.0.2.4" } ] } } ] ##數據集成Elasticsearch reader插件配置 { "column":[ "headers[*].remoteip" ] "multi":{ "multi":true, "key": "headers" } } ##寫端結果:4行 192.0.2.1 192.0.2.2 192.0.2.3 192.0.2.4
場景四:數組屬性去重歸并
背景說明:數組去重歸并,將一個數組屬性去重歸并后寫入為字符串屬性,數組屬性可以為子屬性如name1.name2,去重采用tostring結果作為標準。
配置形式:屬性[]。
column里面帶有 [] 關鍵字就會認為對該屬性做去重歸并。
腳本配置:
"multi":{ "multi":true }
說明向導模式暫不支持配置。
配置示例:
## 讀端:Elasticsearch中的原始數據 "hits": [ { "_index": "mutiltest_1", "_type": "_doc", "_id": "4nbUOoMB4GR_1Dmryj8O", "_score": 1.0, "_source": { "feature1": [ "value1", "value1", "value2", "value2", "value3" ] } } ] ##數據集成Elasticsearch reader插件配置 "parameter": { "column":[ "feature1[]" ], "multi":{ "multi":true } } ##寫端結果:1行1列數據 "value1,value2,value3"
場景五:多屬性合一同步
背景說明:多屬性選擇處理,返回第一個有值的屬性,都不存在時將寫入null。
配置形式:屬性1|屬性2|...
column里面帶有 "|"關鍵字就會對該項做多屬性選擇。
腳本配置:
"multi":{ "multi":true }
說明向導模式暫不支持該配置。
配置示例:
##讀端:Elasticsearch中的原始數據 "hits": [ { "_index": "mutiltest_1", "_type": "_doc", "_id": "v3ShOoMB4GR_1DmrZN22", "_score": 1.0, "_source": { "feature1": "feature1", "feature2": [ 1, 2, 3 ], "feature3": { "child": "feature3" } } }] ##數據集成Elasticsearch reade插件配置 "parameter": { "column":[ "feature1|feature2|feature3" ], "multi":{ "multi":true } } ##寫端結果:1行1列數據 "feature1"
場景六:多屬性選擇同步
背景說明:多屬性選擇處理 ,返回第一個有值的屬性,都不存在時寫入null。
配置形式:屬性1|屬性2|...
column里面帶有 "|"關鍵字就會對該項做多屬性選擇
腳本配置:
"multi":{ "multi":true }
說明向導模式暫不支持該配置。
配置示例:
##讀端:Elasticsearch中的原始數據 "hits": [ { "_index": "mutiltest_1", "_type": "_doc", "_id": "v3ShOoMB4GR_1DmrZN22", "_score": 1.0, "_source": { "feature1": "feature1", "feature2": [ 1, 2, 3 ], "feature3": { "child": "feature3" } } }] ##數據集成Elasticsearch reader插件配置 "parameter": { "column":[ "feature1,feature2,feature3" ], "multi":{ "multi":true } } ##寫端結果:1行1列數據 "feature1,[1,2,3],{"child":"feature3"}"
相關文檔
數據集成支持其他更多數據源接入,更多信息,請參見支持的數據源及同步方案。