日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

數(shù)據(jù)表操作

數(shù)據(jù)表主要用于數(shù)據(jù)的存儲(chǔ)與查詢(xún)。創(chuàng)建數(shù)據(jù)表后,您可以根據(jù)實(shí)際管理數(shù)據(jù)表,例如獲取實(shí)例中的所有表名稱(chēng)、查詢(xún)數(shù)據(jù)表的配置信息、更新數(shù)據(jù)表的配置信息等。

注意事項(xiàng)

  • 主鍵自增列功能和局部事務(wù)功能不能同時(shí)使用。如果創(chuàng)建數(shù)據(jù)表時(shí)配置了主鍵自增列,則開(kāi)啟局部事務(wù)的配置會(huì)不生效。

  • 創(chuàng)建成功的數(shù)據(jù)表不能立刻提供讀寫(xiě)服務(wù)。通常在建表成功后一分鐘左右,即可對(duì)新創(chuàng)建的表進(jìn)行讀寫(xiě)操作。

  • 單個(gè)實(shí)例最多可以創(chuàng)建64張數(shù)據(jù)表。

功能概述

表格存儲(chǔ)提供了CreateTableListTableUpdateTableDescribeTableDeleteTable的表操作接口。

使用表格存儲(chǔ)存儲(chǔ)數(shù)據(jù)前,您需要通過(guò)調(diào)用CreateTable接口創(chuàng)建一個(gè)數(shù)據(jù)表。

創(chuàng)建數(shù)據(jù)表時(shí),您需要指定數(shù)據(jù)表的結(jié)構(gòu)信息以及根據(jù)實(shí)際使用所需功能。其中數(shù)據(jù)表的結(jié)構(gòu)信息包括數(shù)據(jù)表名稱(chēng)、主鍵定義以及預(yù)定義列配置。

  • 為數(shù)據(jù)表配置最大版本數(shù)和數(shù)據(jù)生命周期。更多信息,請(qǐng)參見(jiàn)數(shù)據(jù)版本和生命周期

  • 對(duì)于CU模式(原按量模式)下的高性能實(shí)例,為數(shù)據(jù)表配置預(yù)留讀/寫(xiě)吞吐量。更多信息,請(qǐng)參見(jiàn)預(yù)留讀/寫(xiě)吞吐量

  • 同時(shí)創(chuàng)建一個(gè)或者多個(gè)索引表。更多信息,請(qǐng)參見(jiàn)二級(jí)索引介紹

    使用二級(jí)索引時(shí),需要在創(chuàng)建數(shù)據(jù)表時(shí)預(yù)先定義一些非主鍵列以及其類(lèi)型,作為索引表的索引列或者屬性列。您也可以在創(chuàng)建數(shù)據(jù)表后新增或者刪除預(yù)定義列。

  • 為數(shù)據(jù)表開(kāi)啟數(shù)據(jù)加密。更多信息,請(qǐng)參見(jiàn)數(shù)據(jù)加密

  • 系統(tǒng)默認(rèn)允許通過(guò)UpdateRow更新寫(xiě)入數(shù)據(jù)到數(shù)據(jù)表。如果后續(xù)要使用多元索引生命周期,則必須禁止通過(guò)UpdateRow更新寫(xiě)入數(shù)據(jù)。您也可以在創(chuàng)建數(shù)據(jù)表后修改表的是否允許更新?tīng)顟B(tài)。

  • 為數(shù)據(jù)表開(kāi)啟局部事務(wù)。更多信息,請(qǐng)參見(jiàn)局部事務(wù)

    如果創(chuàng)建數(shù)據(jù)表時(shí)未開(kāi)啟局部事務(wù)功能,創(chuàng)建數(shù)據(jù)表后需要使用該功能,請(qǐng)提交工單進(jìn)行申請(qǐng)。

    重要

    僅Java SDK 5.11.0及以上版本支持為數(shù)據(jù)表開(kāi)啟局部事務(wù)。

  • 為數(shù)據(jù)表配置主鍵列自增。更多信息,請(qǐng)參見(jiàn)主鍵列自增

創(chuàng)建數(shù)據(jù)表后,您可以根據(jù)實(shí)際需要執(zhí)行相應(yīng)操作。

操作

說(shuō)明

列出表名稱(chēng)

調(diào)用ListTable接口獲取當(dāng)前實(shí)例下已創(chuàng)建的所有表名稱(chēng)。

更新表信息

調(diào)用UpdateTable接口修改配置信息(TableOptions)、預(yù)留讀吞吐量、預(yù)留寫(xiě)吞吐量(ReservedThroughput)或者是否允許更新?tīng)顟B(tài)。

查詢(xún)表描述信息

調(diào)用DescribeTable接口查詢(xún)指定表的結(jié)構(gòu)、預(yù)留讀/寫(xiě)吞吐量詳情等信息。

刪除數(shù)據(jù)表

調(diào)用DeleteTable接口刪除當(dāng)前實(shí)例下指定數(shù)據(jù)表。

重要
  • 刪除數(shù)據(jù)表會(huì)導(dǎo)致表不可用,且表數(shù)據(jù)不可恢復(fù),請(qǐng)謹(jǐn)慎操作。

  • 刪除數(shù)據(jù)表前,請(qǐng)確保已刪除數(shù)據(jù)表的二級(jí)索引、多元索引和數(shù)據(jù)投遞任務(wù)。

管理預(yù)定義列

預(yù)定義列用于作為索引表的索引列或者屬性列。

使用二級(jí)索引時(shí),如果未設(shè)置預(yù)定義列或者預(yù)定義列不滿(mǎn)足需求,您可以為數(shù)據(jù)表增加預(yù)定義列。

添加預(yù)定義列后,如果不再需要某些預(yù)定義列,您可以刪除預(yù)定義列。

使用方式

使用控制臺(tái)

通過(guò)表格存儲(chǔ)控制臺(tái)執(zhí)行如下操作創(chuàng)建數(shù)據(jù)表。

  1. 登錄表格存儲(chǔ)控制臺(tái)

  2. 在頁(yè)面上方,選擇資源組和地域。

  3. 概覽頁(yè)面,單擊實(shí)例名稱(chēng)或在實(shí)例操作列單擊實(shí)例管理

  4. 實(shí)例詳情頁(yè)簽,單擊創(chuàng)建數(shù)據(jù)表

  5. 創(chuàng)建數(shù)據(jù)表對(duì)話(huà)框,配置數(shù)據(jù)表名稱(chēng)表主鍵,其他參數(shù)請(qǐng)根據(jù)實(shí)際場(chǎng)景進(jìn)行配置。

    說(shuō)明

    關(guān)于參數(shù)配置的更多信息,請(qǐng)參見(jiàn)通過(guò)控制臺(tái)創(chuàng)建數(shù)據(jù)表

    • 如果要使用自增主鍵列功能,請(qǐng)?jiān)谂渲帽碇麈I時(shí),將非分區(qū)鍵的主鍵列選擇為自增列

    • 如果要使用多元索引生命周期功能,請(qǐng)將是否允許更新設(shè)置為

    • 如果要進(jìn)行數(shù)據(jù)落盤(pán)加解密,請(qǐng)打開(kāi)是否加密開(kāi)關(guān),然后根據(jù)實(shí)際需要選擇加密類(lèi)型KMS服務(wù)主密鑰BYOK自定義密鑰。更多信息,請(qǐng)參見(jiàn)數(shù)據(jù)加密

    • 如果要?jiǎng)?chuàng)建本地二級(jí)索引或者全局二級(jí)索引,請(qǐng)打開(kāi)創(chuàng)建二級(jí)索引開(kāi)關(guān)并添加預(yù)定義列,然后添加二級(jí)索引。

    • 如果要為數(shù)據(jù)表配置數(shù)據(jù)生命周期等,請(qǐng)打開(kāi)高級(jí)設(shè)置開(kāi)關(guān)并配置數(shù)據(jù)生命周期、最大版本數(shù)、數(shù)據(jù)有效版本偏差、預(yù)留讀吞吐量或者預(yù)留寫(xiě)吞吐量。

  6. 單擊確定

創(chuàng)建數(shù)據(jù)表后,請(qǐng)根據(jù)實(shí)際需要執(zhí)行相應(yīng)操作管理數(shù)據(jù)表。

操作

說(shuō)明

列出表名稱(chēng)

數(shù)據(jù)表列表頁(yè)簽,查看實(shí)例內(nèi)的所有表名稱(chēng)。

更新表信息

  1. 數(shù)據(jù)表列表頁(yè)簽,單擊數(shù)據(jù)表名稱(chēng)。

  2. 基本詳情頁(yè)簽的基本信息區(qū)域,單擊修改表屬性

  3. 修改表屬性對(duì)話(huà)框,根據(jù)需要修改數(shù)據(jù)生命周期、最大版本數(shù)、數(shù)據(jù)有效版本偏差、是否允許更新。

  4. 單擊確定

查詢(xún)表描述信息

  1. 數(shù)據(jù)表列表頁(yè)簽,單擊數(shù)據(jù)表名稱(chēng)。

  2. 基本詳情頁(yè)簽,查看表信息。

    基本信息區(qū)域,您可以查看表的名稱(chēng)、最大版本數(shù)、數(shù)據(jù)生命周期、數(shù)據(jù)有效版本偏差、是否允許更新等信息;在高級(jí)功能區(qū)域,您可以查看表主鍵列表、預(yù)定義列信息等。

管理預(yù)定義列

  1. 數(shù)據(jù)表列表頁(yè)簽,單擊數(shù)據(jù)表名稱(chēng)。

  2. 基本詳情頁(yè)簽的高級(jí)功能區(qū)域,單擊添加預(yù)定義列

  3. 添加預(yù)定義列對(duì)話(huà)框,單擊添加預(yù)定義列,然后填寫(xiě)預(yù)定義列名稱(chēng)和選擇字段類(lèi)型。

  4. 單擊確定

添加預(yù)定義列后,在基本詳情頁(yè)簽的高級(jí)功能區(qū)域,單擊預(yù)定義列對(duì)應(yīng)的image.png圖標(biāo),然后在刪除預(yù)定義列對(duì)話(huà)框中單擊確定

刪除數(shù)據(jù)表

  1. 數(shù)據(jù)表列表頁(yè)簽,單擊數(shù)據(jù)表操作列的image.png圖標(biāo),然后單擊刪除

  2. 刪除數(shù)據(jù)表對(duì)話(huà)框,確認(rèn)表信息正確,單擊刪除

使用命令行工具

通過(guò)命令行工具執(zhí)行create命令創(chuàng)建數(shù)據(jù)表。更多信息,請(qǐng)參見(jiàn)創(chuàng)建表

以下示例用于創(chuàng)建名稱(chēng)為mytable的數(shù)據(jù)表,該數(shù)據(jù)表有uid(string類(lèi)型)和pid(integer類(lèi)型)兩個(gè)主鍵列,表中數(shù)據(jù)永不過(guò)期。

create -t mytable --pk '[{"c":"uid", "t":"string"}, {"c":"pid", "t":"integer"}]'

執(zhí)行表操作前,您需要執(zhí)行use命令選擇要使用的表。更多信息,請(qǐng)參見(jiàn)使用表

以下示例用于使用mytable數(shù)據(jù)表。

use --wc -t mytable

創(chuàng)建并使用數(shù)據(jù)表后,請(qǐng)根據(jù)實(shí)際需要執(zhí)行相應(yīng)操作管理數(shù)據(jù)表。

操作

說(shuō)明

列出表名稱(chēng)

執(zhí)行list命令列出表名稱(chēng)。更多信息,請(qǐng)參見(jiàn)列出表名稱(chēng)

以下示例用于列出所有數(shù)據(jù)表名稱(chēng)。

list -w

更新表信息

執(zhí)行alter命令更新表信息。更多信息,請(qǐng)參見(jiàn)更新表

以下示例用于修改mytable數(shù)據(jù)表的數(shù)據(jù)生命周期為86400秒(即1天),最大版本數(shù)為1,且預(yù)留讀CU和預(yù)留寫(xiě)CU均為0。

alter -t mytable --ttl 86400 --version 1 --read_cu 0 --write_cu 0

查詢(xún)表描述信息

執(zhí)行desc命令查看表描述信息。更多信息,請(qǐng)參見(jiàn)查看表信息

以下示例用于查看當(dāng)前表的描述信息。

desc

刪除數(shù)據(jù)表

執(zhí)行drop命令刪除不需要的表。更多信息,請(qǐng)參見(jiàn)刪除表

以下示例用于刪除mytable表。

drop -t mytable -y

使用SDK

您可以使用Java SDKGo SDKPython SDKNode.js SDK.NET SDKPHP SDK創(chuàng)建數(shù)據(jù)表以及管理數(shù)據(jù)表。此處以Java SDK為例介紹數(shù)據(jù)表的創(chuàng)建和管理。

重要

不同SDK支持的功能可能存在不同,請(qǐng)以實(shí)際為準(zhǔn)。

請(qǐng)根據(jù)實(shí)際場(chǎng)景選擇合適示例進(jìn)行數(shù)據(jù)表創(chuàng)建。

創(chuàng)建表時(shí)不帶索引

以下示例用于創(chuàng)建數(shù)據(jù)表。該表的主鍵為pk(String類(lèi)型),屬性列值最多保留3個(gè)版本數(shù)據(jù)以及數(shù)據(jù)永不過(guò)期。

private static void createTable(SyncClient client) {
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    //為數(shù)據(jù)表添加主鍵列。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk", PrimaryKeyType.STRING)); 
    //數(shù)據(jù)的過(guò)期時(shí)間,單位為秒,-1表示永不過(guò)期。帶索引表的數(shù)據(jù)表數(shù)據(jù)生命周期必須設(shè)置為-1。
    int timeToLive = -1; 
    //保存的最大版本數(shù),1表示每列上最多保存一個(gè)版本即保存最新的版本。帶索引表的數(shù)據(jù)表最大版本數(shù)必須設(shè)置為1。
    int maxVersions = 3; 
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
        
    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
    request.setReservedThroughput(new ReservedThroughput(new CapacityUnit(0, 0))); //設(shè)置預(yù)留讀寫(xiě)吞吐量,容量型實(shí)例中的數(shù)據(jù)表只能設(shè)置為0,高性能實(shí)例中的數(shù)據(jù)表可以設(shè)置為非零值。
    client.createTable(request);
}

創(chuàng)建表時(shí)配置全局二級(jí)索引

以下示例用于同時(shí)創(chuàng)建數(shù)據(jù)表和全局二級(jí)索引。該表包含pk1(String類(lèi)型)和pk2(Integer類(lèi)型)兩列主鍵且包含defcol1(String類(lèi)型)和defcol2(Integer類(lèi)型)兩個(gè)預(yù)定義列,屬性列值只保留最新版本數(shù)據(jù)以及數(shù)據(jù)永不過(guò)期。該全局二級(jí)索引的主鍵列為defcol1、pk1和pk2,屬性列為defcol2。

private static void createTable(SyncClient client) {
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    //為數(shù)據(jù)表添加主鍵列。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk1", PrimaryKeyType.STRING)); 
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk2", PrimaryKeyType.INTEGER)); 
    //為數(shù)據(jù)表添加預(yù)定義列。
    tableMeta.addDefinedColumn(new DefinedColumnSchema("defcol1", DefinedColumnType.STRING)); 
    tableMeta.addDefinedColumn(new DefinedColumnSchema("defcol2", DefinedColumnType.INTEGER)); 
    //數(shù)據(jù)的過(guò)期時(shí)間,單位為秒,-1表示永不過(guò)期。帶索引表的數(shù)據(jù)表數(shù)據(jù)生命周期必須設(shè)置為-1。
    int timeToLive = -1; 
    //保存的最大版本數(shù),1表示每列上最多保存一個(gè)版本即保存最新的版本。帶索引表的數(shù)據(jù)表最大版本數(shù)必須設(shè)置為1。
    int maxVersions = 1; 
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);

    ArrayList<IndexMeta> indexMetas = new ArrayList<IndexMeta>();
    //設(shè)置索引表名稱(chēng)。
    IndexMeta indexMeta = new IndexMeta("<INDEX_NAME>");
    //為索引表添加主鍵列。
    indexMeta.addPrimaryKeyColumn("defcol1"); 
    //為索引表添加屬性列。
    indexMeta.addDefinedColumn("defcol2"); 
    indexMetas.add(indexMeta);

    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions, indexMetas); //創(chuàng)建數(shù)據(jù)表的同時(shí)創(chuàng)建索引表。

    client.createTable(request);
}

創(chuàng)建表時(shí)配置本地二級(jí)索引

以下示例用于同時(shí)創(chuàng)建數(shù)據(jù)表和本地二級(jí)索引。該表的主鍵為pk1(String類(lèi)型)和pk2(Integer類(lèi)型)且包括defcol1(String類(lèi)型)和defcol2(Integer類(lèi)型)兩個(gè)預(yù)定義列,屬性列值只保留最新版本數(shù)據(jù)以及數(shù)據(jù)永不過(guò)期。該本地二級(jí)索引的主鍵列為pk1、defcol1和pk2,屬性列為defcol2。

private static void createTable(SyncClient client) {
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    //為數(shù)據(jù)表添加主鍵列。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk1", PrimaryKeyType.STRING)); 
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk2", PrimaryKeyType.INTEGER)); 
    //為數(shù)據(jù)表添加預(yù)定義列。
    tableMeta.addDefinedColumn(new DefinedColumnSchema("defcol1", DefinedColumnType.STRING)); 
    tableMeta.addDefinedColumn(new DefinedColumnSchema("defcol2", DefinedColumnType.INTEGER)); 
    //數(shù)據(jù)的過(guò)期時(shí)間,單位為秒,-1表示永不過(guò)期。帶索引表的數(shù)據(jù)表數(shù)據(jù)生命周期必須設(shè)置為-1。
    int timeToLive = -1; 
    //保存的最大版本數(shù),1表示每列上最多保存一個(gè)版本即保存最新的版本。帶索引表的數(shù)據(jù)表最大版本數(shù)必須設(shè)置為1。
    int maxVersions = 1; 
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);

    ArrayList<IndexMeta> indexMetas = new ArrayList<IndexMeta>();
    //設(shè)置索引表名稱(chēng)。
    IndexMeta indexMeta = new IndexMeta("<INDEX_NAME>");
    //設(shè)置索引類(lèi)型為本地二級(jí)索引(IT_LOCAL_INDEX)。
    indexMeta.setIndexType(IT_LOCAL_INDEX); 
    //設(shè)置索引更新模式為同步更新(IUM_SYNC_INDEX)。當(dāng)索引類(lèi)型為本地二級(jí)索引時(shí),索引更新模式必須為同步更新。
    indexMeta.setIndexUpdateMode(IUM_SYNC_INDEX);  
    //為索引表添加主鍵列。索引表的第一列主鍵必須與數(shù)據(jù)表的第一列主鍵相同。
    indexMeta.addPrimaryKeyColumn("pk1"); 
    //為索引表添加主鍵列。
    indexMeta.addPrimaryKeyColumn("defcol1"); 
    //為索引表添加屬性列。
    indexMeta.addDefinedColumn("defcol2"); 
    indexMetas.add(indexMeta);

    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions, indexMetas); //創(chuàng)建數(shù)據(jù)表的同時(shí)創(chuàng)建索引表。

    client.createTable(request);
}

創(chuàng)建表時(shí)開(kāi)啟局部事務(wù)

以下示例用于創(chuàng)建數(shù)據(jù)表時(shí)開(kāi)啟局部事務(wù)功能。該表的主鍵為pk1(String類(lèi)型)和pk2(Integer類(lèi)型),屬性列值只保留最新版本數(shù)據(jù)以及數(shù)據(jù)永不過(guò)期。

private static void createTable(SyncClient client) {
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    //為數(shù)據(jù)表添加主鍵列。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk1", PrimaryKeyType.STRING));
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk2", PrimaryKeyType.INTEGER));
    //數(shù)據(jù)的過(guò)期時(shí)間,單位為秒,-1表示永不過(guò)期。帶索引表的數(shù)據(jù)表數(shù)據(jù)生命周期必須設(shè)置為-1。
    int timeToLive = -1; 
    //保存的最大版本數(shù),1表示每列上最多保存一個(gè)版本即保存最新的版本。帶索引表的數(shù)據(jù)表最大版本數(shù)必須設(shè)置為1。
    int maxVersions = 1; 
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);

    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
    //開(kāi)啟局部事務(wù)。當(dāng)為數(shù)據(jù)表配置了主鍵自增列時(shí),此配置無(wú)效。
    request.setLocalTxnEnabled(true); 

    client.createTable(request);
}

創(chuàng)建基于KMS服務(wù)密鑰加密的表

以下示例用于創(chuàng)建數(shù)據(jù)表時(shí)使用基于KMS服務(wù)密鑰加密表中數(shù)據(jù)。該表的主鍵為pk(String類(lèi)型),屬性列值只保留最新版本數(shù)據(jù)以及數(shù)據(jù)永不過(guò)期。

private static void createTable(SyncClient client) {
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    //如果要配置表加密,需要對(duì)建表請(qǐng)求配置加密相關(guān)參數(shù),支持KMS服務(wù)密鑰或BYOK自定義密鑰兩種類(lèi)型。此處為使用KMS服務(wù)密鑰。
    SSESpecification sseKms = new SSESpecification(true, SSEKeyType.SSE_KMS_SERVICE);
    //為數(shù)據(jù)表添加主鍵列。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk", PrimaryKeyType.STRING)); 
    //數(shù)據(jù)的過(guò)期時(shí)間,單位為秒,-1表示永不過(guò)期。帶索引表的數(shù)據(jù)表數(shù)據(jù)生命周期必須設(shè)置為-1。
    int timeToLive = -1; 
    //保存的最大版本數(shù),1表示每列上最多保存一個(gè)版本即保存最新的版本。帶索引表的數(shù)據(jù)表最大版本數(shù)必須設(shè)置為1。
    int maxVersions = 1; 
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
    //設(shè)置預(yù)留讀寫(xiě)吞吐量,容量型實(shí)例中的數(shù)據(jù)表只能設(shè)置為0,高性能實(shí)例中的數(shù)據(jù)表可以設(shè)置為非零值。
    request.setReservedThroughput(new ReservedThroughput(new CapacityUnit(0, 0))); 
    request.setSseSpecification(sseKms);
    client.createTable(request);
}

創(chuàng)建帶有主鍵自增列的表

以下示例用于創(chuàng)建數(shù)據(jù)表時(shí)配置主鍵自增列。該表的主鍵為pk1(String類(lèi)型)和pk2(Integer類(lèi)型),其中pk1主鍵列為分區(qū)鍵,pk2主鍵列為自增列。

private static void createTable(SyncClient client) {
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    //為數(shù)據(jù)表添加主鍵列。第一列為分區(qū)鍵。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk1", PrimaryKeyType.STRING));
    //為數(shù)據(jù)表添加主鍵列。第二列為自增列,類(lèi)型為INTEGER,屬性為AUTO_INCREMENT。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk2", PrimaryKeyType.INTEGER, PrimaryKeyOption.AUTO_INCREMENT));
    //數(shù)據(jù)的過(guò)期時(shí)間,單位為秒,-1表示數(shù)據(jù)永不過(guò)期。
    int timeToLive = -1;  
    //保存的最大版本數(shù),1表示每列上最多保存一個(gè)版本即保存最新的版本。
    int maxVersions = 1; 
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
    client.createTable(request);
}

創(chuàng)建數(shù)據(jù)表后,請(qǐng)根據(jù)實(shí)際需要執(zhí)行相應(yīng)操作管理數(shù)據(jù)表。

列出表名稱(chēng)

以下示例用于列出實(shí)例內(nèi)所有表名稱(chēng)。

private static void listTable(SyncClient client) {
    ListTableResponse response = client.listTable();
    System.out.println("表的列表如下:");
    for (String tableName : response.getTableNames()) {
        System.out.println(tableName);
    }
}

更新表數(shù)據(jù)

以下示例用于更新exampletable數(shù)據(jù)表的最大版本數(shù)為5。

private static void updateTable(SyncClient client) {
    //數(shù)據(jù)的過(guò)期時(shí)間,單位為秒,-1表示數(shù)據(jù)永不過(guò)期。
    int timeToLive = -1;
    //將最大版本數(shù)更新為5。
    int maxVersions = 5; 
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    UpdateTableRequest request = new UpdateTableRequest("<TABLE_NAME>");
    request.setTableOptionsForUpdate(tableOptions);
    client.updateTable(request);
}

查詢(xún)表描述信息

以下示例用于查詢(xún)數(shù)據(jù)表的表結(jié)構(gòu)信息、可選配置信息和預(yù)留吞吐量信息。

private static void describeTable(SyncClient client) {
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    DescribeTableRequest request = new DescribeTableRequest("<TABLE_NAME>");
    DescribeTableResponse response = client.describeTable(request);
    TableMeta tableMeta = response.getTableMeta();
    System.out.println("表的名稱(chēng):" + tableMeta.getTableName());
    System.out.println("表的主鍵:");
    for (PrimaryKeySchema primaryKeySchema : tableMeta.getPrimaryKeyList()) {
        System.out.println(primaryKeySchema);
    }
    TableOptions tableOptions = response.getTableOptions();
    System.out.println("表的TTL:" + tableOptions.getTimeToLive());
    System.out.println("表的MaxVersions:" + tableOptions.getMaxVersions());
    //只能查看加密表的加密配置信息。非加密表無(wú)此配置項(xiàng)。
    //System.out.println("表的加密配置:" + response.getSseDetails());
    ReservedThroughputDetails reservedThroughputDetails = response.getReservedThroughputDetails();
    System.out.println("表的預(yù)留讀吞吐量:"
            + reservedThroughputDetails.getCapacityUnit().getReadCapacityUnit());
    System.out.println("表的預(yù)留寫(xiě)吞吐量:"
            + reservedThroughputDetails.getCapacityUnit().getWriteCapacityUnit());
}

管理預(yù)定義列

以下示例用于為數(shù)據(jù)表增加預(yù)定義列,預(yù)定義列分別為definedColumnName01(String類(lèi)型)、definedColumnName02(Integer類(lèi)型)和definedColumnName03(String類(lèi)型)。

public static void addDefinedColumnRequest(SyncClient client) {
    AddDefinedColumnRequest addDefinedColumnRequest = new AddDefinedColumnRequest();
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    addDefinedColumnRequest.setTableName("<TABLE_NAME>");
    //為數(shù)據(jù)表添加預(yù)定義列。
    addDefinedColumnRequest.addDefinedColumn("definedColumnName01",DefinedColumnType.STRING);
    addDefinedColumnRequest.addDefinedColumn("definedColumnName02",DefinedColumnType.INTEGER);
    addDefinedColumnRequest.addDefinedColumn("definedColumnName03",DefinedColumnType.STRING);
    client.addDefinedColumn(addDefinedColumnRequest);
}

如果不再需要某些預(yù)定義列,您可以刪除預(yù)定義列。

以下示例用于刪除數(shù)據(jù)表的預(yù)定義列definedColumnName01和definedColumnName02。

public static void deleteDefinedColumnRequest(SyncClient client){
    DeleteDefinedColumnRequest deleteDefinedColumnRequest = new DeleteDefinedColumnRequest();
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    deleteDefinedColumnRequest.setTableName("<TABLE_NAME>");
    //添加要?jiǎng)h除的預(yù)定義列。
    deleteDefinedColumnRequest.addDefinedColumn("definedColumnName01");
    deleteDefinedColumnRequest.addDefinedColumn("definedColumnName02");
    client.deleteDefinedColumn(deleteDefinedColumnRequest);
}

刪除數(shù)據(jù)表

以下示例用于刪除exampletable數(shù)據(jù)表。

private static void deleteTable(SyncClient client) {
    //設(shè)置數(shù)據(jù)表名稱(chēng)。
    DeleteTableRequest request = new DeleteTableRequest("<TABLE_NAME>");
    client.deleteTable(request);
}