全部产品
Search
文档中心

Tablestore:Buat tabel data

更新时间:Jul 08, 2025

Topik ini menjelaskan cara membuat tabel data Tablestore menggunakan Tablestore SDK untuk Python.

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

def create_table(self, table_meta, table_options, reserved_throughput, secondary_indexes=[])

Parameter

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

    Parameter

    Tipe

    Deskripsi

    table_name (wajib)

    str

    Nama tabel data.

    schema_of_primary_key (wajib)

    List[Tuple]

    Informasi tentang primary key.

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

    • Tipe data kolom primary key meliputi STRING, INTEGER, dan BINARY. Anda dapat menetapkan kolom primary key auto-increment ke kolom primary key yang bukan partition key dan bertipe INTEGER.

    defined_columns (opsional)

    List[Tuple]

    Informasi tentang kolom yang telah ditentukan sebelumnya.

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

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

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

    Parameter

    Tipe

    Deskripsi

    time_to_live (opsional)

    int

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

    • Jika Anda menetapkan parameter ini 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 menetapkan parameter ini ke -1 atau menetapkan parameter allow_update ke False.

    max_version (opsional)

    int

    Jumlah maksimum versi. Nilai default adalah 1.

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

    max_time_deviation (opsional)

    int

    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 rentang offset versi maksimum. Jika tidak, penulisan data 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).

    allow_update (opsional)

    bool

    Menentukan apakah pembaruan diizinkan. Nilai default adalah True.

    • Jika Anda menetapkan parameter ini ke False, Anda tidak dapat memperbarui data dengan menggunakan metode update_row().

  • secondary_indexes (opsional) List[SecondaryIndexMeta]: Daftar indeks sekunder. Setiap indeks mencakup parameter berikut.

    Parameter

    Tipe

    Deskripsi

    index_name (wajib)

    str

    Nama indeks.

    primary_key_names (wajib)

    List[str]

    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.

    • Jika Anda ingin membuat indeks sekunder lokal, kolom primary key pertama dari indeks harus menjadi kolom primary key pertama dari tabel data.

    defined_column_names (opsional)

    List[str]

    Kolom yang telah ditentukan sebelumnya dari indeks.

    • Kolom yang telah ditentukan sebelumnya berasal dari kolom yang telah ditentukan sebelumnya dari tabel data.

    index_type (opsional)

    SecondaryIndexType

    Tipe indeks. Nilai yang valid:

    • GLOBAL_INDEX (nilai default): indeks sekunder global.

    • LOCAL_INDEX: indeks sekunder lokal.

  • reserved_throughput (wajib) ReservedThroughput: throughput baca dan tulis yang dicadangkan, dalam CU. Nilai default adalah 0. Anda dapat menetapkan parameter ini ke nilai non-nol, tetapi hanya berlaku untuk tabel data dalam instance performa tinggi dalam mode CU.

Kode contoh

Contoh kode berikut membuat tabel bernama test_table dengan satu kolom primary key bertipe String.

# Membuat tabel data memerlukan setidaknya satu kolom primary key.
schema_of_primary_key = [('id', 'STRING')]
# Konstruksi informasi skema tabel data.
table_meta = TableMeta('test_table', schema_of_primary_key)

# Konstruksi informasi konfigurasi tabel data.
table_options = TableOptions(time_to_live=-1, max_version=1, max_time_deviation=86400, allow_update=True)

# Saat Anda membuat tabel data, Anda harus menentukan throughput baca dan tulis yang dicadangkan, dengan nilai default 0 (Anda dapat menetapkan parameter ini ke nilai non-nol dan pengaturannya hanya berlaku untuk tabel data dalam instance performa tinggi dalam mode CU).
reserved_throughput = ReservedThroughput(CapacityUnit(0,0))

try:
    # Ajukan permintaan.
    client.create_table(table_meta, table_options, reserved_throughput)
    print("Pembuatan tabel berhasil.")
except Exception as e:
    print("Pembuatan tabel gagal. %s" % e)

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

  • Tambahkan kolom yang telah ditentukan sebelumnya

    defined_columns = [('name', 'STRING')]
    # Konstruksi informasi skema tabel data.
    table_meta = TableMeta('test_table', schema_of_primary_key, defined_columns)
  • Tambahkan indeks sekunder

    # Konstruksi daftar indeks sekunder.
    secondary_indexes = [
        # Tentukan nama indeks, kolom primary key indeks, kolom yang telah ditentukan sebelumnya indeks, dan tipe indeks.
        SecondaryIndexMeta('test_table_index', ['id', 'name'], [], index_type= SecondaryIndexType.LOCAL_INDEX)
    ]
    # Ajukan permintaan.
    client.create_table(table_meta, table_options, reserved_throughput, secondary_indexes)

Referensi