Untuk mengurangi biaya penyimpanan data, meningkatkan kinerja kueri, dan memaksimalkan pemanfaatan sumber daya sistem, kluster Alibaba Cloud ClickHouse Community-compatible Edition dan Enterprise Edition yang menggunakan tipe penyimpanan ESSD_L1 atau ESSD_L2 mendukung penyimpanan berjenjang data hot dan cold. Fitur ini memungkinkan Anda menyimpan data pada media penyimpanan yang berbeda berdasarkan frekuensi aksesnya. Topik ini menjelaskan cara mengaktifkan penyimpanan berjenjang data hot dan cold serta mengonfigurasi kebijakan penyimpanan berjenjang.
Prasyarat
Community-compatible edition
-
Kluster menjalankan versi 20.8 atau lebih baru.
-
Fitur pencadangan data dinonaktifkan untuk kluster tersebut.
-
Untuk kluster yang menjalankan versi sebelumnya, Anda dapat melakukan migrasi data ke kluster yang menjalankan versi 20.8 atau lebih baru sebelum mengaktifkan penyimpanan berjenjang data hot dan cold. Untuk informasi selengkapnya, lihat Migrasi data antar kluster Alibaba Cloud ClickHouse Community-compatible Edition.
-
Fitur penyimpanan berjenjang data hot dan cold tidak didukung di wilayah AS (Silicon Valley) dan AS (Virginia).
Enterprise edition
Kluster menggunakan tipe penyimpanan ESSD_L1 atau ESSD_L2. Untuk menggunakan tipe penyimpanan ini, Anda harus mengajukan tiket untuk menambahkan akun Anda ke daftar izin (allowlist).
Latar Belakang
Penyimpanan berjenjang data hot dan cold mengklasifikasikan data menjadi dua kategori berdasarkan frekuensi akses:
-
Hot data: Data yang sering diakses. Data ini disimpan pada disk data hot, seperti ESSD atau ultra disk yang Anda pilih saat pembuatan kluster, untuk akses berkinerja tinggi.
-
Cold data: Data yang jarang diakses. Data ini disimpan pada disk data cold berbiaya lebih rendah untuk penyimpanan hemat biaya. Penyimpanan dingin hanya menggunakan penyimpanan objek OSS dan tidak dapat diubah menjadi ESSD PL0 atau tipe disk kustom lainnya.
Kebijakan penyimpanan untuk penyimpanan berjenjang data hot dan cold adalah sebagai berikut:
Community-compatible edition
|
Kebijakan penyimpanan |
Deskripsi |
|
Kebijakan penyimpanan default |
Data baru ditulis ke disk data hot untuk kueri berkinerja tinggi. Ketika ruang penyimpanan yang digunakan pada disk data hot mencapai ambang batas tertentu, sistem secara otomatis memindahkan bagian data terbesar ke disk data cold untuk membebaskan ruang. |
|
Kebijakan penyimpanan berbasis TTL |
Kebijakan ini memperluas kebijakan penyimpanan default. Anda dapat menambahkan klausa TTL untuk secara otomatis memindahkan semua data yang lebih tua dari interval tertentu ke disk data cold. |
Enterprise edition
Sistem secara otomatis memindahkan data yang tidak lagi dimodifikasi ke OSS berbiaya lebih rendah untuk mengurangi biaya penyimpanan.
-
Global TTL: Di Edisi Perusahaan, Anda dapat mengonfigurasi Global TTL untuk mengontrol penyimpanan berjenjang data hot dan cold.
-
Waktu offload: Setelah Anda mengaktifkan penyimpanan berjenjang data hot dan cold, sistem memindai semua file data setiap hari pukul 00:00 UTC. Sistem memindahkan bagian data yang usianya melebihi Global TTL dari disk data hot ke disk data cold (OSS).
Perhatian
Community-compatible edition
-
Aktifkan fitur ini selama jam sepi. Setelah diaktifkan, kluster akan segera restart. Selama proses restart, Anda hanya dapat melihat informasi kluster dan tidak dapat melakukan peningkatan konfigurasi, penskalaan kluster (scale out/in), atau modifikasi parameter.
-
Anda harus menentukan kebijakan penyimpanan untuk tabel Anda saat menggunakan fitur ini. ApsaraDB for ClickHouse hanya mendukung kebijakan penyimpanan
hot_to_cold. Kebijakan penyimpanan kustom, seperti mengonfigurasi beberapa kebijakan (misalnya,defaultdanhd_policy) yang mengarah ke direktori penyimpanan berbeda, tidak didukung.-
Saat membuat tabel, gunakan
SETTINGS storage_policy = 'hot_to_cold'untuk menentukan kebijakan penyimpanan. -
Ubah kebijakan penyimpanan tabel yang sudah ada.
Setelah 1 Januari 2024
Jalankan pernyataan berikut untuk mengubah kebijakan:
ALTER TABLE <table_name> MODIFY SETTING storage_policy = 'hot_to_cold';Sebelum 1 Januari 2024
Anda dapat menambahkan kebijakan penyimpanan baru melalui operasi manajemen tertentu. Hal ini memungkinkan Anda menggunakan kebijakan baru untuk memigrasikan data dari disk data hot ke disk data cold.
-
-
Fitur ini tidak dapat dinonaktifkan setelah diaktifkan.
-
Menurunkan spesifikasi disk tidak didukung untuk kluster yang telah mengaktifkan penyimpanan berjenjang cold-hot.
Enterprise edition
-
Memodifikasi data di penyimpanan dingin, misalnya melalui operasi
MutationatauOptimize, atau operasiMergeyang dipicu sistem, akan memuat ulang data ke penyimpanan hot untuk membangun kembali file data. File data baru tidak langsung dipindahkan kembali ke penyimpanan dingin. Data tersebut hanya akan di-offload kembali setelah usianya melebihi Global TTL. Oleh karena itu, hindari penambahan, penghapusan, atau modifikasi data dingin secara sering. -
Proses offload tidak instan. Sistem menyesuaikan laju offload secara dinamis berdasarkan faktor-faktor seperti tekanan I/O saat ini pada sistem penyimpanan. Proses ini dapat memakan waktu beberapa jam, tergantung pada jumlah data yang akan di-offload.
-
Aturan berikut berlaku saat Anda mengubah TTL:
-
Jika Anda menaikkan TTL, perubahan tersebut berlaku pada waktu offload berikutnya. Namun, data yang sudah berada di penyimpanan dingin tidak akan dipindahkan kembali ke penyimpanan hot.
-
Jika Anda menurunkan TTL, perubahan tersebut berlaku pada waktu offload berikutnya.
-
-
Nilai minimum untuk Global TTL adalah 1 hari, dan penyesuaian minimum adalah 1 hari.
-
Menurunkan spesifikasi disk tidak didukung untuk kluster yang telah mengaktifkan penyimpanan berjenjang cold-hot.
Penagihan
-
Aturan penagihan adalah sebagai berikut:
Tipe
Detail
Penyimpanan data hot
Kapasitas penyimpanan data hot sama dengan kapasitas penyimpanan yang Anda beli untuk kluster.
Penyimpanan data cold
Penyimpanan data cold dikenai biaya bayar sesuai penggunaan. Anda tidak perlu membeli ruang penyimpanan tetap di muka. Anda ditagih per jam berdasarkan penyimpanan yang digunakan.
-
Untuk informasi selengkapnya tentang harga satuan penyimpanan data cold, lihat Biaya ruang penyimpanan untuk Community-compatible Edition dan Penagihan bayar sesuai penggunaan untuk Enterprise Edition.
-
Rumus penagihan: Biaya penyimpanan dingin = Harga satuan penyimpanan data cold × Penggunaan data cold × Durasi penggunaan.
-
Contoh: Jika harga satuan penyimpanan data cold adalah USD 0,000026 per GB-jam dan Anda menggunakan 2.000 GB penyimpanan dingin dari pukul 19:00 hingga 20:00, total biaya dihitung sebagai berikut: USD 0,000026 per GB-jam × 2.000 GB × 1 jam = USD 0,052. Jika Anda melepas 500 GB ruang penyimpanan dingin dan penggunaan aktual adalah 1.500 GB dari pukul 20:00 hingga 21:00, total biaya untuk jam tersebut dihitung sebagai berikut: USD 0,000026 per GB-jam × 1.500 GB × 1 jam = USD 0,039.
Harga dalam contoh ini hanya untuk referensi. Harga aktual berlaku di Konsol.
Aktifkan penyimpanan berjenjang
Community-compatible edition
-
Masuk ke Konsol Alibaba Cloud ClickHouse. Di pojok kiri atas halaman, pilih wilayah tempat kluster Anda ditempatkan.
-
Pada halaman Clusters, klik tab Clusters of Community-compatible Edition, lalu klik ID kluster target.
-
Di panel navigasi sebelah kiri, klik Cold and hot layered storage.
-
Klik Click to Enable Layered Storage.
-
Pada kotak dialog yang muncul, klik OK.
Setelah Anda mengonfirmasi operasi, kluster akan restart. Fitur diaktifkan setelah status kluster berubah dari Changing Configuration menjadi Running.
Enterprise edition
Untuk Alibaba Cloud ClickHouse Enterprise Edition, Anda harus terlebih dahulu mengajukan tiket untuk menambahkan akun Anda ke daftar izin untuk fitur ini. Kemudian, ikuti langkah-langkah berikut untuk mengaktifkan fitur tersebut pada kluster Anda.
-
Masuk ke Konsol Alibaba Cloud ClickHouse. Di pojok kiri atas halaman, pilih wilayah tempat kluster Anda ditempatkan.
-
Pada halaman Clusters, klik tab Enterprise Edition Clusters, lalu klik ID kluster target.
-
Di panel navigasi sebelah kiri, klik Cold and hot layered storage.
-
Klik Click to Enable Layered Storage.
-
Pada kotak dialog yang muncul, konfigurasikan Global TTL.
-
Klik OK.
Fitur diaktifkan setelah status kluster berubah menjadi Running dan halaman Tiered Storage menunjukkan bahwa fitur tersebut Enabled.
Setelah fitur diaktifkan, Anda dapat mengklik ikon edit di samping Parameter Value untuk menyesuaikan Global TTL. TTL baru berlaku pada siklus offload berikutnya (00:00 UTC pada hari berikutnya).
Kelola kebijakan penyimpanan untuk Community-compatible edition
Kebijakan penyimpanan default
Setelah Anda mengaktifkan penyimpanan berjenjang data hot dan cold, kebijakan penyimpanan default mencakup parameter berikut.
|
Parameter |
Deskripsi |
|
move_factor |
Saat ruang tersedia pada disk data hot turun di bawah rasio ini, sistem secara otomatis memindahkan bagian data terbesar ke disk data cold. Nilai parameter ini berkisar antara Catatan
Untuk melihat ruang disk Anda, lihat Lihat ruang disk. |
|
prefer_not_to_merge |
Menentukan apakah akan menggabungkan data pada disk data cold. Nilai yang valid:
|
Kebijakan penyimpanan berbasis TTL
Anda dapat menambahkan klausa TTL ke kebijakan penyimpanan default untuk secara otomatis memindahkan semua data yang lebih tua dari interval tertentu ke disk data cold.
Sintaks
TTL <time_column> + INTERVAL <number> <unit> TO DISK 'cold_disk'
Parameter
|
Parameter |
Deskripsi |
|
time_column |
Kolom dengan tipe data Date atau DateTime. |
|
number unit |
Interval waktu. Unit umum meliputi DAY, WEEK, MONTH, dan YEAR. |
Untuk informasi selengkapnya tentang klausa TTL, lihat TTL untuk kolom dan tabel.
Contoh
Pernyataan berikut membuat tabel dan memindahkan semua data yang lebih tua dari 90 hari ke disk data cold berdasarkan kolom date.
CREATE TABLE ttl_test_tbl
(
`f1` String,
`f2` String,
`f3` Int64,
`f4` Float64,
`date` Date
)
ENGINE = MergeTree()
PARTITION BY date
ORDER BY f1
TTL date + INTERVAL 90 DAY TO DISK 'cold_disk'
SETTINGS storage_policy = 'hot_to_cold';
Ubah kebijakan berbasis TTL
Anda dapat mengubah kolom Date atau DateTime serta interval waktu untuk kebijakan penyimpanan berjenjang berbasis TTL.
Perhatian
-
Dampak terhadap data:
-
Data yang sudah ada: Secara default, kebijakan baru juga berlaku untuk data yang sudah ada, tetapi proses ini bersifat asinkron dan memerlukan waktu. Untuk menerapkan perubahan segera, jalankan pernyataan
ALTER TABLE ... MATERIALIZE TTL;setelah Anda mengubah kebijakan. Jika Anda tidak ingin mengubah kebijakan penyimpanan untuk data yang sudah ada, jalankan pernyataanSET materialize_ttl_after_modify=0;sebelum Anda mengubah kebijakan. -
Data baru dikelompokkan sesuai kebijakan baru.
-
-
Setelah Anda mengubah kebijakan penyimpanan berbasis TTL, data yang sudah berada di disk data cold tidak secara otomatis dipindahkan kembali ke disk data hot. Untuk memindahkan data tersebut, lihat Pindahkan data antara disk data hot dan cold.
Sintaks
ALTER TABLE <table_name> ON CLUSTER default MODIFY TTL <time_column> + INTERVAL <number> <unit> TO DISK 'cold_disk';
Parameter
|
Parameter |
Deskripsi |
|
table_name |
Nama tabel. |
|
time_column |
Kolom Date atau DateTime target. |
|
number unit |
Interval waktu. Unit umum meliputi DAY, WEEK, MONTH, dan YEAR. |
Manajemen data untuk Community-compatible edition
Pindahkan data di antara disk hot dan cold
-
Pindahkan data dari disk data hot ke disk data cold:
ALTER TABLE <table_name> ON CLUSTER default MOVE PARTITION <partition> TO DISK 'cold_disk'; -
Pindahkan data dari disk data cold ke disk data hot:
ALTER TABLE <table_name> ON CLUSTER default MOVE PARTITION <partition> TO DISK 'default';Catatanpartitionadalah nama partisi, yang dapat Anda temukan di tabelsystem.parts.
Melihat data pada disk panas dan dingin
-
Lihat data pada disk data hot:
SELECT * FROM system.parts WHERE database = '<db_name>' AND TABLE = '<tbl_name>' AND disk_name ='default' AND active = 1; -
Lihat data pada disk data cold:
SELECT * FROM system.parts WHERE database = '<db_name>' AND TABLE = '<tbl_name>' AND disk_name ='cold_disk' AND active = 1;
Lihat ruang disk
Setelah Anda mengaktifkan penyimpanan berjenjang data hot dan cold, Anda dapat menjalankan pernyataan berikut untuk melihat ruang disk:
SELECT * FROM system.disks;
Hasil berikut dikembalikan:
┌─name─────┬─────────path───────────────────────────┬─free_space───────────┬─total_space──────────┬─used_space───┬─keep_free_space───┬──type──┐
│ cold_disk│ /clickhouse/data/data/disks/cold_disk/ │ 18446744073709551615 │ 18446744073709551615 │ 115312080698 │ 0 │ OSS │
│ default │ /clickhouse/data/data/ │ 201663209472 │ 207083249664 │ 5420040192 │ 0 │ local │
└──────────┴────────────────────────────────────────┴──────────────────────┴──────────────────────┴──────────────┴───────────────────┴────────┘
Tabel berikut menjelaskan kolom dalam set hasil.
|
Parameter |
Deskripsi |
|
name |
Nama disk.
|
|
path |
Jalur penyimpanan data pada disk. |
|
free_space |
Ruang tersedia pada disk, dalam byte. Ruang tersedia pada disk data cold tidak terbatas. |
|
total_space |
Ruang total pada disk, dalam byte. Ruang total pada disk data cold secara efektif tidak terbatas. |
|
used_space |
Ruang disk yang digunakan, dalam byte. |
|
keep_free_space |
Ruang bebas yang dicadangkan, dalam byte. |
|
type |
Media penyimpanan.
|
FAQ
T: Mengapa data saya tidak dipindahkan dari disk data hot ke disk data cold?
J: Apakah data dipindahkan ke disk data cold bergantung pada nilai move_ttl_info.min dan move_ttl_info.max di tabel system.parts. Anda dapat menjalankan pernyataan berikut untuk mengkueri nilai-nilai tersebut:
SELECT move_ttl_info.min, move_ttl_info.max FROM system.parts WHERE database = '<db_name>' AND table = '<tb_name>' AND disk_name = 'default'
Jika waktu saat ini lebih awal dari salah satu nilai tersebut, sistem tidak memindahkan bagian data tersebut. Dimungkinkan juga sistem sedang memproses atau mempersiapkan pemindahan data, dan operasi tersebut belum selesai.