全部产品
Search
文档中心

Lindorm:CREATE TABLE

更新时间:Nov 10, 2025

Pernyataan CREATE TABLE digunakan untuk membuat tabel di LindormTable atau LindormTSDB. Pernyataan ini mendukung berbagai tipe data, seperti VARCHAR, TIMESTAMP, dan BIGINT, serta berbagai atribut tabel, seperti Waktu Hidup (TTL) data dan algoritma kompresi. Anda dapat menggabungkan atribut dan tipe data tersebut untuk merancang tabel yang paling sesuai dengan skenario bisnis Anda.

Mesin dan versi

  • CREATE TABLE berlaku untuk LindormTable dan LindormTSDB.

  • LindormTSDB mendukung sintaks CREATE TABLE standar mulai dari versi 3.4.32. Untuk melihat atau meningkatkan versi LindormTSDB, lihat Riwayat versi LindormTSDB dan Peningkatan versi minor.

Sintaks

create_table_statement ::=  CREATE TABLE [ IF NOT EXISTS ] table_identifier
                            '('
                                column_definition
                                ( ',' column_definition )*
                                 ',' PRIMARY KEY '(' primary_key ')' 
                                ( ',' {KEY|INDEX} [index_identifier] 
                                     [ USING index_method_definition ] 
                                     [ INCLUDE column_identifier ( ',' column_identifier )* ]
                                     [ WITH  index_options ]
                                )*    
                            ')' 
                            [ PARTITION BY partition_definition ]
                            [ WITH  table_options ]
column_definition      ::=  column_identifier data_type [ NOT NULL ]
primary_key            ::=  column_identifier [ ',' column_identifier (ASC|DESC)]                         
index_method_definition  ::= { KV | SEARCH }  
index_options            ::=  '(' 
                                  option_definition (',' option_definition )* 
                              ')'
partition_definition   ::=  HASH '(' column_identifier (',' column_identifier )* ')'
table_options          ::=  '(' option_definition (',' option_definition )*  ')'
option_definition      ::=  option_identifer '=' string_literal 

Perbedaan

Sintaks CREATE TABLE sangat berbeda antara LindormTable dan LindormTSDB. Tabel berikut membandingkan perbedaan tersebut.

Elemen sintaks

LindormTable

LindormTSDB

Nama tabel (table_identifier)

Definisi kolom (column_definition)

Kunci utama (primary_key)

Ekspresi indeks (KEY|INDEX)

✖️

Partisi (partition_definition)

✖️

Atribut tabel (table_options)

✖️

Catatan penggunaan

Nama tabel (table_identifier)

Perhatikan persyaratan berikut untuk nama tabel:

  • Dapat berisi angka, huruf kapital, huruf kecil, titik (.), tanda hubung (-), dan garis bawah (_).

  • Tidak boleh diawali dengan titik (.) atau tanda hubung (-).

  • Harus terdiri dari 1 hingga 255 karakter.

Definisi kolom (column_definition)

Elemen sintaks

Wajib

Deskripsi

Nama kolom (column_identifier)

Ya

  • Dapat berisi angka, huruf kapital, huruf kecil, titik (.), tanda hubung (-), dan garis bawah (_).

  • Kata kunci yang dicadangkan tidak dapat digunakan sebagai nama kolom.

  • Panjangnya tidak boleh melebihi 255 byte.

Tipe data (data_type)

Ya

Untuk informasi tentang tipe data yang didukung, lihat Tipe data.

Penting

Saat membuat tabel deret waktu, perhatikan hal-hal berikut jika Anda menggunakan tipe data TIMESTAMP:

  • Anda hanya dapat menentukan satu kolom sebagai tipe TIMESTAMP.

  • LindormTSDB menyandikan dan mengurai timestamp berdasarkan UTC+8.

  • Pada beberapa sistem warisan, timestamp Unix masih diproses sebagai nilai 32-bit. Kami menyarankan Anda mengalikan timestamp tersebut dengan 1000 sebelum menulisnya ke LindormTSDB. Jika Anda menulis timestamp tersebut langsung ke LindormTSDB tanpa konversi, akan terjadi bias interpretasi semantik. Misalnya, timestamp 1641009600 diinterpretasikan sebagai 2022-01-01 12:00:00 pada sistem warisan, tetapi diinterpretasikan sebagai 1970-01-20 07:50:09 (UTC+8) di LindormTSDB.

Kendala NULL

Tidak

Menentukan apakah nilai kolom dapat bernilai NULL.

Penting

Lindorm SQL tidak memeriksa batasan NULL. Pemeriksaan ini dilakukan oleh mesin penyimpanan.

Metode pemeriksaan batasan NULL bergantung pada aturan validasi mesin penyimpanan. Aturan ini berbeda-beda untuk mesin penyimpanan yang berbeda. Oleh karena itu, Anda mungkin tetap dapat menulis nilai NULL meskipun telah menentukan NOT NULL.

Untuk memastikan data ditulis dengan benar, ikuti persyaratan berikut:

  • Kolom kunci primer tidak boleh null. Anda harus menentukan NOT NULL untuk kolom kunci primer saat membuat tabel.

  • Untuk kolom non-kunci primer, kami menyarankan agar Anda tidak menentukan NOT NULL dalam definisi kolom.

Kunci utama (primary_key)

Kunci primer adalah pengidentifikasi unik untuk data dalam sebuah tabel. Kunci primer terdiri dari satu atau beberapa kolom. Anda harus menentukan kunci primer (PRIMARY KEY) saat membuat tabel.

Penting

Kunci primer tidak dapat diubah setelah dibuat. Rancang kunci primer Anda dengan hati-hati.

Saat menggunakan pernyataan CREATE TABLE untuk membuat tabel, perhatikan hal-hal berikut:

Jenis mesin

Catatan penggunaan kunci primer

LindormTable

  • Panjang maksimum kolom kunci primer tunggal adalah 2 KB.

  • Total panjang semua kolom kunci utama tidak boleh melebihi 30 KB.

  • Panjang maksimum kolom non-kunci primer tunggal tidak boleh melebihi 2 MB.

LindormTSDB

  • Pada kunci primer tabel deret waktu, kolom bertipe data VARCHAR disebut kolom tag, sedangkan kolom bertipe data TIMESTAMP disebut kolom timestamp.

  • Tipe data kolom kunci primer harus berupa VARCHAR atau TIMESTAMP.

  • Kunci primer dapat berisi satu atau beberapa kolom bertipe VARCHAR, tetapi hanya boleh memiliki satu kolom bertipe TIMESTAMP.

  • Pada tabel deret waktu, kami menyarankan Anda menggunakan pengidentifikasi unik sumber data sebagai PRIMARY KEY. Contohnya termasuk ID perangkat pada skenario Internet of Things (IoT), pengidentifikasi unik kendaraan pada skenario Internet of Vehicles (IoV), serta ID aplikasi atau ip:port pada skenario pemantauan. Untuk informasi lebih lanjut, lihat Praktik terbaik dalam merancang PRIMARY KEY.

Ekspresi indeks (KEY|INDEX)

Saat menggunakan pernyataan CREATE TABLE untuk membuat tabel indeks, Anda dapat menggunakan kata kunci KEY atau INDEX guna menentukan indeks yang akan dibuat.

Penting
  • Ekspresi indeks (KEY|INDEX) hanya didukung oleh LindormTable 2.7.7 dan versi selanjutnya serta Lindorm SQL 2.8.6.0 dan versi selanjutnya.

  • Untuk informasi tentang versi LindormTable dan Lindorm SQL, lihat Riwayat versi LindormTable dan Riwayat versi SQL. Jika Anda tidak dapat meningkatkan ke versi yang diperlukan melalui konsol, hubungi dukungan teknis Lindorm di DingTalk melalui s0s3eg3.

Catatan penggunaan

  • Jika Anda tidak secara eksplisit menentukan nama indeks, sistem akan menghasilkan nama default dengan format NamaTabel_idx_${Nomor_Inkremen_Auto}.

  • Saat ini, Anda hanya dapat membuat indeks sekunder dan indeks pencarian menggunakan ekspresi indeks.

  • Redundansi indeks sekunder:

    Lindorm SQL 2.9.3.10 dan versi selanjutnya

    Jika Anda membuat indeks sekunder tanpa menentukan INCLUDE, semua kolom tidak disertakan secara default.

    Lindorm SQL versi sebelum 2.9.3.10

    Jika Anda membuat indeks sekunder tanpa menentukan INCLUDE, semua kolom disertakan secara default.

    Catatan

    Hal ini setara dengan mengatur atribut indeks INDEX_COVERED_TYPE menjadi COVERED_ALL_COLUMNS_IN_SCHEMA. Jika tabel merupakan tabel dinamis, hal ini setara dengan COVERED_DYNAMIC_COLUMNS.

  • Jika Anda menentukan klausa KEY atau INDEX saat membuat tabel tetapi tidak secara eksplisit menentukan atribut MUTABILITY dan CONSISTENCY, tabel akan menggunakan dua nilai default berikut: CONSISTENCY = 'strong' dan MUTABILITY='MUTABLE_LATEST'.

  • Jika pernyataan CREATE TABLE mencakup ekspresi indeks, sistem akan terlebih dahulu membuat tabel, lalu membuat indeks. Jika terjadi pengecualian selama pembuatan indeks, tabel dan indeks yang telah dibuat mungkin tetap ada dan tidak dihapus atau dibersihkan secara otomatis. Anda dapat melihatnya menggunakan pernyataan seperti SHOW dan DESCRIBE. Namun, Anda mungkin tidak dapat menulis data atau menjalankan kueri. Kami menyarankan agar Anda membersihkan tabel dan indeks yang tersisa, lalu membuatnya kembali.

Partisi (partition_definition)

Pemartisian hanya didukung oleh LindormTSDB. Pada tabel deret waktu, kolom yang digunakan untuk PARTITION BY harus berupa kolom VARCHAR dalam definisi kunci primer.

Saat membuat tabel, Anda dapat menggunakan pernyataan PARTITION BY HASH(column1, column2, ..., columnN) untuk secara eksplisit menentukan satu atau beberapa kolom sebagai dasar partisi hash. Contohnya: PARTITION BY HASH(c1, p1).

Atribut tabel (table_options)

Atribut tabel (table_options) hanya didukung oleh LindormTable. Anda dapat menggunakan kata kunci WITH untuk menambahkan atribut tabel berikut:

Opsi (option_identifer)

Tipe

Deskripsi

COMPRESSION

STRING

Algoritma kompresi untuk tabel. Nilai yang valid adalah:

  • SNAPPY

  • ZSTD

  • LZ4

Catatan

Pada versi LindormTable sebelum 2.3.4, tidak ada algoritma kompresi yang ditentukan secara default. Pada LindormTable 2.3.4 dan versi selanjutnya, algoritma ZSTD digunakan secara default.

TTL

INT

Waktu hidup (TTL) data, dalam satuan detik (s).

Catatan
  • Secara default, opsi TTL kosong, yang berarti data tidak kedaluwarsa.

  • Anda dapat menambahkan TTL=<WaktuYangDitentukan> ke pernyataan CREATE TABLE untuk mengatur TTL data untuk tabel. Anda juga dapat mengatur TTL menjadi string kosong untuk menghapus TTL data. Untuk informasi lebih lanjut, lihat Contoh.

COMPACTION_MAJOR_PERIOD

LONG

Periode sistem untuk melakukan major compaction, dalam milidetik (ms). Untuk informasi lebih lanjut, lihat Tentukan periode major compaction.

Catatan

Nilai default: Math.Min(TTL, 1728000000 ms). Jika Anda tidak mengatur TTL, nilai default parameter ini adalah 20 hari (20 × 24 × 60 × 60 × 1000 ms = 1728000000 ms).

MUTABILITY

STRING

Berkaitan dengan indeks. Parameter ini mengklasifikasikan pola penulisan untuk tabel utama. Nilai default adalah MUTABLE_LATEST.

Semua nilai yang valid tercantum di bawah ini:

  • IMMUTABLE

  • IMMUTABLE_ROWS

  • MUTABLE_LATEST

  • MUTABLE_ALL

  • MUTABLE_UDT

Untuk informasi lebih lanjut tentang nilai-nilai tersebut, lihat Indeks sekunder asli berkinerja tinggi.

Penting

Nilai parameter MUTABILITY tidak dapat diubah setelah tabel indeks dibuat. Untuk menyesuaikan parameter ini, Anda harus terlebih dahulu menghapus semua tabel indeks. Kami menyarankan Anda mencadangkan data sebelum melakukan operasi ini untuk mencegah kehilangan data.

CONSISTENCY

STRING

Atribut konsistensi tabel. Untuk instans multi-zona, parameter ini menentukan konsistensi data antara data primer dan replika. Terdapat dua tingkat berikut:

  • eventual: konsistensi akhir. Ini adalah nilai default.

  • strong: konsistensi kuat.

Penting

Untuk instans multi-zona, jika data dibaca sebelum ditulis, seperti pada operasi peningkatan, penambahan, atau pembaruan indeks, Anda harus mengatur parameter CONSISTENCY tabel utama menjadi strong untuk memastikan konsistensi data antara data primer dan replika.

NUMREGIONS

INT

Jumlah region yang akan dibuat sebelumnya untuk tabel.

CHS

INT

Batas pemisahan data panas dan dingin, dalam satuan detik.

Catatan
  • Untuk mengatur batas pemisahan data panas dan dingin, Anda harus mengaktifkan fitur penyimpanan dingin. Untuk informasi lebih lanjut tentang fitur ini dan cara mengaktifkannya, lihat Pengantar pemisahan data panas dan dingin.

  • Saat mengatur batas pemisahan data panas dan dingin, Anda juga harus menyetel CHS_L2='storagetype=COLD'.

STARTKEY dan ENDKEY

Tipe data yang sama dengan kolom pertama dalam PRIMARY KEY

Kunci awal dan akhir untuk partisi region yang dibuat sebelumnya.

Catatan
  • Jika Anda menentukan STARTKEY dan ENDKEY, Anda juga harus menentukan NUMREGIONS. Jika Anda menentukan STARTKEY dan ENDKEY tanpa menentukan NUMREGIONS, pengaturan tersebut tidak berlaku.

  • Nilai literal string yang ditentukan untuk STARTKEY dan ENDKEY secara implisit dikonversi ke tipe data kolom pertama dalam PRIMARY KEY. Nilai-nilai tersebut digunakan sebagai kunci awal dan akhir partisi. Saat ini, Anda hanya dapat menentukan STARTKEY dan ENDKEY untuk tipe data berikut.

    • SMALLINT

    • INTEGER

    • BIGINT

    • CHAR

    • VARCHAR

    • FLOAT

    • DOUBLE

SPLITKEYS

Tipe data yang sama dengan kolom pertama dalam PRIMARY KEY

Kunci awal untuk semua partisi yang dibagi sebelumnya pada tabel.

Catatan
  • SPLITKEYS didukung mulai dari LindormTable 2.5.4.

  • Saat menentukan nilai SPLITKEYS sebagai string, gunakan koma (,) untuk memisahkan kunci awal partisi yang dibagi sebelumnya. Koma yang diapit sepasang tanda kutip ganda dianggap sebagai karakter biasa.

  • Anda tidak dapat menggunakan SPLITKEYS bersamaan dengan NUMREGIONS, STARTKEY, dan ENDKEY.

  • Seperti halnya STARTKEY dan ENDKEY, nilai literal string yang ditentukan secara implisit dikonversi ke tipe data kolom pertama dalam PRIMARY KEY. Nilai-nilai tersebut digunakan sebagai kunci awal partisi. Hanya tipe data berikut yang didukung.

    • SMALLINT

    • INTEGER

    • BIGINT

    • CHAR

    • VARCHAR

    • FLOAT

    • DOUBLE

SPLITALGO

STRING

Menentukan algoritma pemisahan untuk pra-partisi. Saat ini, hanya algoritma pemisahan berikut yang didukung:

  • HexStringSplit: membagi kunci utama berdasarkan byte heksadesimal.

  • UniformSplit: membagi kunci primer secara merata berdasarkan nilai byte aslinya.

DYNAMIC_COLUMNS

STRING

Menentukan apakah kolom dinamis diaktifkan. Nilai yang valid:

  • True: Ya.

  • False: Tidak. Ini adalah nilai default.

Catatan

Kolom dinamis hanya mendukung tipe Varbinary.

VERSIONS

STRING

Jumlah versi yang disimpan untuk nilai kolom. Nilainya harus berupa bilangan bulat yang lebih besar dari atau sama dengan 1. Nilai default adalah 1, yang berarti satu versi disimpan. Lindorm mendukung penyimpanan beberapa versi nilai kolom. Untuk informasi lebih lanjut tentang manajemen data multi-versi, lihat Manajemen data multi-versi.

Penting

Nilai VERSIONS yang besar dapat memengaruhi kinerja kueri dan penyimpanan data. Hindari menetapkan nilai yang terlalu besar. Kami menyarankan Anda menetapkan VERSIONS menjadi 1.

BLOB_BUCKET_NAME

STRING

Membuat bucket untuk tabel yang berisi kolom BLOB. Nilainya adalah nama bucket kustom.

Nama bucket harus mengikuti aturan berikut:

  • Hanya dapat berisi huruf kecil, angka, titik (.), dan tanda hubung (-).

  • Harus terdiri dari 3 hingga 63 karakter.

  • Tidak boleh diawali atau diakhiri dengan tanda hubung (-).

  • Tidak boleh berisi titik (.) berurutan.

Catatan
  • BLOB_BUCKET_NAME didukung mulai dari LindormTable 2.6.4.

  • Jika Anda tidak menyetel kolom BLOB saat membuat tabel tetapi menyetel atribut BLOB_BUCKET_NAME, sistem tidak akan memeriksa nama bucket tersebut.

Catatan

Versi LindormTable sebelum 2.2.16 tidak mendukung kata kunci WITH untuk mengatur atribut tabel. Anda harus membungkus nama atribut tabel dengan tanda kutip tunggal ('). Nilai atribut ditentukan berdasarkan tipenya; jika berupa string, nilai tersebut juga harus dibungkus dengan tanda kutip tunggal ('). Contohnya: CREATE TABLE IF NOT EXISTS t1(c1 varchar, c2 bigint, c3 int, c4 int, PRIMARY KEY(c1,c2)) 'CONSISTENCY'='strong';.

Contoh

Buat tabel

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
);

Verifikasi hasil

Jalankan pernyataan DESCRIBE table sensor; untuk memverifikasi bahwa tabel telah berhasil dibuat.

Buat indeks saat membuat tabel

Buat indeks sekunder saat membuat tabel.

CREATE TABLE IF NOT EXISTS sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time),
    KEY (temperature, time)
);

Verifikasi hasil

Jalankan pernyataan DESCRIBE table sensor; untuk memverifikasi bahwa tabel telah berhasil dibuat, lalu jalankan SHOW INDEX FROM sensor; untuk memverifikasi pembuatan indeks sekunder.

Tentukan TTL data dan algoritma kompresi

Buat tabel lebar, atur TTL data menjadi 30 hari (2.592.000 detik), dan atur algoritma kompresi menjadi ZSTD.

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (COMPRESSION='ZSTD', TTL='2592000');

Verifikasi hasil

  • Jalankan pernyataan DESCRIBE table sensor; untuk memverifikasi bahwa tabel telah berhasil dibuat.

  • Pada halaman Overview sistem manajemen kluster, klik nama tabel tujuan di database tujuan. Di area Current Table Details, klik View Table Properties untuk melihat nilai parameter COMPRESSION dan TTL.

Tentukan periode major compaction

Buat tabel lebar dan atur periode major compaction menjadi 10 hari (864.000.000 milidetik).

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (COMPACTION_MAJOR_PERIOD='864000000');

Verifikasi hasil

  • Jalankan pernyataan DESCRIBE table sensor; untuk memverifikasi bahwa tabel telah berhasil dibuat.

  • Pada halaman Overview sistem manajemen kluster, klik nama tabel tujuan di database tujuan. Di area Current Table Details, klik View Table Properties untuk melihat nilai parameter COMPACTION_MAJOR_PERIOD.

Aktifkan kolom dinamis

Buat tabel lebar dan atur parameter DYNAMIC_COLUMNS ke TRUE untuk mendukung penulisan data kolom dinamis ke dalam tabel.

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (DYNAMIC_COLUMNS='TRUE');

Verifikasi hasil

  • Jalankan pernyataan DESCRIBE table sensor; untuk memverifikasi bahwa tabel telah berhasil dibuat.

  • Pada halaman Overview sistem manajemen kluster, klik nama tabel tujuan di database tujuan. Di area Current Table Details, klik View Table Properties untuk melihat nilai parameter DYNAMIC_COLUMNS.

Tentukan batas pemisahan data panas dan dingin

Buat tabel lebar dan atur batas pemisahan data panas dan dingin. Sistem akan mengarsipkan data berdasarkan batas ini.

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (CHS = '86400', CHS_L2 = 'storagetype=COLD');

Verifikasi hasil

  • Jalankan pernyataan DESCRIBE table sensor; untuk memverifikasi bahwa tabel telah berhasil dibuat.

  • Pada halaman Overview sistem manajemen kluster, klik nama tabel tujuan di database tujuan. Di area Current Table Details, klik View Table Properties untuk melihat nilai parameter CHS dan CHS_L2.

Atur beberapa atribut sekaligus

Buat tabel lebar dan tentukan algoritma kompresi, TTL data, serta batas pemisahan data panas dan dingin.

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (
    COMPRESSION='ZSTD', 
    CHS = '86400', 
    CHS_L2 = 'storagetype=COLD', 
    TTL = '2592000');

Verifikasi hasil

  • Jalankan pernyataan DESCRIBE table sensor; untuk memverifikasi bahwa tabel telah berhasil dibuat.

  • Pada halaman Overview sistem manajemen kluster, klik nama tabel tujuan di database tujuan. Di area Current Table Details, klik View Table Properties untuk melihat nilai parameter COMPRESSION, CHS, CHS_L2, dan TTL.

Atur partisi

Buat tabel lebar dengan lima partisi yang telah ditentukan sebelumnya. Kunci awal partisi adalah 1000 dan kunci akhir adalah 9000.

CREATE TABLE sensor (
  p1 INTEGER NOT NULL, 
  c1 INTEGER, 
  c2 VARCHAR, 
  c3 VARCHAR,
  PRIMARY KEY(p1)
) WITH (NUMREGIONS='5', STARTKEY='1000', ENDKEY='9000');

Verifikasi hasil

  • Jalankan pernyataan DESCRIBE table sensor; untuk memverifikasi bahwa tabel telah berhasil dibuat.

  • Pada halaman Overview sistem manajemen kluster, klik nama tabel tujuan di database tujuan. Di area Shard Details, Anda dapat melihat nilai parameter startKey dan endKey untuk setiap shard.

Tentukan kunci awal beberapa partisi

Buat tabel lebar dan tentukan sebelumnya kunci awal untuk lima partisi. Setelah tabel dibuat, tabel tersebut akan berisi enam partisi yang telah dibagi sebelumnya secara default.

CREATE TABLE sensor (
  p1 INT NOT NULL,
  p2 INT NOT NULL,
  c1 VARCHAR,
  c2 BIGINT,
  PRIMARY KEY(p1, p2)
) WITH (SPLITKEYS = '100000,300000,500000,700000,900000');

Verifikasi hasil

  • Jalankan pernyataan DESCRIBE table sensor; untuk memverifikasi bahwa tabel telah berhasil dibuat.

  • Pada halaman Overview sistem manajemen kluster, klik nama tabel tujuan di database tujuan. Di area Shard Details, Anda dapat melihat nilai parameter startKey dan endKey untuk setiap shard.

Tentukan kolom kunci partisi secara eksplisit

Sebagian besar skenario kueri melibatkan pengambilan data instan dari satu perangkat. Oleh karena itu, Anda dapat secara eksplisit menentukan device_id sebagai kolom kunci partisi untuk pemartisian data.

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) PARTITION BY HASH(device_id);

Verifikasi hasil

Jalankan pernyataan DESCRIBE TABLE sensor; untuk memverifikasi hasilnya.