Topik ini menjelaskan cara menggunakan fitur pengarsipan data dingin. Sebelum memulai, konfirmasikan format pengarsipan dan pastikan kluster Anda memenuhi persyaratan. Untuk informasi selengkapnya, lihat Perbandingan format arsip dan Cakupan yang berlaku.
Skenario
Arsip ke format CSV
Jika edisi produk Anda adalah Edisi Kluster, versi Milvus Anda harus salah satu dari berikut ini:
MySQL 8.0.1, revisi 8.0.1.1.47 atau lebih baru.
MySQL 8.0.2, revisi 8.0.2.2.10 atau lebih baru.
Jika edisi produk Anda adalah Kluster Multi-master (Limitless) Edisi, versi Milvus Anda harus 8.0.1.0.13 atau lebih baru.
Arsip ke format ORC
Jika edisi produk Anda adalah Edisi Kluster, revisi Anda harus 8.0.2.2.30 atau lebih baru.
Jika edisi produk Anda adalah Kluster Multi-master (Limitless) Edisi, revisi Anda harus 8.0.2.2.30 atau lebih baru.
Arsip ke format X-Engine
Arsip tabel standar:
MySQL 8.0.1, revisi 8.0.1.1.31 atau lebih baru.
MySQL 8.0.2, revisi 8.0.2.2.12 atau lebih baru.
Arsip tabel partisi: MySQL 8.0.2, revisi 8.0.2.2.12 atau lebih baru.
Arsip ke tabel berorientasi kolom X-Engine: MySQL 8.0.2, revisi 8.0.2.2.33 atau lebih baru.
Arsip Data Dingin
Arsip ke OSS: Pertama, aktifkan pengarsipan data dingin. Saat mengarsipkan data dingin, arsip tabel standar atau tabel partisi sesuai kebutuhan.
Tabel standar
Tabel partisi
Arsip manual sebagian data partisi atau arsip ke tabel eksternal OSS. Untuk informasi selengkapnya, lihat Arsip tabel partisi atau Arsip tabel partisi ke tabel eksternal OSS.
Buat kebijakan DLM untuk mengarsipkan data dingin secara otomatis. Untuk informasi selengkapnya, lihat Arsip otomatis data dingin.
Arsip ke X-Engine: Pertama, aktifkan pengarsipan data dingin dan engine kompresi tinggi (X-Engine). Saat mengarsipkan data dingin, arsip tabel standar atau tabel partisi sesuai kebutuhan.
Tabel standar
Tabel partisi
Arsip manual sebagian data partisi ke partisi X-Engine. Untuk informasi selengkapnya, lihat Arsip dalam format engine X-Engine.
Buat kebijakan DLM untuk mengarsipkan data dingin secara otomatis. Untuk informasi selengkapnya, lihat Arsip tabel partisi dalam format engine X-Engine.
Kueri Data Dingin
Tabel standar
Anda dapat melakukan kueri terhadap data yang diarsipkan tanpa mengubah metode akses tabel, terlepas dari format pengarsipannya.
Tabel partisi
Arsip ke tabel eksternal OSS: Ubah metode akses tabel untuk melakukan kueri terhadap data yang diarsipkan. Artinya, lakukan kueri terhadap tabel arsip tertentu. Untuk informasi selengkapnya, lihat Arsip tabel partisi ke tabel eksternal OSS.
Arsip tabel partisi: Tabel yang diarsipkan merupakan tabel partisi hibrida. Untuk informasi selengkapnya, lihat Kueri partisi hibrida.
Anda dapat melakukan kueri data partisi lintas engine 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 terhadap data dari partisi yang menggunakan jenis engine penyimpanan apa pun. Contohnya:
-- t1 adalah tabel partisi hibrida. p1 adalah nama partisi. SELECT * FROM t1 PARTITION (p1);
Karena data dingin yang diarsipkan disimpan dalam format satu tabel, multi-file, gunakan kueri paralel untuk optimasi kueri saat melihat data dingin. Untuk informasi selengkapnya, lihat Kueri paralel data dingin.
Modifikasi Data Dingin
Untuk memodifikasi data dingin di OSS secara tidak sering, gunakan sintaks ALTER untuk mengimpor data dingin dari OSS kembali ke storage space PolarDB guna dimodifikasi. Setelah diimpor, data dingin di OSS secara bersamaan dihapus. Setelah memodifikasi data, arsip kembali data tabel yang telah dimodifikasi ke OSS.
Tabel Standar
Sintaks
ALTER TABLE table_name ENGINE[=]engine_name;Parameter
Parameter | Deskripsi |
table_name | Nama tabel OSS yang akan diimpor. |
engine_name | Jenis engine setelah diimpor. |
Catatan
Ketika tabel OSS bersifat read-only, operasi modifikasi (INSERT, UPDATE, dan DELETE) tidak didukung. Untuk memodifikasi data dingin yang diarsipkan, ubah tabel OSS menjadi tabel read-write, seperti tabel InnoDB. Saat memodifikasi tabel OSS read-only, pesan error-nya sebagai berikut:
1036 - Table 't' is read onlyContoh
Di database oss_test, impor tabel OSS t kembali ke storage space PolarDB.
ALTER TABLE `oss_test`.`t` ENGINE = InnoDB;Modifikasi data tabel InnoDB t. Setelah memodifikasi data, arsip kembali tabel engine InnoDB t ke OSS. Contohnya:
ALTER TABLE t ENGINE = CSV CONNECTION = 'default_oss_server';atau
ALTER TABLE t ENGINE = CSV STORAGE OSS;Tabel Partisi
Sintaks
ALTER TABLE table_name REORGANIZE PARTITION part_name INTO (partition_definition);Parameter
Parameter | Deskripsi |
table_name | Nama tabel OSS yang akan diimpor. |
part_name | Nama partisi yang akan diimpor. |
partition_definition | Harus konsisten dengan |
Contoh
Di database, impor data dari partisi p1 dari tabel partisi t yang diarsipkan di OSS kembali ke storage space PolarDB.
ALTER TABLE t REORGANIZE PARTITION p1 INTO(PARTITION p1 values less than(100));Hapus Data Dingin
Hanya kluster PolarDB for MySQL dengan versi berikut yang mendukung penghapusan file terkait dari OSS:
8.0.1 dengan versi minor 8.0.1.1.42 atau lebih baru.
8.0.2 dengan versi minor 8.0.2.2.23 atau lebih baru.
Jika versi minor kluster Anda tidak memenuhi persyaratan, Anda tidak dapat menghapus file terkait dari OSS. Anda harus melakukan upgrade versi minor kluster Anda. Untuk informasi selengkapnya, lihat Kelola versi minor.
Setelah Anda menghapus tabel di OSS atau mengimpornya kembali ke storage space PolarDB, file di OSS tidak dihapus secara otomatis. Setelah memastikan bahwa data tersebut tidak lagi digunakan, hapus file terkait di OSS sebagai berikut. Untuk informasi selengkapnya, lihat Hapus file terkait di OSS.
Tabel standar dan tabel eksternal OSS
Gunakan
DROP TABLEuntuk menghapus tabel yang diarsipkan. Kemudian, gunakan perintahCALL dbms_oss.delete_table_file('database_name', 'table_name');untuk menghapus file terkait di OSS.Tabel partisi
Gunakan perintah
CALL dbms_oss.delete_table_file('database_name', 'table_name');untuk menghapus file terkait di OSS.
Menghapus file terkait di OSS merupakan operasi asinkron. Penghapusan lengkap hanya terjadi setelah semua node dalam kluster tidak lagi bergantung pada file OSS tersebut. Selain itu, proses ini mungkin mengalami sedikit penundaan selama trafik tinggi.
Opsi FORCE STORAGE OSS
Hanya PolarDB for MySQL versi 8.0.2 dengan versi minor 8.0.2.2.29 atau lebih baru yang mendukung opsi FORCE STORAGE OSS untuk memaksa penghapusan file OSS.
Tabel standar dan tabel eksternal OSS
DROP TABLE table_name [FORCE STORAGE OSS];CatatanOpsi FORCE STORAGE OSS pada perintah DROP TABLE menyediakan pembersihan satu klik. Opsi ini secara otomatis menghapus file penyimpanan OSS terkait saat Anda menghapus skema tabel.
Tabel partisi
ALTER TABLE table_name DROP PARTITION part_name [FORCE STORAGE OSS];CatatanKlausa DROP PARTITION pada pernyataan ALTER TABLE, dikombinasikan dengan opsi FORCE STORAGE OSS, memungkinkan penghapusan sinkron metadata tabel partisi dan file penyimpanan OSS terkait.
CHANGE PARTITION ENGINE
ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV|ORC [FORCE STORAGE OSS]CatatanFitur pengarsipan data dingin CHANGE PARTITION ENGINE menyediakan mekanisme pemaksaan overwrite, yang memungkinkan penggantian otomatis file dengan nama yang sama.
Perbandingan Format
Bandingkan format di bawah ini untuk memilih yang paling sesuai dengan kebutuhan pengarsipan data dingin Anda.
Pengarsipan tabel standar, tabel eksternal OSS, dan tabel partisi memiliki batasan spesifik. Tinjau dengan cermat sebelum mengarsipkan untuk menghindari dampak pada bisnis.
Setelah pengarsipan, data dingin disimpan di Object Storage Service (OSS) default sistem, bukan bucket OSS milik Anda. Saat ini, Anda hanya dapat melihat daftar data yang diarsipkan di Konsol PolarDB.
Opsi pengarsipan tabel partisi:
Pengarsipan Tabel Partisi: Mengarsipkan satu partisi dari tabel partisi secara langsung. Data tetap berada di tabel asli, tetapi media penyimpanan untuk partisi tersebut berubah dari PolarDB (penyimpanan panas) ke OSS (penyimpanan dingin), menghasilkan tabel partisi hibrida yang berisi partisi panas dan dingin.
Arsip tabel partisi ke tabel eksternal OSS: Memindahkan data satu partisi keluar dari tabel asli ke tabel eksternal OSS baru yang independen. Tabel asli kehilangan partisi tersebut.
Item perbandingan | CSV | ORC | X-Engine |
Format open-source | Ya | Ya | Tidak |
Metode pengarsipan |
| Pengarsipan manual: |
|
Kecepatan pengarsipan | Cepat Catatan Hanya mendukung pengarsipan single-threaded. | Lambat Catatan Hanya mendukung pengarsipan single-threaded. | Cepat Catatan Data diarsipkan ke storage space PolarDB. |
Kecepatan kueri |
Catatan Mendukung pembacaan data baik single-threaded maupun multi-threaded. |
Catatan Hanya mendukung pembacaan data single-threaded. |
|
Dukungan transaksi | Tidak | Tidak | Ya |
Dukungan indeks | Tidak | Tidak | Ya |
Cara memodifikasi data yang diarsipkan | Tabel yang diarsipkan di OSS bersifat read-only. Untuk memodifikasinya, impor terlebih dahulu data OSS kembali ke storage space PolarDB. | Anda dapat menjalankan operasi DML pada tabel yang diarsipkan. | |
Ruang penyimpanan yang digunakan | Sama dengan tabel di engine InnoDB tanpa indeks. | Untuk volume data yang sama, menggunakan 45% ruang penyimpanan yang dibutuhkan oleh file CSV. | Mengompresi ruang penyimpanan hingga 10%–50% dari penggunaan engine InnoDB. Tingkat kompresi tepatnya tergantung pada karakteristik data. |
Backup dan restore | Tidak didukung. Catatan
| Didukung. | |
Dampak setelah pengarsipan |
|
| Setelah pengarsipan, Anda dapat melakukan kueri terhadap data yang diarsipkan tanpa mengubah cara akses tabel. |