Sebelum mengarsipkan data dingin, konfirmasikan format arsip yang diinginkan dan pastikan kluster Anda memenuhi persyaratan. Untuk informasi selengkapnya, lihat Perbandingan format arsip dan Prasyarat.
Cakupan penerapan
Mengarsipkan ke format CSV
Edisi kluster adalah Edisi Kluster:
Arsipkan tabel standar:
MySQL 8.0.1 dengan revisi 8.0.1.1.47 atau lebih baru.
MySQL 8.0.2 dengan revisi 8.0.2.2.10 atau lebih baru.
Arsipkan tabel partisi:
MySQL 8.0.2 dengan revisi 8.0.2.2.34.1 atau lebih baru.
Edisi kluster adalah Kluster Multi-master (Limitless) Edition:
MySQL 8.0.1 dengan revisi 8.0.1.0.13 atau lebih baru.
Mengarsipkan ke format ORC
Edisi kluster adalah Edisi Kluster:
Arsipkan tabel standar: MySQL 8.0.2 dengan revisi 8.0.2.2.30 atau lebih baru.
Arsipkan tabel partisi: MySQL 8.0.2 dengan revisi 8.0.2.2.34.1 atau lebih baru.
Edisi kluster adalah Kluster Multi-master (Limitless) Edition: MySQL 8.0.2 dengan revisi 8.0.2.2.30 atau lebih baru.
Mengarsipkan ke format X-Engine
Arsipkan tabel standar:
MySQL 8.0.1 dengan revisi 8.0.1.1.31 atau lebih baru.
MySQL 8.0.2 dengan revisi 8.0.2.2.12 atau lebih baru.
Arsipkan tabel partisi: MySQL 8.0.2 dengan revisi 8.0.2.2.12 atau lebih baru.
Arsipkan ke tabel column-store X-Engine: MySQL 8.0.2 dengan revisi 8.0.2.2.34.1 atau lebih baru.
Parameter
Saat menggunakan fitur pengarsipan data dingin, Anda dapat mengonfigurasi parameter berikut pada halaman Parameters kluster Anda sesuai kebutuhan bisnis.
Parameter | Level | Deskripsi |
| Global | Sakelar untuk fitur pengarsipan data dingin otomatis (DLM). Nilai yang valid:
Catatan
|
| Global | Mengontrol apakah pembuatan atau pengarsipan tabel partisi yang berisi partisi dengan engine non-InnoDB diperbolehkan. Nilai yang valid:
Catatan
|
| Global / Session | Mengontrol apakah manajemen metadata (meta) OSS diaktifkan untuk tabel OSS. Parameter
|
| Global / Session | Mengontrol apakah penyaringan tingkat file (File Filter) diaktifkan saat mengkueri tabel OSS. Fitur ini menggunakan statistik min/max dan filter Bloom untuk melewatkan file data yang tidak relevan dan mengurangi jumlah data OSS yang dipindai. Fitur ini memerlukan parameter
|
| Global / Session | Sakelar untuk pemangkasan otomatis partisi OSS yang diarsipkan oleh fitur Manajemen Siklus Hidup Data (DLM). Saat operasi DML (UPDATE/DELETE) dieksekusi, sistem secara otomatis memangkas partisi yang sedang diarsipkan ke OSS (ORC/CSV) dan partisi yang telah diarsipkan ke OSS. Hal ini mencegah operasi DML diblokir oleh proses pengarsipan dan menyelesaikan konflik antara DML dan DDL. Nilai yang valid:
|
| Global / Session | Sakelar untuk pemangkasan kueri otomatis. Saat kueri SELECT dieksekusi, sistem secara otomatis memangkas partisi OSS (ORC/CSV) untuk mencegah kueri lambat akibat akses ke data dingin. Nilai yang valid:
|
Mengarsipkan data dingin
Arsipkan ke OSS: Anda harus terlebih dahulu mengaktifkan pengarsipan data dingin. Saat mengarsipkan data dingin, Anda dapat memilih untuk mengarsipkan tabel umum atau tabel partisi.
Tabel umum
Tabel partisi
Anda dapat mengarsipkan secara manual partisi tertentu dari tabel partisi secara in-place atau mengarsipkannya ke tabel eksternal OSS. Untuk informasi selengkapnya, lihat Arsipkan partisi secara in-place atau Arsipkan partisi ke tabel eksternal OSS.
Buat kebijakan manajemen siklus hidup data (DLM) untuk mengarsipkan data dingin secara otomatis. Untuk informasi selengkapnya, lihat Mengarsipkan data dingin secara otomatis.
Arsipkan ke X-Engine: Anda harus terlebih dahulu mengaktifkan pengarsipan data dingin dan engine kompresi tinggi (X-Engine). Saat mengarsipkan data dingin, Anda dapat memilih untuk mengarsipkan tabel umum atau tabel partisi.
Tabel umum
Tabel partisi
Anda dapat mengarsipkan secara manual partisi tertentu dari tabel partisi ke partisi X-Engine. Untuk informasi selengkapnya, lihat Arsipkan data ke X-Engine.
Buat kebijakan manajemen siklus hidup data (DLM) untuk mengarsipkan data dingin secara otomatis. Untuk informasi selengkapnya, lihat Arsipkan tabel partisi ke X-Engine.
Kueri data dingin
Tabel umum
Terlepas dari format arsip yang Anda pilih, Anda dapat mengkueri data yang diarsipkan tanpa mengubah cara akses tabel.
Tabel partisi
Arsipkan ke tabel eksternal OSS: Mengkueri data ini memerlukan metode akses yang berbeda: Anda harus mengkueri tabel arsip tertentu. Untuk informasi selengkapnya, lihat Arsipkan partisi ke tabel eksternal OSS.
Arsipkan partisi secara in-place: Tabel menjadi tabel partisi hibrida setelah pengarsipan. Untuk informasi selengkapnya, lihat Kueri partisi hibrida.
Anda dapat mengkueri partisi pada engine penyimpanan yang berbeda dengan tiga cara:
Atur parameter
hybrid_partition_query_mix_engine_enabledmenjadi ON. Kueri kemudian mengembalikan data dari partisi InnoDB, X-Engine, dan OSS. Contoh:-- t1 adalah tabel partisi hibrida. SELECT * FROM t1;Atur parameter
hybrid_partition_query_mix_engine_enabledmenjadi OFF. Kueri kemudian hanya mengembalikan data dari partisi InnoDB dan X-Engine. Contoh:-- t1 adalah tabel partisi hibrida. SELECT * FROM t1;Kueri partisi tertentu berdasarkan nama. Ini mengambil data dari partisi yang ditentukan, terlepas dari engine penyimpanannya. Contoh:
-- t1 adalah tabel partisi hibrida, dan p1 adalah nama partisi yang akan dikueri. SELECT * FROM t1 partition (p1);
Sistem menyimpan data dingin yang diarsipkan dalam format multi-file untuk setiap tabel. Untuk mengoptimalkan performa kueri, gunakan kueri paralel. Untuk informasi selengkapnya, lihat Kueri paralel pada data dingin.
Memodifikasi data dingin
Untuk memodifikasi data dingin yang disimpan di Object Storage Service (OSS) secara jarang, gunakan pernyataan ALTER untuk memindahkannya kembali ke storage space PolarDB untuk dimodifikasi. Sistem kemudian secara otomatis menghapus data tersebut dari OSS. Setelah Anda memodifikasi data, Anda dapat mengarsipkan kembali data tabel ke OSS.
Tabel umum
Sintaksis
ALTER TABLE table_name ENGINE[=]engine_name;Parameter
Parameter | Deskripsi |
table_name | Nama tabel OSS yang akan dipindahkan kembali ke storage space PolarDB. |
engine_name | Engine penyimpanan yang akan digunakan setelah tabel dipindahkan kembali. |
Catatan penggunaan
Tabel OSS bersifat read-only. Anda tidak dapat memodifikasinya menggunakan pernyataanINSERT,UPDATE, atauDELETE. Untuk memodifikasi data dingin yang diarsipkan, Anda harus mengonversi tabel OSS menjadi tabel read-write, seperti tabel InnoDB. Upaya memodifikasi tabel OSS read-only akan menghasilkan error berikut:
1036 - Table 't' is read onlyContoh
Pindahkan tabel OSS t dari database oss_test kembali ke storage space PolarDB.
ALTER TABLE `oss_test`.`t` ENGINE = InnoDB;Modifikasi data dalam tabel InnoDBt. Setelah modifikasi selesai, arsipkan kembali tabelt dari engine InnoDB ke OSS. Contoh:
ALTER TABLE t ENGINE = CSV CONNECTION = 'default_oss_server';atau
ALTER TABLE t ENGINE = CSV STORAGE OSS;Tabel partisi
Untuk memodifikasi data dingin dalam tabel partisi, kluster PolarDB for MySQL Anda harus berada pada versi 8.0.2 dengan versi revisi 8.0.2.2.34 atau lebih baru.
Sintaksis
ALTER TABLE table_name REORGANIZE PARTITION part_name INTO (partition_definition);Parameter
Parameter | Deskripsi |
table_name | Nama tabel OSS yang akan dipindahkan kembali. |
part_name | Nama partisi yang akan dipindahkan kembali. |
partition_definition | Harus konsisten dengan |
Contoh
Pindahkan data dalam 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
-
Fitur ini hanya didukung pada kluster PolarDB for MySQL yang menjalankan versi berikut:
-
Versi 8.0.1, dan versi minor harus 8.0.1.1.42 atau lebih baru.
-
Versi 8.0.2, dan versi minor harus 8.0.2.2.23 atau lebih baru.
-
-
Jika versi minor kluster Anda tidak memenuhi persyaratan di atas, Anda tidak dapat menghapus file yang sesuai di OSS. Tingkatkan versi minor kluster Anda. Untuk informasi selengkapnya, lihat manajemen versi minor.
Setelah Anda menghapus tabel di OSS atau mengimpornya kembali ke storage space PolarDB, file di OSS tidak dihapus secara otomatis. Setelah Anda memastikan bahwa data tersebut tidak lagi diperlukan, hapus file yang sesuai di OSS sebagai berikut. Untuk informasi selengkapnya, lihat Hapus file yang sesuai di OSS.
Tabel umum dan tabel eksternal OSS
Gunakan
DROP TABLEuntuk menghapus tabel yang diarsipkan. Kemudian, jalankan perintahCALL dbms_oss.delete_table_file('database_name', 'table_name');untuk menghapus file yang sesuai di OSS.Tabel partisi
Jalankan perintah
CALL dbms_oss.delete_table_file('database_name', 'table_name');untuk menghapus file yang sesuai di OSS.
Operasi penghapusan file yang sesuai di OSS dilakukan secara asinkron. File tersebut benar-benar dihapus hanya setelah semua node dalam kluster tidak lagi bergantung padanya. Proses ini mungkin tertunda saat traffic tinggi.
Opsi FORCE STORAGE OSS
Opsi FORCE STORAGE OSS untuk menghapus paksa file OSS hanya didukung pada kluster PolarDB for MySQL 8.0.2 dengan versi minor 8.0.2.2.29 atau lebih baru.
Tabel umum dan tabel eksternal OSS
DROP TABLE table_name [FORCE STORAGE OSS];CatatanOpsi FORCE STORAGE OSS pada perintah DROP TABLE menyediakan fitur pembersihan satu klik. Fitur ini secara otomatis menghapus file penyimpanan OSS terkait saat Anda menghapus struktur tabel.
Tabel partisi
ALTER TABLE table_name DROP PARTITION part_name [FORCE STORAGE OSS];CatatanKlausa DROP PARTITION pada pernyataan ALTER TABLE, saat digunakan dengan opsi FORCE STORAGE OSS, memungkinkan Anda menghapus metadata tabel partisi dan file penyimpanan OSS-nya secara sinkron.
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 overwrite paksa yang secara otomatis mengganti file dengan nama yang sama.
Perbandingan format pengarsipan
Saat mengarsipkan data dingin, Anda dapat mengevaluasi dan memilih format yang sesuai berdasarkan perbandingan berikut.
Pengarsipan tabel standar, tabel eksternal OSS, dan tabel partisi memiliki batasan spesifik. Tinjau batasan ini sebelum mengarsipkan untuk menghindari dampak pada bisnis Anda.
Setelah data dingin diarsipkan, data tersebut disimpan di bucket Object Storage Service (OSS) default yang disediakan sistem, bukan di OSS milik Anda. Saat ini, Anda hanya dapat melihat daftar data yang diarsipkan di Konsol PolarDB.
Metode pengarsipan tabel partisi:
Arsipkan tabel partisi: Mengarsipkan partisi secara in-place. Data tetap berada di tabel asli, tetapi media penyimpanan untuk partisi tersebut berubah dari PolarDB (penyimpanan panas) ke OSS (penyimpanan dingin). Tabel menjadi tabel partisi hibrida yang berisi partisi panas dan dingin.
Arsipkan partisi ke tabel eksternal OSS: Memindahkan data partisi keluar dari tabel dan menyimpannya di tabel eksternal OSS baru yang independen. Partisi asli dihapus dari tabel sumber.
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 penyimpanan PolarStore. |
Kecepatan kueri |
Catatan Mendukung pembacaan baik single-threaded maupun multi-threaded. |
Catatan Hanya mendukung pembacaan single-threaded. |
|
Dukungan transaksi | Tidak | Tidak | Ya |
Kemampuan pengindeksan | Tidak | Tidak | Ya |
Cara memodifikasi data yang diarsipkan | Tabel yang diarsipkan di OSS bersifat read-only. Untuk memodifikasi data, Anda harus mengimpornya kembali dari OSS ke penyimpanan PolarDB. | Tabel yang diarsipkan mendukung operasi DML. | |
Penggunaan ruang penyimpanan | Sama dengan tabel InnoDB tanpa indeks. | Untuk jumlah data yang sama, ORC menggunakan sekitar 45% ruang penyimpanan yang digunakan CSV. | Mengompresi data menjadi 10%–50% dari ukuran InnoDB-nya. Rasio kompresi aktual tergantung pada karakteristik data. |
Pencadangan dan pemulihan | Tidak didukung. Catatan
| Didukung. | |
Dampak setelah pengarsipan |
|
| Setelah pengarsipan, Anda dapat mengkueri data yang diarsipkan tanpa mengubah metode akses. |