Anda dapat membuat tabel partisi hibrida untuk menyimpan data di berbagai media penyimpanan.
Gambar berikut mengilustrasikan cara kerja partisi hibrida.
Tabel partisi hibrida menyimpan partisi pada media penyimpanan yang berbeda, memisahkan data panas dari data dingin. Sebagai contoh, Anda dapat menyimpan data panas di PolarFileSystem lokal dan data dingin di Object Storage Service (OSS). Pendekatan ini secara signifikan mengurangi biaya penyimpanan data dingin tanpa mengorbankan kinerja query untuk data panas atau memengaruhi operasi DML pada data tersebut.
Fitur ini berada dalam fase rilis canary. Untuk menggunakan fitur ini, kunjungi Quota Center, cari kuota yang sesuai dengan menggunakan ID kuota polardb_mysql_hybrid_partition, lalu klik Apply di kolom Tindakan.
Prasyarat
Kluster Anda harus menjalankan PolarDB for MySQL 8.0.2 dengan versi revisi 8.0.2.2.5 atau lebih baru. Untuk informasi tentang cara memeriksa versi kluster, lihat bagian "Query the engine version" di topik Versi Engine.
File data partisi yang ingin Anda buat harus sudah ada di OSS. Nama file data harus mematuhi persyaratan berikut:
Ekstensi nama file dan penanda partisi harus dalam huruf besar.
Nama tabel dan nama partisi harus sama dengan yang ada di database.
Contoh: Jika partisi
p1dari tabelt1menggunakan engine CSV, nama file data untuk partisi tersebut adalaht1#P#p1.CSV.
Peringatan
Tabel partisi hibrida harus berisi setidaknya satu partisi yang menggunakan engine InnoDB.
Saat membuat tabel partisi hibrida yang berisi subpartisi, partisi harus menggunakan engine yang sama dengan tabel, dan setidaknya satu subpartisi harus menggunakan engine InnoDB.
Tabel partisi hibrida hanya mendukung tipe data RANGE dan
LIST.Pernyataan DML berikut tidak didukung pada tabel partisi hibrida dengan partisi yang menggunakan engine OSS:
INSERT,UPDATE,DELETE, danLOAD.Jika kluster Anda menjalankan PolarDB for MySQL 8.0.2.2.17 atau lebih baru, Anda dapat melakukan operasi ADD dan DROP pada tabel partisi hibrida. Jika kluster Anda menjalankan versi lain, Anda tidak dapat melakukan operasi ADD atau DROP pada tabel partisi hibrida.
Parameter
Anda dapat mengonfigurasi parameter pada halaman Parameters dari kluster PolarDB sesuai kebutuhan bisnis Anda. Tabel berikut menjelaskan parameter tersebut.
Parameter | Deskripsi |
loose_hybrid_partition_query_mix_engine_enabled | Menentukan apakah akan menanyakan data partisi yang tidak menggunakan engine InnoDB dalam tabel partisi hibrida. Nilai valid:
|
Buat tabel partisi hibrida
Anda dapat membuat tabel partisi hibrida dengan menggunakan server OSS yang ada. Jika tidak ada server OSS, Anda dapat mengeksekusi pernyataan berikut untuk membuat server OSS:
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>"}');Hanya kluster yang menjalankan PolarDB for MySQL V8.0.2 dengan versi revisi 8.0.2.2.6 atau lebih baru yang mendukung parameter my_oss_sts_token.
Tabel berikut menjelaskan parameter dalam pernyataan sebelumnya.
Parameter | Tipe Data | Deskripsi |
oss_server_name | String | Nama server OSS. Catatan Nama harus unik secara global. Nama dapat memiliki panjang hingga 64 karakter dan bersifat case-insensitive. Nama yang lebih dari 64 karakter akan dipotong secara otomatis. Anda dapat menentukan nama server OSS sebagai string yang dikutip. |
my_oss_endpoint | String | Titik akhir server OSS. Catatan Jika Anda mengakses database Anda dari server Alibaba Cloud, gunakan titik akhir internal untuk menghindari biaya lalu lintas Internet. Titik akhir internal berisi kata kunci "internal". |
my_oss_bucket | String | Bucket tempat file data disimpan. Sebelum mengimpor data, Anda harus membuat bucket OSS. |
my_oss_access_key_id | String | ID AccessKey dari akun yang digunakan untuk mengakses OSS. |
my_oss_access_key_secret | String | Rahasia AccessKey dari akun yang digunakan untuk mengakses OSS. |
my_oss_prefix | String | Awalan jalur OSS. Parameter ini menentukan jalur penyimpanan file data. Nilai parameter tidak boleh mengandung karakter khusus. Anda tidak dapat meninggalkan parameter ini kosong. |
my_oss_sts_token | String | Kredensial sementara yang digunakan untuk mengakses OSS. Untuk informasi tentang cara mendapatkan kredensial sementara yang digunakan untuk mengakses OSS, lihat Gunakan kredensial sementara yang disediakan oleh STS untuk mengakses OSS. Catatan Kredensial sementara memiliki waktu kedaluwarsa default. Jika kredensial sementara kedaluwarsa, eksekusi pernyataan berikut untuk mereset semua parameter di |
Berikut adalah contoh pembuatan 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
);Query data dalam tabel partisi hibrida
Anda dapat menanyakan data partisi yang menggunakan engine berbeda dengan salah satu metode berikut:
Jika Anda mengatur parameter
hybrid_partition_query_mix_engine_enabledke ON di konsol, hasil query akan mencakup data dalam partisi yang tidak menggunakan engine InnoDB. Contoh:SELECT * FROM t1;t1adalah tabel partisi hibrida.Jika Anda mengatur parameter
hybrid_partition_query_mix_engine_enabledke OFF di konsol, Anda dapat menanyakan data dalam partisi tertentu. Contoh:SELECT * FROM t1 partition (p1);t1adalah tabel partisi hibrida.p1adalah partisi.