數(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ǔ)提供了CreateTable、ListTable、UpdateTable、DescribeTable和DeleteTable的表操作接口。
使用表格存儲(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ù)表。 重要
|
管理預(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ù)表。
在頁(yè)面上方,選擇資源組和地域。
在概覽頁(yè)面,單擊實(shí)例名稱(chēng)或在實(shí)例操作列單擊實(shí)例管理。
在實(shí)例詳情頁(yè)簽,單擊創(chuàng)建數(shù)據(jù)表。
在創(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ě)吞吐量。
單擊確定。
創(chuàng)建數(shù)據(jù)表后,請(qǐng)根據(jù)實(shí)際需要執(zhí)行相應(yīng)操作管理數(shù)據(jù)表。
操作 | 說(shuō)明 |
列出表名稱(chēng) | 在數(shù)據(jù)表列表頁(yè)簽,查看實(shí)例內(nèi)的所有表名稱(chēng)。 |
更新表信息 |
|
查詢(xún)表描述信息 |
|
管理預(yù)定義列 |
添加預(yù)定義列后,在基本詳情頁(yè)簽的高級(jí)功能區(qū)域,單擊預(yù)定義列對(duì)應(yīng)的圖標(biāo),然后在刪除預(yù)定義列對(duì)話(huà)框中單擊確定。 |
刪除數(shù)據(jù)表 |
|
使用命令行工具
通過(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í)行 以下示例用于列出所有數(shù)據(jù)表名稱(chēng)。
|
更新表信息 | 執(zhí)行 以下示例用于修改mytable數(shù)據(jù)表的數(shù)據(jù)生命周期為86400秒(即1天),最大版本數(shù)為1,且預(yù)留讀CU和預(yù)留寫(xiě)CU均為0。
|
查詢(xún)表描述信息 | 執(zhí)行 以下示例用于查看當(dāng)前表的描述信息。
|
刪除數(shù)據(jù)表 | 執(zhí)行drop命令刪除不需要的表。更多信息,請(qǐng)參見(jiàn)刪除表。 以下示例用于刪除mytable表。
|
使用SDK
您可以使用Java SDK、Go SDK、Python SDK、Node.js SDK、.NET SDK和PHP 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);
}