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

創(chuàng)建數(shù)據(jù)表

本文將通過參數(shù)說明和示例代碼為您介紹如何使用 .NET SDK 創(chuàng)建數(shù)據(jù)表。在創(chuàng)建數(shù)據(jù)表時,您需要指定數(shù)據(jù)表的結(jié)構(gòu)信息和配置信息。CU 模式(原按量模式)下高性能型實(shí)例中的數(shù)據(jù)表還可以根據(jù)需要設(shè)置預(yù)留讀寫吞吐量。

注意事項(xiàng)

  • 創(chuàng)建數(shù)據(jù)表后需要幾秒鐘進(jìn)行加載,在此期間對該數(shù)據(jù)表的讀寫數(shù)據(jù)操作均會失敗。請等待數(shù)據(jù)表加載完畢后再進(jìn)行數(shù)據(jù)操作。

  • 如果您有主鍵數(shù)據(jù)自增的需求,例如電商網(wǎng)站的商品 ID、論壇帖子的 ID 等場景,可以在創(chuàng)建數(shù)據(jù)時配置主鍵列自增。具體操作,請參見主鍵列自增

前提條件

接口

/// <summary>
/// 根據(jù)指定表結(jié)構(gòu)信息創(chuàng)建數(shù)據(jù)表。
/// </summary>
/// <param name="request">請求參數(shù)</param>
/// <returns>CreateTable的返回,此返回實(shí)例是空的,不包含具體信息。</returns>
public CreateTableResponse CreateTable(CreateTableRequest request);

/// <summary>
/// CreateTable的異步形式,其參數(shù)和調(diào)用方式與CreateTable保持一致。
/// </summary>
public Task<CreateTableResponse> CreateTableAsync(CreateTableRequest request);

參數(shù)說明

request包含以下參數(shù):

參數(shù)

說明

tableMeta(必選

數(shù)據(jù)表的結(jié)構(gòu)信息,包括如下內(nèi)容:

  • tableName(必選):數(shù)據(jù)表名稱。

  • primaryKeySchema(必選):數(shù)據(jù)表的主鍵定義。更多信息,請參見核心組件

    • 主鍵數(shù)據(jù)類型可以為 String、Integer 或 Binary。

    • 可以設(shè)置 1~4 個主鍵列。表格存儲將按照設(shè)置的順序生成主鍵,默認(rèn)按升序進(jìn)行排序。

    • 第一個主鍵列將作為分區(qū)鍵。

  • definedColumnSchema(可選):預(yù)定義列信息。數(shù)據(jù)類型可以為 STRING、INTEGER、BINARY、DOUBLE 或 BOOLEAN。

    說明
    • 預(yù)定義列是預(yù)先定義的一些非主鍵列,通常被用作二級索引的主鍵列或預(yù)定義列,以實(shí)現(xiàn)快速查詢數(shù)據(jù)的需求。

    • 屬性列在創(chuàng)建表時無需定義,您可以在寫入數(shù)據(jù)時為每行數(shù)據(jù)指定不同的屬性列和列名。

tableOptions(可選)

數(shù)據(jù)表的配置信息,包括如下內(nèi)容:

  • timeToLive(可選):數(shù)據(jù)生命周期,即數(shù)據(jù)的過期時間,單位為秒。

    默認(rèn)值為 -1(表示數(shù)據(jù)永不過期)。數(shù)據(jù)生命周期的取值最低為 86400 秒(一天),也可設(shè)置為 -1(永不過期)。

    重要

    如果要使用多元索引或二級索引,必須將數(shù)據(jù)生命周期設(shè)置為 -1,或者將 AllowUpdate 參數(shù)設(shè)置為 false。

  • maxVersions(可選):最大版本數(shù),即屬性列能夠保留數(shù)據(jù)的最大版本個數(shù)。

    默認(rèn)值為 1,表示每列上最多保存一個版本,即保存最新的版本。

    重要

    如果要使用多元索引或二級索引,最大版本數(shù)必須設(shè)置為 1。

  • deviationCellVersionInSec(可選):有效版本偏差,即寫入數(shù)據(jù)的時間戳與系統(tǒng)當(dāng)前時間的偏差允許最大值,單位為秒。

    默認(rèn)值 86400 秒(一天)。屬性列的有效取值范圍是一個左閉右開的區(qū)間:[max{數(shù)據(jù)寫入時間-有效版本偏差,數(shù)據(jù)寫入時間-數(shù)據(jù)生命周期},數(shù)據(jù)寫入時間+有效版本偏差)

  • allowUpdate(可選):是否允許更新。默認(rèn)為true。

    重要

    如果要使用多元索引的生命周期功能,必須設(shè)置此參數(shù)為 false。如果您需要更新數(shù)據(jù),可使用 PutRow 接口寫入數(shù)據(jù)。

indexMetas(可選)

索引列表。每個索引包含以下內(nèi)容:

  • indexName(必選):索引名稱。

  • primaryKey(必選):索引的主鍵列。可以由數(shù)據(jù)表的主鍵列和預(yù)定義列組成。

    重要

    使用本地二級索引時,索引第一個主鍵列必須是數(shù)據(jù)表的第一個主鍵列。

  • definedColumns(可選):索引的預(yù)定義列。可以由數(shù)據(jù)表的預(yù)定義列組成。

  • indexType(可選):索引類型,當(dāng)前只支持全局二級索引。

  • indexUpdateModel(可選):索引更新模式,當(dāng)前只支持異步更新。

說明

表格存儲提供了全局和本地兩種類型的二級索引,當(dāng)前 .NET SDK 只支持全局二級索引。

reservedThroughput(必選

預(yù)留讀寫吞吐量,單位為 CU。默認(rèn)值為 0。

重要

CU 模式下高性能型實(shí)例支持設(shè)置數(shù)據(jù)表的預(yù)留讀寫吞吐量為非零值。

streamSpecification(可選)

數(shù)據(jù)表的 Stream 配置信息,包括如下內(nèi)容:

  • enableStream(可選):是否開啟 stream。默認(rèn)值為 false,即不開啟 stream。

  • expirationTime(可選):stream 過期時間,表示增量日志過期時長。單位為小時,最大值為 168 小時(7 天)。

    說明

    開啟 stream 時,必須設(shè)置 expirationTime 參數(shù)。

示例

創(chuàng)建數(shù)據(jù)表

以下示例用于創(chuàng)建數(shù)據(jù)表。

 //創(chuàng)建主鍵列的schema,包括PK的個數(shù)、名稱和類型。
 //第一個PK列為整數(shù),名稱是pk0,這個同時也是分區(qū)鍵。
 //第二個PK列為字符串,名稱是pk1。
 var primaryKeySchema = new PrimaryKeySchema();
 primaryKeySchema.Add("pk0", ColumnValueType.Integer);
 primaryKeySchema.Add("pk1", ColumnValueType.String);

 //通過表名和主鍵列的schema創(chuàng)建一個tableMeta。
 var tableMeta = new TableMeta("SampleTable", primaryKeySchema);

 //設(shè)置預(yù)留讀吞吐量為0,預(yù)留寫吞吐量為0。
 var reservedThroughput = new CapacityUnit(0, 0);

 try
 {
     //構(gòu)造CreateTableRequest對象。
     var request = new CreateTableRequest(tableMeta, reservedThroughput);

     //調(diào)用client的CreateTable接口,如果沒有拋出異常,則說明執(zhí)行成功。
     otsClient.CreateTable(request);

     Console.WriteLine("Create table succeeded.");
 }
 //如果拋出異常,則說明失敗,處理異常。
 catch (Exception ex)
 {
     Console.WriteLine("Create table failed, exception:{0}", ex.Message);
 }
            

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

以下示例用于同時創(chuàng)建數(shù)據(jù)表和全局二級索引。

public static void CreateTableWithGlobalIndex()
{
    //創(chuàng)建數(shù)據(jù)表,兩列主鍵為Pk1、Pk2,預(yù)定義列為Col1、Col2。
    //創(chuàng)建索引表,主鍵列為Col1,預(yù)定義列為Col2。
    OTSClient otsClient = Config.GetClient();

    Console.WriteLine("Start create table with globalIndex...");
    PrimaryKeySchema primaryKeySchema = new PrimaryKeySchema
        {
            { Pk1, ColumnValueType.String },
            { Pk2, ColumnValueType.String }
        };
    TableMeta tableMeta = new TableMeta(TableName, primaryKeySchema);
    tableMeta.DefinedColumnSchema = new DefinedColumnSchema {
            { Col1, DefinedColumnType.STRING},
            { Col2, DefinedColumnType.STRING}
        };

    IndexMeta indexMeta = new IndexMeta(IndexName);
    indexMeta.PrimaryKey = new List<string>() { Col1 };
    indexMeta.DefinedColumns = new List<string>() { Col2 };
    //indexMeta.IndexType = IndexType.IT_GLOBAL_INDEX;
    //indexMeta.IndexUpdateModel = IndexUpdateMode.IUM_ASYNC_INDEX;

    List<IndexMeta> indexMetas = new List<IndexMeta>() { };
    indexMetas.Add(indexMeta);

    CapacityUnit reservedThroughput = new CapacityUnit(0, 0);
    CreateTableRequest request = new CreateTableRequest(tableMeta, reservedThroughput, indexMetas);
    otsClient.CreateTable(request);

    Console.WriteLine("Table is created: " + TableName);
}

相關(guān)文檔