全部产品
Search
文档中心

Tablestore:Buat tabel data

更新时间:Feb 08, 2026

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

Catatan penggunaan

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

Prasyarat

Inisialisasi client Tablestore

Deskripsi metode

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

Parameter

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

    Nama

    Tipe

    Deskripsi

    table_name (wajib)

    str

    Nama tabel data.

    schema_of_primary_key (wajib)

    List[Tuple]

    Informasi mengenai kunci primer.

    • Anda dapat mengonfigurasi 1 hingga 4 kolom kunci primer. Secara default, kolom-kolom tersebut diurutkan secara ascending. Kolom kunci primer pertama berfungsi sebagai kunci partisi.

    • Tipe data kolom kunci primer meliputi STRING, INTEGER, dan BINARY. Anda dapat mengatur kolom kunci utama auto-increment pada kolom kunci primer yang bukan kunci partisi dan bertipe INTEGER.

    defined_columns (opsional)

    List[Tuple]

    Informasi mengenai kolom pradefinisi.

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

    • Tipe data kolom pradefinisi meliputi STRING, INTEGER, BINARY, DOUBLE, dan BOOLEAN.

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

    Nama

    Tipe

    Deskripsi

    time_to_live (opsional)

    int

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

    • Jika Anda mengatur parameter ini ke -1, data tidak pernah kedaluwarsa. Jika tidak, 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 mengatur parameter ini ke -1 atau mengatur 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 mengatur parameter ini ke 1.

    max_time_deviation (opsional)

    int

    Offset versi maksimum, dalam satuan 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 penulisan data - Offset versi maksimum, Waktu penulisan data - TTL), Waktu penulisan data + Offset versi maksimum).

    allow_update (opsional)

    bool

    Menentukan apakah pembaruan diizinkan. Nilai default adalah True.

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

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

    Nama

    Tipe

    Deskripsi

    index_name (wajib)

    str

    Nama indeks.

    primary_key_names (wajib)

    List[str]

    Kolom kunci primer indeks.

    • Kolom tersebut dapat terdiri dari kolom kunci primer tabel data dan kolom pradefinisi.

    • Jika Anda ingin membuat indeks sekunder lokal, kolom kunci primer pertama pada indeks harus sama dengan kolom kunci primer pertama pada tabel data.

    defined_column_names (opsional)

    List[str]

    Kolom pradefinisi indeks.

    • Kolom pradefinisi berasal dari kolom pradefinisi 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 satuan CU. Nilai default adalah 0. Anda dapat mengatur parameter ini ke nilai bukan nol, dan pengaturan ini hanya berlaku untuk tabel data pada instans kinerja tinggi dalam Mode CU.

  • sse_spec (opsional) SSESpecification: pengaturan enkripsi data, mencakup parameter berikut.

    Penting

    Anda hanya dapat mengaktifkan dan mengonfigurasi enkripsi data saat membuat tabel data. Setelah tabel dibuat, Anda tidak dapat menonaktifkan enkripsi. Fitur ini didukung hanya pada Python SDK versi 6.4.0 dan yang lebih baru.

    Nama

    Tipe

    Deskripsi

    enable (wajib)

    boolean

    Menentukan apakah enkripsi data diaktifkan. Nilai default adalah False.

    key_type (opsional)

    SSEKeyType

    Tipe enkripsi. Nilai yang valid untuk SSEKeyType:

    • SSE_KMS_SERVICE: enkripsi KMS.

    • SSE_BYOK: enkripsi BYOK.

    key_id (opsional)

    str

    ID kunci master pelanggan (CMK). Tentukan parameter ini hanya jika key_type bernilai SSE_BYOK.

    role_arn (opsional)

    str

    ARN Peran RAM. Tentukan parameter ini hanya jika key_type bernilai SSE_BYOK.

Kode contoh

Kode contoh berikut membuat tabel bernama test_table yang berisi satu kolom kunci primer bertipe String.

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

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

# Saat membuat tabel data, Anda harus menentukan throughput baca dan tulis yang dicadangkan, dengan nilai default 0 (Anda dapat mengatur parameter ini ke nilai bukan nol dan pengaturan ini hanya berlaku untuk tabel data pada instans kinerja tinggi dalam Mode CU).
reserved_throughput = ReservedThroughput(CapacityUnit(0,0))

try:
    # Mengirim permintaan.
    client.create_table(table_meta, table_options, reserved_throughput)
    print("Create table succeeded.")
except Exception as e:
    print("Create table failed. %s" % e)

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

  • Tambahkan kolom pradefinisi

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

    # Membangun daftar indeks sekunder.
    secondary_indexes = [
        # Menentukan nama indeks, kolom kunci primer indeks, kolom pradefinisi indeks, dan tipe indeks.
        SecondaryIndexMeta('test_table_index', ['id', 'name'], [], index_type= SecondaryIndexType.LOCAL_INDEX)
    ]
    # Mengirim permintaan.
    client.create_table(table_meta, table_options, reserved_throughput, secondary_indexes)
  • Konfigurasikan enkripsi data

    Gunakan metode SSESpecification untuk mengonfigurasi enkripsi data pada tabel data.

    • Enkripsi kunci rahasia KMS

      sse_specification = SSESpecification(enable=True, key_type=SSEKeyType.SSE_KMS_SERVICE, key_id=None,
                                                   role_arn=None)
      client.create_table(table_meta, table_option, reserved_throughput, sse_spec=sse_specification)
    • Enkripsi BYOK

      Catatan

      Sebelum menjalankan kode, peroleh ID CMK dan ARN Peran RAM. Untuk informasi selengkapnya, lihat enkripsi BYOK.

      key_id = "key-hzz6*****************"
      role_arn = "acs:ram::1705************:role/tabletorebyok"
      sse_specification = SSESpecification(enable=True, key_type=SSEKeyType.SSE_BYOK, key_id=key_id,
                                                   role_arn=role_arn)
      client.create_table(table_meta, table_option, reserved_throughput, sse_spec=sse_specification)

Referensi