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.
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. |
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. |
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. |
index_type (opsional) | SecondaryIndexType | Tipe indeks. Nilai yang valid: |
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)