全部产品
Search
文档中心

Tablestore:Buat tabel data

更新时间:Jul 31, 2025

Topik ini menjelaskan cara membuat tabel data Tablestore menggunakan PHP SDK.

Catatan penggunaan

Setelah membuat tabel data, tunggu hingga tabel dimuat sebelum melakukan operasi pada data. Jika tidak, operasi tersebut akan gagal. Proses ini biasanya memakan waktu beberapa detik.

Prasyarat

Inisialisasi klien Tablestore

Deskripsi metode

public function createTable(array $request)

Deskripsi parameter $request

  • table_meta (wajib) objek: Informasi struktur tabel, mencakup parameter berikut.

    Nama

    Tipe

    Deskripsi

    table_name (wajib)

    string

    Nama tabel data.

    primary_key_schema (wajib)

    array

    Informasi tentang kunci utama.

    • Anda dapat mengonfigurasi 1 hingga 4 kolom kunci utama, yang diurutkan secara default dalam urutan menaik. Kolom kunci utama pertama berfungsi sebagai kunci partisi.

    • Tipe data kunci utama meliputi STRING, INTEGER, dan BINARY. Kolom kunci utama bertipe integer yang bukan kunci partisi dapat diatur sebagai kolom kunci utama auto-increment.

    defined_column (opsional)

    array

    Informasi kolom pradefinisi.

    • Kolom pradefinisi adalah kolom atribut yang telah didefinisikan sebelumnya dan dapat digunakan untuk membuat indeks sekunder dan indeks pencarian.

    • Tipe data kolom pradefinisi meliputi STRING, INTEGER, BLOB, DOUBLE, atau BOOLEAN.

  • table_options (opsional) objek: Informasi konfigurasi tabel, mencakup parameter berikut.

    Nama

    Tipe

    Deskripsi

    time_to_live (opsional)

    int

    Siklus hidup data dalam detik. Nilai default: -1.

    • Jika parameter ini diatur ke -1, data tidak pernah kedaluwarsa. Sebaliknya, nilai minimumnya adalah 86400 (1 hari). Data yang melebihi siklus hidup akan otomatis dihapus.

    • Jika Anda ingin menggunakan indeks pencarian atau indeks sekunder, Anda harus mengatur siklus hidup data ke -1 atau mengatur parameter allow_update ke false.

    max_versions (opsional)

    int

    Jumlah maksimum versi. Nilai default: 1.

    • Jika Anda ingin menggunakan indeks pencarian atau indeks sekunder, jumlah maksimum versi harus diatur ke 1.

    deviation_cell_version_in_sec (opsional)

    int

    Offset versi maksimum dalam detik. Nilai default: 86400 (1 hari).

    • Perbedaan antara timestamp data yang ditulis dan waktu sistem saat ini harus berada dalam rentang offset versi maksimum. Jika tidak, penulisan data akan gagal.

    • Rentang versi valid untuk data kolom atribut adalah [max(Waktu tulis data - Offset versi maksimum, Waktu tulis data - Nilai TTL), Waktu tulis data + Offset versi maksimum).

    allow_update (opsional)

    bool

    Menentukan apakah pembaruan diizinkan. Nilai default: true.

    • Jika parameter ini diatur ke false, Anda tidak dapat memperbarui data menggunakan metode updateRow().

  • index_metas (opsional) objek: Daftar indeks sekunder. Setiap indeks mencakup parameter berikut.

    Nama

    Tipe

    Deskripsi

    name (wajib)

    string

    Nama indeks.

    primary_key (wajib)

    array

    Kolom kunci utama dari indeks.

    • Kolom kunci utama dari indeks merupakan kombinasi dari kolom kunci utama dan kolom pradefinisi dari tabel data.

    • Jika Anda ingin membuat indeks sekunder lokal, kolom kunci utama pertama dari indeks harus menjadi kolom kunci utama pertama dari tabel data.

    defined_column (wajib)

    array

    Kolom pradefinisi dari indeks.

    • Kolom pradefinisi berasal dari kolom pradefinisi tabel data.

    index_type (opsional)

    string

    Tipe indeks. Nilai valid:

    • GLOBAL_INDEX (nilai default): indeks sekunder global.

    • LOCAL_INDEX: indeks sekunder lokal.

    index_update_mode (opsional)

    string

    Mode pembaruan indeks. Nilai valid:

    • ASYNC_INDEX (nilai default): pembaruan asinkron. Mode pembaruan untuk indeks sekunder global harus diatur ke pembaruan asinkron.

    • SYNC_INDEX: pembaruan sinkron. Mode pembaruan untuk indeks sekunder lokal harus diatur ke pembaruan sinkron.

  • stream_spec (opsional) objek: Informasi konfigurasi Stream, mencakup parameter berikut.

    Nama

    Tipe

    Deskripsi

    enable_stream (opsional)

    bool

    Menentukan apakah akan mengaktifkan Stream. Nilai default: false.

    expiration_time (opsional)

    int

    Waktu kedaluwarsa Stream, yang menunjukkan periode retensi log inkremental. Unit: jam. Nilai maksimum: 168 (7 hari).

    • Jika enable_stream diatur ke true, Anda harus mengatur expiration_time.

  • reserved_throughput (wajib) objek: Throughput baca dan tulis yang dicadangkan, dalam CU. Hanya instans kinerja tinggi dalam Mode CU yang dapat diatur ke nilai non-nol dan berlaku.

Kode contoh

Buat tabel data

Kode contoh berikut membuat tabel test_table yang berisi satu kunci utama bertipe String.

$request = array (
    // Informasi struktur tabel
    'table_meta' => array (
        'table_name' => 'test_table',
        // Minimal satu kunci utama diperlukan untuk membuat tabel data
        'primary_key_schema' => array (
            array('id', PrimaryKeyTypeConst::CONST_STRING)
        ),
        // (Opsional) Tambahkan kolom pradefinisi
        'defined_column' => array (
            array('name', DefinedColumnTypeConst::DCT_STRING)
        )
    ), 
    // (Opsional) Informasi konfigurasi tabel
    'table_options' => array (
        // (Opsional) Siklus hidup data, -1 menunjukkan bahwa data tidak pernah kedaluwarsa
        'time_to_live' => -1,
        // (Opsional) Jumlah maksimum versi
        'max_versions' => 1,
        // (Opsional) Offset versi maksimum
        'deviation_cell_version_in_sec' => 86400,
        // (Opsional) Apakah pembaruan diizinkan
        'allow_update' => true
    ), 
    // (Opsional) Atur informasi Stream
    'stream_spec' => array (
        'enable_stream' => true,
        'expiration_time' => 168
    ),
    // Throughput baca dan tulis yang dicadangkan harus diatur saat membuat tabel data (hanya instans kinerja tinggi dalam Mode CU yang mendukung pengaturan nilai non-nol untuk throughput baca dan tulis yang dicadangkan)
    'reserved_throughput' => array (
        'capacity_unit' => array (
            'read' => 0,
            'write' => 0
        )
    )
);

try{
    $client->createTable( $request );
    echo "Pembuatan tabel berhasil.";
} catch (Exception $e) {
    echo "Pembuatan tabel gagal.";
}

Buat tabel data dengan indeks sekunder

Kode contoh berikut membuat tabel data dengan indeks sekunder.

$request = array (
    // Informasi struktur tabel
    'table_meta' => array (
        'table_name' => 'test_table',
        // Kunci utama
        'primary_key_schema' => array (
            array('id', PrimaryKeyTypeConst::CONST_STRING)
        ),
        // Kolom pradefinisi
        'defined_column' => array (
            array('name', DefinedColumnTypeConst::DCT_STRING)
        )
    ), 
    // Throughput baca dan tulis yang dicadangkan (hanya instans kinerja tinggi dalam Mode CU yang mendukung pengaturan nilai non-nol untuk throughput baca dan tulis yang dicadangkan)
    'reserved_throughput' => array (
        'capacity_unit' => array (
            'read' => 0,
            'write' => 0
        )
    ),
    // Informasi indeks sekunder
    'index_metas' => array(
        array(
            'name' => 'test_table_index',
            'primary_key' => array('id'),
            'defined_column' => array('name'),
            'index_type' => IndexTypeConst::LOCAL_INDEX,
            'index_update_mode' => IndexUpdateModeConst::SYNC_INDEX
        )
    )
);

try{
    $client->createTable( $request );
    echo "Pembuatan tabel berhasil.";
} catch (Exception $e) {
    echo "Pembuatan tabel gagal.";
}

Referensi