資料操作
通過命令列工具插入、讀取、更新、刪除、掃描以及匯入匯出資料表中的資料。
前提條件
執行資料操作前,請先通過以下命令選定目標資料表。
use -t <tableName>
插入資料
在資料表中插入一行資料。
put --pk '<pk_values>' --attr '<attr_json>'
|
參數 |
必填 |
說明 |
|
-k,--pk |
是 |
資料表主鍵的值,以 JSON 數組表示。 重要
|
|
-a,--attr |
是 |
屬性列,以 JSON 數組表示。每個屬性列包含如下欄位:
|
|
--condition |
否 |
行存在性條件,支援條件更新。取值:
|
|
-i,--input |
否 |
通過 JSON 格式的設定檔插入資料。使用設定檔時,無需指定 --pk 和 --attr。 |
通過設定檔插入資料的命令格式:
Windows
put -i D:\\localpath\\filename.json
Linux 和 macOS
put -i /localpath/filename.json
設定檔樣本:
{
"PK":{
"Values":["86", 6771]
},
"Attr":{
"Values":[
{"C":"age", "V":32, "TS":1626860801604, "IsInt":true}
]
}
}
樣本
-
插入一行資料,第一主鍵列值為 "86",第二主鍵列值為 6771,屬性列有 name 和 country 兩列。
put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]' -
在行不存在時插入資料。
put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]' --condition not_exist
讀取資料
根據主鍵讀取一行資料。
如果讀取的資料行不存在,則返回結果為空白。
get --pk '<pk_values>'
|
參數 |
必填 |
說明 |
|
-k,--pk |
是 |
資料表主鍵的值,以 JSON 數組表示。設定的主鍵個數和類型必須和資料表的主鍵個數和類型一致。 |
|
-c,--columns |
否 |
讀取的列集合,列名可以是主鍵列或屬性列,多列以逗號分隔。不設定則返回整行資料。 |
|
--max_version |
否 |
最多讀取的版本數。 |
|
--time_range_start |
否 |
讀取版本號碼範圍內的資料。time_range_start 和 time_range_end 分別表示起始時間戳記和結束時間戳記,範圍為左閉右開區間。 |
|
--time_range_end |
否 |
|
|
--time_range_specific |
否 |
讀取特定版本號碼的資料。 |
|
-o,--output |
否 |
輸出查詢結果到本地檔案中。 |
樣本
讀取第一主鍵列值為 "86"、第二主鍵列值為 6771 的行資料。
get --pk '["86", 6771]'
更新資料
更新資料表中一行資料的屬性列。
update --pk '<pk_values>' --attr '<attr_json>'
|
參數 |
必填 |
說明 |
|
-k,--pk |
是 |
資料表主鍵的值,以 JSON 數組表示。設定的主鍵個數和類型必須和資料表的主鍵個數和類型一致。 |
|
--attr |
是 |
屬性列,以 JSON 數組表示。每個屬性列包含如下欄位:
|
|
--delete |
否 |
指定要刪除的屬性列名稱,需與 |
|
--condition |
否 |
行存在性條件,支援條件更新。取值:
|
|
-i,--input |
否 |
通過 JSON 格式的設定檔更新資料。使用設定檔時,無需指定 --pk 和 --attr。 |
通過設定檔更新資料的命令格式:
Windows
update -i D:\\localpath\\filename.json
Linux 和 macOS
update -i /localpath/filename.json
設定檔格式與插入資料一致。
樣本
-
更新第一主鍵列值為 "86"、第二主鍵列值為 6771 的行資料。
update --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]' --condition ignore -
刪除主索引值為 "abc" 的行中 aaa 屬性列。
update --pk '["abc"]' --delete aaa --attr '[]'
刪除資料
根據主鍵刪除一行資料。
delete --pk '<pk_values>'
|
參數 |
必填 |
說明 |
|
-k,--pk |
是 |
資料表主鍵的值,以 JSON 數組表示。設定的主鍵個數和類型必須和資料表的主鍵個數和類型一致。 |
樣本
刪除第一主鍵列值為 "86"、第二主鍵列值為 6771 的行資料。
delete --pk '["86", 6771]'
掃描資料
掃描擷取資料表中所有資料或指定行數的資料。
scan --limit <n>
|
參數 |
必填 |
說明 |
|
--limit |
否 |
本次掃描返回的最大行數。不設定則掃描整表所有資料。 |
樣本
掃描擷取資料表中最多 10 行資料。
scan --limit 10
匯出資料
匯出資料表中的資料到本地 JSON 檔案。
scan -o /localpath/filename.json
|
參數 |
必填 |
說明 |
|
-o,--output |
是 |
匯出資料到指定的本地檔案路徑。 |
|
-c,--columns |
否 |
匯出的列集合,列名可以是主鍵列或屬性列,多列以逗號分隔。不設定則匯出整行資料。 |
|
--max_version |
否 |
最多匯出的版本數。 |
|
--time_range_start |
否 |
匯出版本號碼範圍內的資料。time_range_start 和 time_range_end 分別表示起始時間戳記和結束時間戳記,範圍為左閉右開區間。 |
|
--time_range_end |
否 |
|
|
--time_range_specific |
否 |
匯出特定版本號碼的資料。 |
|
--backward |
否 |
匯出資料按照主鍵降序排列。 |
|
-l,--limit |
否 |
本次匯出最多返回的行數。 |
|
-b,--begin |
否 |
匯出範圍的起始點和結束點,主鍵範圍為左閉右開區間。 說明
|
|
-e,--end |
否 |
樣本
-
匯出當前表中全部資料到本地檔案 mydata.json。
scan -o /tmp/mydata.json -
匯出 uid 和 name 列的資料。
scan -o /tmp/mydata.json -c uid,name -
匯出指定主鍵範圍內的資料。
scan -o /tmp/mydata.json -b '["86", 6771]' -e '["86", 6775]'
匯入資料
匯入本地 JSON 檔案中的資料到資料表中。
如果本地 JSON 檔案所在路徑中存在漢字,則匯入資料時會出錯。
import -i /localpath/filename.json
|
參數 |
必填 |
說明 |
|
-a,--action |
否 |
匯入資料的模式。取值:
|
|
-i,--input |
是 |
JSON 格式的本機資料檔案路徑。 重要
|
|
--ignore_version |
否 |
忽略時間戳記檢查,使用目前時間作為時間戳記。 |
資料檔案格式(每行一條 JSON 記錄):
{"PK":{"Values":["redchen",0]},"Attr":{"Values":[{"C":"country","V":"china0"},{"C":"name","V":"redchen0"}]}}
{"PK":{"Values":["redchen",1]},"Attr":{"Values":[{"C":"country","V":"china1"},{"C":"name","V":"redchen1"}]}}
樣本
-
匯入 mydata.json 檔案的資料到當前表。
import -i /tmp/mydata.json -
匯入資料並使用目前時間作為時間戳記。
import -i /tmp/mydata.json --ignore_version