Partisi hibrida memungkinkan Anda mengakses data yang disimpan di mesin penyimpanan berbeda.
Diagram berikut menunjukkan cara kerja partisi hibrida:
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.
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
p1dari tabelt1menggunakan mesin penyimpanan CSV, file datanya harus diberi namat1#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
RANGEdanLIST.Anda tidak dapat menjalankan operasi DML, seperti
INSERT,UPDATE,DELETE, atauLOAD, 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:
|
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>"}');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 |
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_enabledke 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_enabledke 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);