全部产品
Search
文档中心

PolarDB:Buat tabel partisi hibrida

更新时间:Jul 06, 2025

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.

Catatan

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 p1 dari tabel t1 menggunakan engine CSV, nama file data untuk partisi tersebut adalah t1#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, dan LOAD.

  • 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:

  • ON (default)

  • OFF

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>"}');
Catatan

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 EXTRA_SERVER_INFO:

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>"}');

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_enabled ke ON di konsol, hasil query akan mencakup data dalam partisi yang tidak menggunakan engine InnoDB. Contoh:

    SELECT * FROM t1;

    t1 adalah tabel partisi hibrida.

  • Jika Anda mengatur parameter hybrid_partition_query_mix_engine_enabled ke OFF di konsol, Anda dapat menanyakan data dalam partisi tertentu. Contoh:

    SELECT * FROM t1 partition (p1);

    t1 adalah tabel partisi hibrida. p1 adalah partisi.