全部產品
Search
文件中心

Tablestore:寬表模型快速入門

更新時間:Feb 08, 2025

寬表模型是類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****************************************

步驟二:建立並使用資料表

建立資料表並選擇要進行操作的資料表,以便進行後續表操作或者資料操作。

  1. 執行如下命令,建立order資料表。

    create -t order --pk '[{"c":"id","t":"string"}]'
  2. 執行如下命令,使用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

更多資訊,請參見資料操作

相關文檔

如需加速資料查詢,請使用二級索引或多元索引實現。更多資訊,請參見二級索引多元索引