All Products
Search
Document Center

Tablestore:Buat tabel data

Last Updated:Apr 30, 2026

Buat tabel data Tablestore menggunakan Tablestore SDK untuk Python. Konfigurasikan skema tabel, opsi, indeks sekunder, dan pengaturan enkripsi sesuai kebutuhan.

Catatan penggunaan

Setelah membuat tabel data, tunggu hingga proses pemuatan selesai sebelum melakukan operasi apa pun. Proses ini biasanya memakan waktu beberapa detik. Operasi yang dilakukan sebelum tabel siap akan gagal.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Metode

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

Parameter

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

    Nama

    Tipe

    Deskripsi

    table_name (wajib)

    str

    Nama tabel data.

    schema_of_primary_key (wajib)

    List[Tuple]

    Konfigurasi kunci primer.

    • Definisikan 1 hingga 4 kolom kunci primer, diurutkan secara ascending secara default. Kolom pertama berfungsi sebagai kunci partisi.

    • Kolom kunci primer mendukung tipe STRING, INTEGER, dan BINARY. Tetapkan primary key auto-increment pada kolom bertipe INTEGER yang bukan kunci partisi.

    defined_columns (opsional)

    List[Tuple]

    Konfigurasi kolom pradefinisi.

    • Kolom pradefinisi adalah kolom atribut yang didefinisikan saat pembuatan tabel dan dapat digunakan sebagai kolom indeks untuk secondary indexes dan search indexes.

    • Kolom pradefinisi mendukung tipe STRING, INTEGER, BINARY, DOUBLE, dan BOOLEAN.

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

    Nama

    Tipe

    Deskripsi

    time_to_live (opsional)

    int

    Masa hidup data (TTL), dalam detik. Default: -1.

    • Atur ke -1 untuk menyimpan data tanpa batas waktu. Jika tidak, nilai minimum adalah 86400 (satu hari). Data yang lebih lama dari TTL akan dihapus secara otomatis.

    • Untuk menggunakan search indexes atau secondary indexes, atur parameter ini ke -1 atau atur allow_update ke False.

    max_version (opsional)

    int

    Jumlah maksimum versi yang disimpan per kolom atribut. Default: 1.

    • Untuk menggunakan search indexes atau secondary indexes, atur parameter ini ke 1.

    max_time_deviation (opsional)

    int

    Offset versi maksimum, dalam detik. Default: 86400 (satu hari).

    • Timestamp data yang ditulis harus berada dalam rentang offset ini dari waktu sistem saat ini. Penulisan data di luar rentang tersebut 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 baris diizinkan. Default: True.

    • Atur ke False untuk menonaktifkan pembaruan melalui 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.

    • Dapat mencakup kolom kunci primer tabel data dan kolom pradefinisi.

    • Untuk local secondary index, kolom kunci primer pertama indeks harus sama dengan kolom kunci primer pertama tabel data.

    defined_column_names (opsional)

    List[str]

    Kolom pradefinisi yang disertakan dalam indeks. Harus merupakan kolom yang sudah didefinisikan di tabel data.

    index_type (opsional)

    SecondaryIndexType

    Tipe indeks. Nilai yang valid:

    • GLOBAL_INDEX (default): global secondary index.

    • LOCAL_INDEX: local secondary index.

  • reserved_throughput (wajib) ReservedThroughput: reserved throughput, dalam Unit kapasitas (CU). Nilai default: 0. Nilai bukan nol hanya berlaku untuk tabel data di instans kinerja tinggi yang berjalan dalam Mode CU.

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

    Penting

    Konfigurasikan enkripsi data hanya saat membuat tabel data. Enkripsi tidak dapat dinonaktifkan setelah tabel dibuat. Fitur ini memerlukan Python SDK versi 6.4.0 atau lebih baru.

    Nama

    Tipe

    Deskripsi

    enable (wajib)

    boolean

    Menentukan apakah enkripsi data diaktifkan. Default: 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). Diperlukan hanya jika key_type adalah SSE_BYOK.

    role_arn (opsional)

    str

    ARN Peran RAM. Diperlukan hanya jika key_type adalah SSE_BYOK.

Contoh

Contoh berikut membuat tabel data bernama test_table dengan satu kolom kunci primer bertipe STRING.

# Tabel data memerlukan minimal satu kolom kunci primer.
schema_of_primary_key = [('id', 'STRING')]
# Definisikan skema tabel.
table_meta = TableMeta('test_table', schema_of_primary_key)

# Konfigurasikan opsi tabel.
table_options = TableOptions(time_to_live=-1, max_version=1, max_time_deviation=86400, allow_update=True)

# Atur reserved throughput. Default adalah 0 CU.
# Nilai bukan nol hanya berlaku untuk instans kinerja tinggi dalam Mode CU.
reserved_throughput = ReservedThroughput(CapacityUnit(0,0))

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

Contoh berikut menunjukkan cara mengonfigurasi pengaturan tertentu saat membuat tabel data.

  • Tambahkan kolom pradefinisi

    defined_columns = [('name', 'STRING')]
    # Sertakan kolom pradefinisi dalam skema tabel.
    table_meta = TableMeta('test_table', schema_of_primary_key, defined_columns)
  • Tambahkan indeks sekunder

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

    Gunakan kelas SSESpecification untuk mengonfigurasi enkripsi sisi server (SSE) untuk tabel data.

    • Enkripsi 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 ini, dapatkan ID CMK dan ARN Peran RAM. Untuk informasi selengkapnya, lihat BYOK encryption.

      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