全部产品
Search
文档中心

PolarDB:Buat partisi hibrida

更新时间:Feb 15, 2026

Partisi hibrida memungkinkan Anda mengakses data yang disimpan di mesin penyimpanan berbeda.

Diagram berikut menunjukkan cara kerja partisi hibrida:

image

Tabel partisi hibrida menyimpan partisinya di media penyimpanan berbeda, sehingga memungkinkan pemisahan data dingin dan data panas untuk dikelola secara terpisah. Misalnya, data panas dapat disimpan di PFS lokal, sedangkan data dingin disimpan di OSS. Pendekatan ini mengurangi biaya penyimpanan data dingin tanpa memengaruhi kinerja kueri atau operasi DML pada data panas.

Catatan

Fitur tabel partisi hibrida sedang dalam rilis canary. Untuk menggunakan fitur ini, buka Quota Center, cari kuota dengan Quota ID polardb_mysql_hybrid_partition, lalu klik Request di kolom Actions.

Prasyarat

  • Kluster Anda harus menjalankan PolarDB for MySQL 8.0.2 dengan versi mesin minor 8.0.2.2.5 atau yang lebih baru. Anda dapat memastikan versi kluster Anda dengan memeriksa nomor versi.

  • File data untuk partisi tersebut harus sudah ada di OSS. Nama file tersebut harus mengikuti aturan penamaan berikut:

    • Ekstensi file dan penanda partisi harus dalam huruf kapital.

    • Nama tabel dan partisi harus sama dengan yang ada di database.

    Misalnya, jika partisi p1 dari tabel t1 menggunakan mesin penyimpanan CSV, file datanya harus diberi nama t1#P#p1.CSV.

Catatan penting

  • Setiap tabel partisi hibrida harus mencakup setidaknya satu partisi yang dibuat pada engine InnoDB.

  • Jika Anda membuat tabel partisi hibrida dengan subpartisi, engine partisi hash harus sesuai dengan engine tabel. Selain itu, setidaknya satu subpartisi harus dibuat pada engine InnoDB.

  • Tabel partisi hibrida hanya mendukung tipe partisi RANGE dan LIST.

  • Anda tidak dapat menjalankan operasi DML, seperti INSERT, UPDATE, DELETE, atau LOAD, pada partisi OSS dalam tabel partisi hibrida.

  • Kluster yang menjalankan PolarDB for MySQL 8.0.2.2.17 atau yang lebih baru mendukung operasi ADD dan DROP pada tabel partisi hibrida. Versi sebelumnya tidak mendukung operasi ini.

Parameter

Saat menggunakan tabel partisi hibrida, Anda harus mengatur parameter berikut di Parameters kluster PolarDB Anda.

Parameter

Deskripsi

loose_hybrid_partition_query_mix_engine_enabled

Mengontrol cara kueri memindai tabel partisi hibrida. Nilai yang valid:

  • OFF (default): Kueri hanya mengembalikan data dari partisi InnoDB dan X-Engine.

  • ON: Kueri mengembalikan data dari partisi InnoDB, X-Engine, dan OSS.

Buat partisi hibrida

Anda dapat membuat partisi hibrida menggunakan server OSS yang sudah ada. Jika belum ada server OSS, Anda dapat menggunakan sintaks berikut untuk membuatnya:

CREATE SERVER oss_server_name
FOREIGN DATA WRAPPER oss
OPTIONS(EXTRA_SERVER_INFO '{"oss_endpoint": "<my_oss_endpoint>",
"oss_bucket": "<my_oss_bucket>", "oss_access_key_id": "<my_oss_access_key_id>",
"oss_access_key_secret": "<my_oss_access_key_secret>", "oss_prefix":"<my_oss_prefix>", "oss_sts_token": "<my_oss_sts_token>"}');
Catatan

Parameter my_oss_sts_token didukung pada kluster PolarDB for MySQL 8.0.2 dengan versi Revision 8.0.2.2.6 atau yang lebih baru.

Tabel berikut menjelaskan parameter-parameter tersebut:

Parameter

Tipe

Catatan

oss_server_name

String

Nama server OSS.

Catatan

Ini adalah parameter global dan harus unik. Tidak peka huruf besar/kecil serta maksimal 64 karakter. Nama yang melebihi 64 karakter akan dipotong. Anda dapat membungkus nama dengan tanda kutip.

my_oss_endpoint

String

Nama domain untuk wilayah OSS.

Catatan

Jika Anda mengakses database dari host Alibaba Cloud, gunakan titik akhir internal wilayah yang sama (nama domain yang mencantumkan "internal") untuk menghindari lalu lintas internet.

my_oss_bucket

String

Bucket OSS tempat file data berada. Buat bucket ini terlebih dahulu di OSS.

my_oss_access_key_id

String

ID akun OSS.

my_oss_access_key_secret

String

Kunci akun OSS.

my_oss_prefix

String

Awalan path OSS. Menentukan lokasi penyimpanan file data. Tidak boleh berisi karakter khusus atau kosong.

my_oss_sts_token

String

Kredensial akses temporary OSS. Untuk detailnya, lihat Dapatkan kredensial akses temporary.

Catatan

Nilai my_oss_sts_token memiliki Waktu hidup (TTL) default. Jika my_oss_sts_token kedaluwarsa, atur ulang semua nilai dalam EXTRA_SERVER_INFO menggunakan perintah berikut:

ALTER SERVER server_name OPTIONS(EXTRA_SERVER_INFO '{"oss_endpoint": "<my_oss_endpoint>",
"oss_bucket": "<my_oss_bucket>", "oss_access_key_id": "<my_oss_access_key_id>",
"oss_access_key_secret": "<my_oss_access_key_secret>", "oss_prefix":"<my_oss_prefix>", "oss_sts_token": "<my_oss_sts_token>"}');

Contoh berikut menunjukkan cara membuat tabel partisi hibrida:

CREATE TABLE t2(a1 INT, a2 VARCHAR(30), a3 VARCHAR(256))
CONNECTION = "oss_server_name"
PARTITION BY RANGE(a1)
(
   PARTITION p1 values less than (1000) ENGINE = CSV,
   PARTITION p2 values less than (2000) ENGINE = CSV,
   PARTITION p3 values less than (3000) ENGINE = INNODB
);

Kueri partisi hibrida

Anda dapat melakukan kueri data partisi dari berbagai mesin penyimpanan dengan salah satu dari tiga cara berikut:

  • Atur parameter hybrid_partition_query_mix_engine_enabled ke ON. Ini memungkinkan kueri mengembalikan data dari partisi InnoDB, X-Engine, dan OSS. Contohnya:

    -- t1 adalah tabel partisi hibrida.
    SELECT * FROM t1;
  • Atur parameter hybrid_partition_query_mix_engine_enabled ke OFF. Kueri kemudian hanya akan mengembalikan data dari partisi InnoDB dan X-Engine. Contohnya:

    -- t1 adalah tabel partisi hibrida.
    SELECT * FROM t1;
  • Tentukan nama partisi. Hal ini memungkinkan Anda melakukan kueri data dari partisi yang menggunakan jenis mesin penyimpanan apa pun. Contohnya:

    -- t1 adalah tabel partisi hibrida. p1 adalah nama partisi.
    SELECT * FROM t1 PARTITION (p1);