全部产品
Search
文档中心

Tablestore:Indeks Sekunder

更新时间:Jun 24, 2025

Jika Anda ingin menggunakan satu atau beberapa kolom atribut dari tabel data sebagai kondisi kueri untuk mengambil data, Anda dapat menentukan kolom atribut tersebut sebagai kolom kunci utama dari indeks sekunder yang dibuat untuk tabel data. Dengan cara ini, Anda dapat dengan cepat mengambil data berdasarkan kolom atribut. Setelah membuat indeks sekunder, Anda hanya perlu menulis data ke tabel data dan kemudian menggunakan indeks sekunder untuk mengambil data. Topik ini menjelaskan cara membuat indeks sekunder, menanyakan informasi tentang tabel indeks, menggunakan tabel indeks untuk mengambil dan mengekspor data, serta menghapus tabel indeks di CLI Tablestore.

Prasyarat

  • Tabel data dengan parameter max Versions disetel ke 1 telah dibuat. Untuk informasi lebih lanjut, lihat Operasi pada tabel data.

  • Kolom yang telah ditentukan sebelumnya telah ditentukan untuk tabel data. Untuk informasi lebih lanjut, lihat Operasi pada tabel data.

Buat indeks sekunder

null

Indeks sekunder diklasifikasikan menjadi indeks sekunder global dan indeks sekunder lokal. Untuk informasi lebih lanjut, lihat Ikhtisar.

Sintaks Perintah

create_index -t <tableName> -n <indexName> -i <indexType> --pk <primaryKeyName,primaryKeyName> --attr <definedColumn,definedColumn>

Tabel berikut menjelaskan parameter yang dapat dikonfigurasikan untuk membuat indeks sekunder.

Parameter

Diperlukan

Contoh

Deskripsi

-t,--table

Tidak

mytable

Nama tabel data.

-n,--name

Ya

index0

Nama indeks sekunder yang ingin Anda buat.

-i,--index_type

Tidak

global

Tipe indeks sekunder. Nilai valid:

  • global: indeks sekunder global. Ini adalah nilai default.

    Tablestore secara otomatis menyinkronkan data dari kolom terindeks dan kolom kunci utama tabel data ke kolom tabel indeks yang ingin Anda buat dalam mode asinkron. Latensi sinkronisasi berada dalam beberapa milidetik.

  • local: indeks sekunder lokal.

    Tablestore secara otomatis menyinkronkan data dari kolom terindeks dan kolom kunci utama tabel data ke kolom tabel indeks yang ingin Anda buat dalam mode sinkron. Setelah data ditulis ke tabel data, Anda dapat langsung mengambil data di tabel indeks.

-k,--pk

Ya

uid,pid

Kolom indeks tabel indeks. Kolom indeks merupakan kombinasi dari kolom kunci utama dan kolom yang telah ditentukan sebelumnya dari tabel data.

Jika Anda menggunakan indeks sekunder lokal, kolom kunci utama pertama dari tabel indeks harus sama dengan kolom kunci utama pertama dari tabel data tempat tabel indeks dibuat.

-a,--attr

Ya

col0,col1

Kolom atribut tabel indeks. Kolom atribut merupakan kombinasi dari kolom yang telah ditentukan sebelumnya dari tabel data.

-b,--without_base_data

Tidak

T/A

Menentukan bahwa indeks sekunder yang ingin Anda buat tidak termasuk data yang ada di tabel data.

Contoh

Kode sampel berikut memberikan contoh cara membuat indeks sekunder global bernama index0 untuk tabel data mytable. Dalam contoh ini, indeks sekunder global mencakup data yang ada dari tabel data.

create_index -t mytable -n index0 -i global --pk uid,pid -a name,col0

Kode sampel berikut memberikan contoh cara membuat indeks sekunder global bernama index1 untuk tabel data mytable. Dalam contoh ini, indeks sekunder global tidak mencakup data yang ada dari tabel data.

create_index -t mytable -n index1 -i global --pk uid,pid -a name,col0 -b

Kode sampel berikut memberikan contoh cara membuat indeks sekunder lokal bernama index2 untuk tabel data mytable. Dalam contoh ini, indeks sekunder lokal mencakup data yang ada dari tabel data.

create_index -t mytable -n index2 -i local -k uid,name -a col0,col1

Gunakan tabel

Pilih tabel tempat Anda ingin melakukan operasi tabel atau operasi data.

Sintaks Perintah

use --wc -t <tableName>

Parameter

Diperlukan

Contoh

Deskripsi

--wc

Tidak

T/A

Menentukan bahwa tabel tempat Anda ingin melakukan operasi adalah tabel data atau tabel indeks.

-t,--table

Ya

index0

Nama tabel indeks.

Contoh

Kode sampel berikut memberikan contoh cara menggunakan tabel indeks bernama index0:

use -t index0

Menanyakan informasi tentang indeks sekunder

Menanyakan informasi tentang tabel dan menyimpan informasi tersebut ke file JSON di komputer lokal Anda.

Sintaks Perintah

desc -t <tableName> -o /lokasilokal/namafilenya.json

Tabel berikut menjelaskan parameter yang dapat dikonfigurasikan untuk menanyakan informasi tentang tabel.

Parameter

Diperlukan

Contoh

Deskripsi

-t,--table

Tidak

index0

Nama tabel data atau tabel indeks.

-f,--print_format

Tidak

json

Format keluaran informasi tentang tabel. Nilai default: json. Nilai valid: json dan table.

-o,--output

Tidak

/tmp/describe_table_meta.json

Jalur file JSON lokal tempat informasi tentang tabel disimpan.

Contoh

Kode sampel berikut memberikan contoh cara menanyakan informasi tentang tabel saat ini:

desc

Kode sampel berikut memberikan contoh cara menanyakan informasi tentang tabel saat ini dan menyimpan informasi tersebut ke file lokal bernama describe_table_meta.json:

desc -o  /tmp/describe_table_meta.json

Mengambil data menggunakan indeks sekunder

Membaca satu baris data

Anda dapat membaca data dari tabel data dan mengekspornya ke file JSON lokal.

null

Jika baris yang ingin dibaca tidak ada, hasil kosong akan dikembalikan.

Sintaks Perintah

get --pk '[nilaiKunciUtama,nilaiKunciUtama]'

Tabel berikut menjelaskan parameter dalam perintah.

Parameter

Diperlukan

Contoh

Deskripsi

-k,--pk

Ya

["86",6771]

Nilai kolom kunci utama dari baris. Nilai parameter ini adalah array.

null

Jumlah dan tipe kolom kunci utama yang Anda tentukan harus sama dengan jumlah dan tipe kolom kunci utama yang sebenarnya di tabel data.

-c,--columns

Tidak

name,uid

Kolom yang ingin Anda baca. Anda dapat menentukan nama kolom kunci utama atau kolom atribut. Jika Anda tidak menentukan kolom, semua data di baris dikembalikan.

--max_version

Tidak

1

Jumlah maksimum versi data yang dapat dibaca.

--time_range_start

Tidak

1626860469000

Rentang versi data yang ingin Anda baca. Parameter time_range_start menentukan timestamp awal dan parameter time_range_end menentukan timestamp akhir. Rentang ini mencakup nilai awal dan mengecualikan nilai akhir.

--time_range_end

Tidak

1626865270000

--time_range_specific

Tidak

1626862870000

Versi spesifik data yang ingin Anda baca.

-o, --output

Tidak

/tmp/querydata.json

Jalur lokal file JSON tempat hasil kueri diekspor.

Contoh

Kode sampel berikut memberikan contoh cara membaca baris data di mana nilai kolom kunci utama pertama adalah "86" dan nilai kolom kunci utama kedua adalah 6771.

get --pk '["86",6771]'

Memindai data

Anda dapat memindai tabel data untuk mendapatkan semua data atau sejumlah baris tertentu di tabel data.

Sintaks Perintah

scan --limit limit

Tabel berikut menjelaskan parameter dalam perintah.

Parameter

Diperlukan

Contoh

Deskripsi

--limit

Tidak

10

Jumlah maksimum baris yang ingin Anda pindai. Jika Anda tidak mengonfigurasi parameter ini, semua data di tabel data dipindai.

Contoh

Kode sampel berikut memberikan contoh cara memindai hingga 10 baris data di tabel data.

scan --limit 10

Ekspor data

Anda dapat mengekspor data dari tabel data ke file JSON lokal.

Sintaks Perintah

scan -o /lokasilokal/namafilenya.json -c namaKolomAtribut,namaKolomAtribut,namaKolomAtribut

Tabel berikut menjelaskan parameter dalam perintah.

Parameter

Diperlukan

Contoh

Deskripsi

-c, --columns

Ya

uid,name

Himpunan kolom yang ingin Anda ekspor. Anda dapat menentukan nama kolom kunci utama atau kolom atribut. Jika Anda tidak menentukan nama kolom, semua data di baris diekspor.

--max_version

Tidak

1

Jumlah maksimum versi data yang dapat diekspor.

--time_range_start

Tidak

1626865596000

Rentang versi data yang ingin Anda ekspor. Parameter time_range_start menentukan timestamp awal dan parameter time_range_end menentukan timestamp akhir. Rentang ini mencakup nilai awal dan mengecualikan nilai akhir.

--time_range_end

Tidak

1626869196000

--time_range_specific

Tidak

1626867396000

Versi spesifik data yang ingin Anda ekspor.

--backward

Tidak

T/A

Menentukan bahwa sistem mengurutkan data yang diekspor dalam urutan menurun berdasarkan kunci utama.

-o, --output

Ya

/tmp/mydata.json

Jalur lokal file JSON tempat hasil kueri diekspor.

-l, --limit

Tidak

10

Jumlah maksimum baris yang ingin Anda kembalikan dari kueri.

-b, --begin

Tidak

'["86", 6771]'

Rentang nilai data yang ingin Anda ekspor. Rentang kunci utama adalah interval tertutup di sisi kiri dan terbuka di sisi kanan.

null
  • Jika nilai parameter --begin adalah [null,null], nilai awal rentang data yang ingin Anda ekspor adalah [INF_MIN,INF_MIN]. Ini menentukan bahwa nilai awal di kolom kunci utama pertama dan kedua adalah tak terbatas kecil.

  • Jika nilai parameter --end adalah [null,null], nilai akhir rentang data yang ingin Anda ekspor adalah [INF_MAX,INF_MAX]. Ini menentukan bahwa nilai akhir di kolom kunci utama pertama dan kedua adalah tak terbatas besar.

-e, --end

Tidak

'["86", 6775]'

Contoh

  • Contoh 1

    Kode sampel berikut memberikan contoh cara mengekspor semua data dari tabel saat ini ke file lokal bernama mydata.json.

    scan -o /tmp/mydata.json
  • Contoh 2

    Kode sampel berikut memberikan contoh cara mengekspor data di kolom uid dan name dari tabel saat ini ke file lokal mydata.json.

    scan -o /tmp/mydata.json -c uid,name
  • Contoh 3

    Kode sampel berikut memberikan contoh cara mengekspor data dengan nilai kunci utama dalam rentang tertentu dari tabel saat ini ke file lokal mydata.json. Nilai kolom kunci utama pertama tempat ekspor dimulai adalah "86". Nilai kolom kunci utama kedua tempat ekspor dimulai adalah 6771. Nilai kolom kunci utama pertama tempat ekspor berakhir adalah "86". Nilai kolom kunci utama kedua tempat ekspor berakhir adalah 6775.

    scan -o D:\\0testreport\\mydata.json -b '["86", 6771]' -e '["86", 6775]'
  • Contoh 4

    Kode sampel berikut memberikan contoh cara mengekspor data dengan nilai kunci utama dalam rentang tertentu dari tabel saat ini ke file lokal mydata.json. Nilai kolom kunci utama pertama tempat ekspor dimulai adalah "50" dan nilai kolom kunci utama pertama tempat ekspor berakhir adalah "100". Rentang nilai kolom kunci utama kedua tidak ditentukan.

    scan -o /tmp/mydata.json -b '["50",null]' -e '["100",null]'

Hapus indeks sekunder

Hapus tabel indeks yang tidak lagi diperlukan.

Sintaks Perintah

drop_index -t <tableName> -i <indexName> -y

Parameter

Diperlukan

Contoh

Deskripsi

-t,--table

Tidak

mytable

Nama tabel data.

-i,--index

Ya

index0

Nama indeks sekunder yang ingin Anda hapus.

-y,--yes

Ya

T/A

Menentukan bahwa informasi konfirmasi ditampilkan. Parameter ini diperlukan.

Contoh

Kode sampel berikut memberikan contoh cara menghapus tabel indeks bernama index0 untuk tabel data saat ini:

drop_index -i index0 -y

Kode sampel berikut memberikan contoh cara menghapus tabel indeks bernama index0 untuk tabel data mytable:

drop_index -t mytable -i index0 -y