全部产品
Search
文档中心

Tablestore:Buat tabel pemetaan untuk sebuah tabel

更新时间:Jul 02, 2025

Anda dapat menjalankan pernyataan CREATE TABLE untuk membuat tabel pemetaan bagi tabel atau indeks pencarian yang sudah ada. Saat membuat tabel pemetaan, tentukan nama dan tipe bidang dalam tabel, informasi kunci utama, serta mesin eksekusi untuk kueri data sesuai kebutuhan bisnis Anda. Topik ini menjelaskan cara membuat tabel pemetaan untuk tabel yang sudah ada.

Catatan

Untuk informasi tentang cara membuat tabel pemetaan untuk indeks pencarian, lihat Buat Tabel Pemetaan untuk Indeks Pencarian.

Sintaksis

CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type [NOT NULL | NULL],...
| PRIMARY KEY(key_part[,key_part])
)
ENGINE='tablestore',
ENGINE_ATTRIBUTE='{"consistency": consistency [,"allow_inaccurate_aggregation": allow_inaccurate_aggregation]}';

Jika sebuah tabel hanya memiliki satu kolom kunci utama, gunakan sintaksis berikut untuk membuat tabel pemetaan bagi tabel yang sudah ada:

CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type PRIMARY KEY,column_name data_type [NOT NULL | NULL],...
)
ENGINE='tablestore',
ENGINE_ATTRIBUTE='{"consistency": consistency [,"allow_inaccurate_aggregation": allow_inaccurate_aggregation]}';

Parameter

Parameter

Diperlukan

Deskripsi

IF NOT EXISTS

Tidak

Menentukan bahwa respons sukses dikembalikan terlepas dari apakah tabel tersebut ada. Jika Anda tidak menentukan IF NOT EXISTS, respons sukses hanya akan dikembalikan jika tabel tersebut tidak ada.

table_name

Ya

Nama tabel, yang digunakan untuk mengidentifikasi tabel.

Nama tabel dalam SQL harus sama dengan nama tabel dalam Tablestore.

column_name

Ya

Nama kolom.

Nama kolom dalam SQL harus setara dengan nama kolom dalam tabel Tablestore. Sebagai contoh, jika nama kolom dalam tabel Tablestore adalah Aa, maka nama kolom dalam SQL harus Aa, AA, aA, atau aa.

data_type

Ya

Tipe data kolom, seperti BIGINT, DOUBLE, atau BOOL.

Tipe data kolom dalam SQL harus sesuai dengan tipe data kolom dalam tabel Tablestore. Untuk informasi tentang pemetaan tipe data, lihat Pemetaan tipe data dalam SQL.

NOT NULL | NULL

Tidak

Menentukan apakah nilai kolom bisa NULL. Nilai valid:

  • NOT NULL: Nilai kolom tidak boleh NULL. Secara default, nilai kolom kunci utama tidak boleh NULL.

  • NULL: Nilai kolom bisa NULL. Secara default, nilai kolom atribut bisa NULL.

    Jika nilai kolom atribut tidak boleh NULL, atur parameter ini menjadi NOT NULL untuk kolom atribut tersebut.

key_part

Ya

Nama kolom kunci utama. Anda dapat menentukan beberapa kolom kunci utama. Pisahkan beberapa kolom kunci utama dengan koma (,).

Nama kolom kunci utama harus termasuk dalam nama kolom.

ENGINE

Tidak

Mesin eksekusi yang digunakan saat Anda menggunakan tabel pemetaan untuk menanyakan data. Nilai default: tablestore. Nilai valid:

  • tablestore: Mesin SQL secara otomatis memilih indeks yang sesuai untuk melakukan kueri.

  • searchindex: Mesin SQL menggunakan indeks pencarian yang ditentukan untuk melakukan kueri. Jika Anda mengatur parameter ENGINE menjadi searchindex, Anda harus mengonfigurasi item index_name dan table_name dalam parameter ENGINE_ATTRIBUTE.

ENGINE_ATTRIBUTE

Tidak

Atribut mesin eksekusi. Nilai parameter ini dalam format JSON dan mencakup item-item berikut:

  • index_name: nama indeks pencarian untuk mana tabel pemetaan dibuat. Anda hanya perlu menentukan item ini saat Anda membuat tabel pemetaan untuk indeks pencarian.

  • table_name: nama tabel data untuk mana indeks pencarian dibuat. Anda hanya perlu menentukan item ini saat Anda membuat tabel pemetaan untuk indeks pencarian.

  • consistency: mode konsistensi yang didukung oleh mesin eksekusi.

    • Nilai valid saat Anda membuat tabel pemetaan untuk tabel:

      • eventual: Hasil kueri berada dalam mode konsistensi akhir. Ini adalah nilai default. Anda dapat menanyakan data beberapa detik setelah data ditulis ke tabel.

      • strong: Hasil kueri berada dalam mode konsistensi kuat. Anda dapat menanyakan data segera setelah data ditulis ke tabel.

    • Saat Anda membuat tabel pemetaan untuk indeks pencarian, nilai consistency adalah eventual dan tidak dapat diubah.

  • allow_inaccurate_aggregation: menentukan apakah performa kueri dapat ditingkatkan dengan mengorbankan akurasi operasi agregasi. Tipe: Boolean.

    • Saat Anda membuat tabel pemetaan untuk tabel, nilai default allow_inaccurate_aggregation adalah true, yang menunjukkan bahwa performa kueri dapat ditingkatkan dengan mengorbankan akurasi operasi agregasi. Anda dapat mengatur allow_inaccurate_aggregation menjadi false berdasarkan kebutuhan bisnis Anda.

    • Saat Anda membuat tabel pemetaan untuk indeks pencarian, nilai allow_inaccurate_aggregation adalah true dan tidak dapat diubah.

Contoh

  • Contoh 1

    Kode sampel berikut menunjukkan cara membuat tabel pemetaan bernama exampletable1. Tabel tersebut berisi kolom kunci utama id dan kolom atribut colvalue serta content. Kolom kunci utama id dan kolom atribut colvalue bertipe BIGINT, sedangkan kolom atribut content bertipe MEDIUMTEXT.

    CREATE TABLE exampletable1 (id BIGINT(20) PRIMARY KEY, colvalue BIGINT(20), content MEDIUMTEXT);
  • Contoh 2

    Kode sampel berikut menunjukkan cara membuat tabel pemetaan bernama exampletable2. Tabel tersebut berisi kolom kunci utama id dan colvalue serta kolom atribut content. Kolom kunci utama id bertipe BIGINT, kolom kunci utama colvalue bertipe VARCHAR, dan kolom atribut content bertipe MEDIUMTEXT. Hasil kueri pada tabel harus berada dalam mode konsistensi kuat.

    CREATE TABLE exampletable2 (id BIGINT(20), colvalue VARCHAR(1024), content MEDIUMTEXT, PRIMARY KEY(colvalue, id)) ENGINE_ATTRIBUTE='{"consistency": "strong"}';

FAQ

Apa yang harus saya lakukan jika pesan kesalahan "Table 'instancename.tablename' doesn't exist ?" muncul saat saya membuat tabel pemetaan?

  • Penyebab Potensial

    Tabel yang ingin Anda buat tabel pemetaannya tidak tersedia.

  • Solusi

    Pastikan bahwa tabel atau indeks pencarian yang ingin Anda buat tabel pemetaannya sudah ada sebelum menjalankan pernyataan CREATE TABLE dalam SQL.

Apa yang harus saya lakukan jika pesan kesalahan "Table 'instancename.tablename' sudah ada?" muncul saat saya membuat tabel pemetaan?

  • Penyebab Potensial

    Tabel pemetaan telah dibuat untuk tabel tersebut.

    • Pengguna secara manual membuat tabel pemetaan untuk tabel tersebut.

    • Tablestore secara otomatis membuat tabel pemetaan untuk tabel tersebut. Jika Anda langsung menggunakan pernyataan SQL (seperti DESCRIBE, SELECT, dll.) untuk menanyakan data dalam tabel tanpa membuat tabel pemetaan, Tablestore akan membuat tabel pemetaan secara otomatis. Tabel pemetaan yang dibuat otomatis hanya mencakup kolom kunci utama dan kolom yang telah ditentukan sebelumnya dari tabel data. Anda tidak dapat memperbarui kolom atribut dari tabel pemetaan tersebut.

  • Solusi

    Gunakan pernyataan DESCRIBE untuk menanyakan skema tabel pemetaan. Jika skema tersebut tidak sesuai dengan kebutuhan bisnis Anda, Anda dapat memperbarui kolom atribut tabel pemetaan. Jika tabel pemetaan dibuat secara otomatis oleh Tablestore, Anda tidak dapat memperbarui kolom atribut. Dalam hal ini, Anda dapat menghapus tabel pemetaan dan membuat yang baru jika yakin bahwa penghapusan tabel pemetaan tidak akan memengaruhi bisnis Anda.

Catatan

Untuk kesalahan umum dan solusi fitur kueri SQL, lihat Bagaimana Cara Menyelesaikan Masalah Kesalahan Umum Kueri SQL?.

Referensi