寬表模型是類Bigtable/HBase模型,可應用於中繼資料、巨量資料等多種情境,單表支援PB級資料存放區和千萬QPS。本文介紹如何通過命令列工具使用寬表模型。
前提條件
已建立執行個體。具體操作,請參見建立執行個體。
操作步驟
步驟一:配置接入執行個體資訊
通過config命令配置接入資訊。
執行前請使用您的執行個體Endpoint、執行個體名稱、AccessKey ID、AccessKey Secret替換命令中的endpoint、instance、id、key。
config --endpoint https://myinstance.cn-hangzhou.ots.aliyuncs.com --instance myinstance --id NTSVL******************** --key 7NR2****************************************
步驟二:建立並使用資料表
建立資料表並選擇要進行操作的資料表,以便進行後續表操作或者資料操作。
執行如下命令,建立order資料表。
create -t order --pk '[{"c":"id","t":"string"}]'
執行如下命令,使用order資料表。
use --wc -t order
更多資訊,請參見資料表操作。
步驟三:資料操作
根據需要進行資料操作,您可以寫入、更新、讀取、刪除或者匯出資料。
寫入資料
插入一行資料
以下樣本用於在資料表中插入一行資料。
put --pk '["000000114d884ca1dbd6b9a58e8d0d94"]' --attr '[{"c":"pBrand","v":"brand1"},{"c":"pPrice","v":1599.0},{"c":"payTime","v":1509615334404,"isint":true},{"c":"totalPrice","v":2498.99},{"c":"sName","v":"售周五"},{"c":"pId","v":"p0003004"},{"c":"oId","v":"o0039248410"},{"c":"hasPaid","v":true},{"c":"sId","v":"s0015"},{"c":"orderTime","v":1509614885965,"isint":true},{"c":"pName","v":"brand1 type"},{"c":"cName","v":"消馮八"},{"c":"pType","v":"手機"},{"c":"pCount","v":1,"isint":true},{"c":"cId","v":"c0018"}]'
匯入資料
下載範例資料壓縮包到本地並解壓,然後執行import命令大量匯入資料。
說明範例資料中總共包含100萬條訂單資料,可通過import -l參數自訂匯入行數。
以下樣本用於匯入範例資料檔案中的5萬條訂單資料到當前表,且使用目前時間作為時間戳記。其中yourFilePath表示範例資料壓縮包解壓後的路徑,例如
D:\\order_demo_data_1000000\\order_demo_data_1000000
。import -i yourFilePath --ignore_version -l 50000
輸出結果如下所示。
Current speed is: 15800 rows/s. Total succeed count 15800, failed count 0. Current speed is: 27400 rows/s. Total succeed count 43200, failed count 0. Import finished, total count is 50000, failed 0 rows.
更新資料
以下樣本用於更新主鍵列為“000000114d884ca1dbd6b9a58e8d0d94”的行資料。無論此行是否存在均會插入新資料,如果之前行已存在,則寫入資料時會覆蓋原有資料。
update --pk '["000000114d884ca1dbd6b9a58e8d0d94"]' --attr '[{"c":"pBrand","v":"brand2"},{"c":"pPrice","v":1599.0},{"c":"payTime","v":1509615334404,"isint":true},{"c":"totalPrice","v":2498.99},{"c":"sName","v":"售周五"},{"c":"pId","v":"p0003004"},{"c":"oId","v":"o0039248410"},{"c":"hasPaid","v":true},{"c":"sId","v":"s0015"},{"c":"orderTime","v":1509614885965,"isint":true},{"c":"pName","v":"brand2 type"},{"c":"cName","v":"消馮八"},{"c":"pType","v":"手機"},{"c":"pCount","v":1,"isint":true},{"c":"cId","v":"c0018"}]' --condition ignore
讀取資料
如需使用SQL查詢與分析表中資料,請參見SQL查詢。
讀取一行資料
以下樣本用於讀取主鍵列值為“000000114d884ca1dbd6b9a58e8d0d94”的行資料。
get --pk '["000000114d884ca1dbd6b9a58e8d0d94"]'
輸出結果如下所示。
+----------------------------------+-------+--------+---------+-------------+---------------+--------+--------+----------+-------------+--------+-------+---------------+-------+--------+------------+ | id | cId | cName | hasPaid | oId | orderTime | pBrand | pCount | pId | pName | pPrice | pType | payTime | sId | sName | totalPrice | +----------------------------------+-------+--------+---------+-------------+---------------+--------+--------+----------+-------------+--------+-------+---------------+-------+--------+------------+ | 000000114d884ca1dbd6b9a58e8d0d94 | c0018 | 消馮八 | true | o0039248410 | 1509614885965 | brand1 | 1 | p0003004 | brand1 type | 1599 | 手機 | 1509615334404 | s0015 | 售周五 | 2498.99 | +----------------------------------+-------+--------+---------+-------------+---------------+--------+--------+----------+-------------+--------+-------+---------------+-------+--------+------------+
掃描資料
以下樣本用於掃描擷取資料表中的最多10行資料。
scan --limit 10
刪除資料
以下樣本用於刪除主鍵列值為“000000114d884ca1dbd6b9a58e8d0d94”的行資料。
delete --pk '["000000114d884ca1dbd6b9a58e8d0d94"]'
匯出資料
匯出表中資料到本地JSON檔案中。
以下樣本用於匯出當前表中pId、oId和cName列的資料到本地檔案mydata.json。
scan -o /tmp/mydata.json -c pId,oId,cName
更多資訊,請參見資料操作。