表格存储Tablestore提供了管理控制台、命令行工具(Tablestore CLI)和Tablestore SDK三种访问方式。通过命令行工具,您可以使用简单的命令体验表格存储服务。本文介绍了如何通过Tablestore CLI管理宽表模型(WideColumn)。

步骤一:下载并启动命令行工具

  1. 根据所用平台下载命令行工具。
    平台 下载地址
    Windows Windows10
    Linux
    macOS macOS
  2. 解压缩下载的工具包,进入命令行工具根目录后,根据所用平台选择相应方式启动命令行工具。
    • 对于Windows平台,双击ts.exe文件。
    • 对于Linux和Mac平台,执行./ts命令。
      说明 如果在Linux系统或者Mac系统下无可执行权限,请执行chmod 755 ts命令赋权后再启动命令行工具。
    启动界面如下所示。
    # Welcome to use Command Line Tool for Aliyun Tablestore. Current Version is '2021-11-11'.
    #    _______      _      _              _
    #   |__   __|    | |    | |            | |
    #      | |  __ _ | |__  | |  ___   ___ | |_   ___  _ __    ___
    #      | | / _' || '_ \ | | / _ \ / __|| __| / _ \ | '__| / _ \
    #      | || (_| || |_) || ||  __/ \__ \| |_ | (_) || |   |  __/
    #      |_| \__,_||_.__/ |_| \___| |___/ \__| \___/ |_|    \___|
    #
    # Please visit our product website: https://www.aliyun.com/product/ots
    # You can also join our DingTalk Chat Group (ID: 11789671 or 23307953) to discuss and ask Tablestore related questions.
    #
    tablestore>

步骤二:开通表格存储服务

如果已经开通表格存储服务,请跳过此操作。服务仅需开通一次,开通过程免费。

  1. 通过config命令配置AccessKey信息。
    重要 此处必须使用阿里云账号的AccessKey(包括AccessKey ID和AccessKey Secret)。关于获取AccessKey的具体操作,请参见获取AccessKey
    config --id NTSVLeBHzgX2iZfcaXXPJ**** --key 7NR2DiotscDbauohSq9kSHX8BDp99bjs7eNpCR7o****
  2. 执行enable_service命令,开通表格存储服务。

步骤三:创建实例

通过create_instance命令创建一个高性能实例。

执行以下命令,在华东1(杭州)地域创建myinstance实例,实例类型为高性能实例。
create_instance -d "First instance created by CLI." -n myinstance -r cn-hangzhou

步骤四:配置接入信息

通过config命令配置接入信息。

执行以下命令,使用已创建的myinstance实例配置接入信息。

config --endpoint https://myinstance.cn-hangzhou.ots.aliyuncs.com --instance myinstance --id NTSVLeBHzgX2iZfcaXXPJ**** --key 7NR2DiotscDbauohSq9kSHX8BDp99bjs7eNpCR7o****

步骤五:创建并使用数据表

创建数据表后,选择要进行操作的数据表,用于后续表操作或者数据操作。

  1. 执行以下命令,创建mytable数据表。
    create -t mytable --pk '[{"c":"uid", "t":"string"}, {"c":"pid", "t":"integer"}]'
  2. 执行use -t mytable命令,使用mytable数据表。

步骤六:数据操作

根据需要进行数据操作,您可以插入一行数据、更新一行数据、读取一行数据或者删除一行数据。

  • 插入一行数据
    在数据表中插入一行数据。该行的第一主键列值为“86”,第二主键列值为6771,属性列有name(string类型)和country(string类型)两列。
    put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'
  • 更新一行数据
    更新第一主键列为“86”,第二主键列为6771的行数据。无论此行是否存在均会插入新数据,如果之前行已存在,则写入数据时会覆盖原有数据。
    update --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'  --condition ignore
  • 读取一行数据
    读取第一主键列值为“86”,第二主键列值为6771的行数据。
    get --pk '["86",6771]'
  • 扫描数据
    扫描获取数据表中的最多10行数据。
    scan --limit 10
  • 删除一行数据
    删除第一主键列值为“86”,第二主键列值为6771的行数据。
    delete --pk '["86", 6771]'

步骤七:使用SQL查询数据

SQL查询兼容MySQL的查询语法,同时提供基础的SQL DDL建表能力。对于已有数据表,通过执行CREATE TABLE一键自动建立映射关系后,您可以使用SQL方式访问表中数据。

如果要使用SQL语句快速查询表中数据,请执行以下步骤:

  1. 执行sql命令,进入SQL模式。
  2. 执行以下命令,为mytable数据表绑定映射关系。
    说明 数据表与映射表的字段类型对应关系请参见数据类型映射
    CREATE TABLE `mytable` (
         `uid` VARCHAR(1024),
         `pid` BIGINT(20),
         `b` DOUBLE,
         `c` BOOL,
         `d` MEDIUMTEXT,
         PRIMARY KEY(`uid`,`pid`)
    );
  3. 执行以下命令,查询mytable表中所有数据。
    SELECT * FROM mytable;

如果要退出SQL模式,请执行exit;命令。