全部产品
Search
文档中心

Tablestore:Membuat tabel data

更新时间:Jul 08, 2025

Topik ini menjelaskan cara membuat tabel data di Tablestore menggunakan SDK .NET.

Catatan penggunaan

Setelah membuat tabel data, tunggu hingga tabel dimuat sebelum melakukan operasi pada data. Jika tidak, operasi tersebut akan gagal. Proses ini biasanya memerlukan waktu beberapa detik.

Prasyarat

Klien telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien Tablestore.

Deskripsi metode

public CreateTableResponse CreateTable(CreateTableRequest request)

Metode asinkron:

public Task<CreateTableResponse> CreateTableAsync(CreateTableRequest request)

Parameter CreateTableRequest

  • TableMeta (wajib) TableMeta: Informasi skema tabel, mencakup parameter berikut.

    Parameter

    Tipe

    Deskripsi

    TableName (wajib)

    string

    Nama tabel data.

    PrimaryKeySchema (wajib)

    PrimaryKeySchema

    Informasi tentang primary key.

    • Anda dapat mengonfigurasi 1 hingga 4 kolom primary key, yang diurutkan secara default dalam urutan menaik. Kolom primary key pertama berfungsi sebagai partition key.

    • Tipe data kolom primary key meliputi STRING, INTEGER, dan BINARY. Anda dapat menentukan kolom primary key tipe INTEGER yang bukan partition key sebagai primary key auto-increment.

    DefinedColumnSchema (opsional)

    DefinedColumnSchema

    Informasi tentang kolom yang telah ditentukan sebelumnya.

    • Kolom yang telah ditentukan sebelumnya adalah kolom atribut yang telah ditentukan sebelumnya. Anda dapat menggunakan kolom yang telah ditentukan sebelumnya untuk membuat indeks sekunder dan indeks pencarian.

    • Tipe data kolom yang telah ditentukan sebelumnya meliputi STRING, INTEGER, BINARY, DOUBLE, dan BOOLEAN.

  • TableOptions (opsional) TableOptions: Informasi konfigurasi tabel, mencakup parameter berikut.

    Parameter

    Tipe

    Deskripsi

    TimeToLive (opsional)

    int

    Waktu hidup (TTL) data, dalam detik. Nilai default adalah -1.

    • Ketika parameter ini disetel ke -1, data tidak pernah kedaluwarsa. Sebaliknya, nilai minimum adalah 86400 (satu hari). Data yang melebihi periode retensi TTL akan dihapus secara otomatis.

    • Jika Anda ingin menggunakan indeks pencarian atau indeks sekunder, Anda harus menyetel parameter ini ke -1 atau menyetel parameter AllowUpdate ke false.

    MaxVersions (opsional)

    int

    Jumlah maksimum versi. Nilai default adalah 1.

    • Jika Anda ingin menggunakan indeks pencarian atau indeks sekunder, Anda harus menyetel parameter ini ke 1.

    DeviationCellVersionInSec (opsional)

    long

    Offset versi maksimum, dalam detik. Nilai default adalah 86400 (satu hari).

    • Selisih antara waktu sistem saat ini dan timestamp data yang ditulis harus berada dalam offset versi maksimum. Jika tidak, operasi penulisan akan gagal.

    • Rentang versi valid untuk data kolom atribut adalah [max(Waktu data ditulis - Offset versi maksimum, Waktu data ditulis - TTL), Waktu data ditulis + Offset versi maksimum).

    AllowUpdate (opsional)

    bool

    Menentukan apakah pembaruan diizinkan. Nilai default adalah true.

    • Ketika parameter ini disetel ke false, Anda tidak dapat memperbarui data menggunakan metode UpdateRow().

  • IndexMetas (opsional) List<IndexMeta>: Daftar indeks sekunder. Setiap indeks mencakup parameter berikut.

    Parameter

    Tipe

    Deskripsi

    IndexName (wajib)

    string

    Nama indeks.

    PrimaryKey (wajib)

    List<string>

    Kolom primary key dari indeks.

    • Kolom primary key dari indeks merupakan kombinasi dari kolom primary key dan kolom yang telah ditentukan sebelumnya dari tabel data.

    DefinedColumns (opsional)

    List<string>

    Kolom yang telah ditentukan sebelumnya dari indeks.

    • Kolom yang telah ditentukan sebelumnya dari indeks terdiri dari kolom yang telah ditentukan sebelumnya dari tabel data.

    IndexType (opsional)

    IndexType

    Tipe indeks. Nilai tetap adalah IT_GLOBAL_INDEX, yang menunjukkan indeks sekunder global.

    IndexUpdateModel (opsional)

    IndexUpdateMode

    Mode pembaruan indeks. Nilai tetap adalah IUM_ASYNC_INDEX, yang menunjukkan pembaruan asinkron.

    • Mode pembaruan indeks sekunder global harus disetel ke pembaruan asinkron.

  • StreamSpecification (opsional) StreamSpecification: Informasi konfigurasi Stream, mencakup parameter berikut.

    Parameter

    Tipe

    Deskripsi

    EnableStream (wajib)

    bool

    Menentukan apakah akan mengaktifkan Stream. Nilai default adalah false.

    ExpirationTime (opsional)

    int

    Waktu kedaluwarsa Stream, yang menunjukkan periode retensi log inkremental. Satuannya adalah jam. Nilai maksimum adalah 168 (tujuh hari).

    • Ketika EnableStream disetel ke true, Anda harus menentukan ExpirationTime.

  • ReservedThroughput (wajib) CapacityUnit: throughput baca dan tulis yang dicadangkan, dalam unit kapasitas (CUs). Anda dapat menyetel parameter ini ke nilai non-nol, dan pengaturan ini hanya berlaku untuk tabel data dalam instance performa tinggi dalam mode CU.

Kode contoh

Berikut adalah contoh kode untuk membuat tabel bernama test_table dengan satu kolom primary key bertipe String.

try
{
    // Setidaknya satu kolom primary key diperlukan untuk membuat tabel data.
    PrimaryKeySchema primaryKeySchema = new PrimaryKeySchema
    {
        { "id", ColumnValueType.String }
    };
    // Bangun informasi skema tabel data.
    TableMeta tableMeta = new TableMeta("test_table", primaryKeySchema);

    // Anda harus menyetel throughput baca dan tulis yang dicadangkan ketika membuat tabel data (Anda dapat menyetel parameter ini ke nilai non-nol dan pengaturan ini hanya berlaku untuk tabel data dalam instance performa tinggi dalam mode CU).
    CapacityUnit reservedThroughput = new CapacityUnit(0, 0);

    // Bangun permintaan dan kirimkan.
    CreateTableRequest request = new CreateTableRequest(tableMeta, reservedThroughput);
    client.CreateTable(request);
    Console.WriteLine("Pembuatan tabel berhasil.");
}
catch (Exception ex)
{
    Console.WriteLine($"Pembuatan tabel gagal, pengecualian:{ex.Message}");
}

Anda juga dapat merujuk ke contoh kode berikut untuk mengonfigurasi pengaturan tambahan saat membuat tabel data.

  • Tambahkan kolom yang telah ditentukan sebelumnya

    DefinedColumnSchema definedColumnSchema = new DefinedColumnSchema
    {
        { "name" , DefinedColumnType.STRING }
    };
    
    tableMeta.DefinedColumnSchema = definedColumnSchema;
  • Tentukan offset versi maksimum

     TableOptions tableOptions = new TableOptions();
     tableOptions.DeviationCellVersionInSec = 86400;
     
     request.TableOptions = tableOptions;
  • Tentukan apakah pembaruan diizinkan

    TableOptions tableOptions = new TableOptions();
    tableOptions.AllowUpdate = false;
    
    request.TableOptions = tableOptions;
  • Tambahkan indeks sekunder

    // Bangun daftar indeks sekunder.
    List<IndexMeta> indexMetas = new List<IndexMeta>();
    // Bangun indeks sekunder.
    IndexMeta indexMeta = new IndexMeta("test_table_index");
    // Tentukan primary key dari indeks.
    indexMeta.PrimaryKey = new List<string>() { "id", "name" };
    // Tentukan tipe indeks.
    indexMeta.IndexType = IndexType.IT_GLOBAL_INDEX;
    // Tentukan mode pembaruan indeks.
    indexMeta.IndexUpdateModel = IndexUpdateMode.IUM_ASYNC_INDEX;
    // Tambahkan indeks sekunder.
    indexMetas.Add(indexMeta);
    
    // Bangun permintaan.
    CreateTableRequest request = new CreateTableRequest(tableMeta, reservedThroughput, indexMetas);
  • Tentukan informasi Stream

    StreamSpecification streamSpecification = new StreamSpecification(true);
    streamSpecification.ExpirationTime = 168;
                    
    request.StreamSpecification = streamSpecification;

Referensi