TairCpc adalah struktur data berbasis sketsa penghitungan probabilitas terkompresi (CPC) yang memungkinkan komputasi berkinerja tinggi dengan penggunaan memori minimal.
Informasi Latar Belakang
Dalam skenario pengambilan keputusan real-time pada big data, sistem komputasi real-time memproses log bisnis yang masuk, sistem penyimpanan online menyimpan hasil pemrosesan, dan sistem berbasis aturan atau pengambilan keputusan membuat keputusan secara real-time. Contoh skenario:
Pencegahan penipuan kartu kredit: Sistem harus menentukan apakah kartu kredit digunakan dalam lingkungan aman dan menghentikan transaksi mencurigakan secepat mungkin.
Pencegahan penjualan tiket ilegal: Sistem harus mengidentifikasi dan menghentikan aktivitas yang menggunakan perangkat virtual dan alamat IP palsu untuk merusak kepentingan platform.
Dalam kasus-kasus ini, Anda dapat menggunakan TairCpc untuk menduplikasi data real-time berdasarkan dimensi tertentu dan menyimpannya dalam format terstruktur di database Tair. Operasi ini memungkinkan akses cepat ke data serta integrasi penyimpanan dan komputasi. TairCpc juga mendukung berbagai operasi agregasi untuk menggabungkan data dalam hitungan nanodetik dan memberikan kontrol risiko real-time.
Ikhtisar
CPC adalah algoritma deduplikasi data berkinerja tinggi yang menghitung nilai unik sebagai aliran data. Algoritma ini memungkinkan penggabungan blok data untuk mendapatkan jumlah total dengan akurasi setara HLL namun hanya menggunakan sekitar 40% dari penggunaan memori.
TairCpc, yang dikembangkan berdasarkan CPC sumber terbuka, mengurangi tingkat kesalahan menjadi 0,008%, dibandingkan dengan 0,67% dari CPC sumber terbuka dan 1,95% dari HLL.
Fitur Utama
Penggunaan memori rendah, pembacaan dan penulisan bertahap, serta I/O minimal
Deduplikasi berkinerja tinggi dengan presisi ultra-tinggi
Tingkat kesalahan stabil yang lebih rendah
Skema Tipikal
Sistem keamanan untuk bank
Penjualan kilat
Pencegahan penjualan tiket ilegal
Prasyarat
Instans harus merupakan salah satu dari jenis seri Tair berikut:
Berdasarkan DRAM. Jika instans kompatibel dengan Redis 5.0, versi minor instans harus 1.7.20 atau lebih baru.
Instans dioptimalkan memori persisten dengan versi minor 1.2.3.3 atau lebih baru.
Versi minor terbaru menyediakan lebih banyak fitur dan stabilitas yang lebih tinggi. Kami menyarankan Anda memperbarui instans ke versi minor terbaru. Untuk informasi lebih lanjut, lihat Perbarui versi minor sebuah instans. Jika instans Anda adalah instans kluster atau instans pemisahan baca/tulis, kami sarankan Anda memperbarui node proxy di instans ke versi minor terbaru untuk memastikan semua perintah dapat dijalankan sesuai harapan.
Peringatan
Data TairCpc yang ingin Anda kelola disimpan pada instans Tair.
Perintah yang Didukung
Tabel 1. Perintah TairCpc
Perintah | Sintaksis | Deskripsi |
| Menambahkan item ke kunci TairCpc yang ditentukan. Jika kunci tidak ada, kunci akan dibuat. Jika item sudah ada di kunci, item tidak akan ditambahkan. | |
| Mengambil estimasi kardinalitas dari kunci TairCpc yang ditentukan setelah deduplikasi. Nilai kembali adalah tipe DOUBLE, tetapi Anda dapat mengabaikan desimal dan membulatkannya ke bilangan bulat terdekat. | |
| Menambahkan item ke kunci TairCpc yang ditentukan dan mengembalikan estimasi kardinalitas yang diperbarui dari kunci. Jika kunci tidak ada, kunci akan dibuat. | |
| Menambahkan item ke kunci TairCpc yang ditentukan dan mengembalikan estimasi kardinalitas baru dari kunci setelah pembaruan dan perbedaan antara estimasi asli dan baru. Jika perbedaan 1 dikembalikan, item ditambahkan dan tidak ada duplikasi. Jika perbedaan 0 dikembalikan, item sudah ada. Jika kunci tidak ada, kunci akan dibuat. | |
| Menambahkan item ke kunci TairCpc yang ditentukan dalam jendela waktu tempat timestamp yang ditentukan termasuk. Jika kunci tidak ada, kunci akan dibuat. Catatan Sebagai contoh, jika Anda ingin menghitung jumlah data dalam kunci yang dihasilkan per menit dalam 10 menit terakhir, Anda dapat mengatur | |
| Mengambil estimasi kardinalitas dari kunci TairCpc yang ditentukan dalam jendela waktu tempat timestamp yang ditentukan termasuk. | |
| Mengambil estimasi kardinalitas dari kunci TairCpc yang ditentukan di seluruh jendela waktu dalam rentang waktu yang ditentukan. Rentang waktu adalah interval tertutup. | |
| Mengambil estimasi kardinalitas dari kunci TairCpc yang ditentukan setelah penggabungan dan deduplikasi dari titik waktu tertentu hingga N jendela waktu sebelumnya. N adalah nilai parameter rentang. | |
| Menambahkan item ke jendela waktu tempat timestamp yang ditentukan termasuk dalam kunci TairCpc yang ditentukan dan mengembalikan estimasi kardinalitas yang diperbarui dari kunci dalam jendela waktu. Jika kunci tidak ada, kunci akan dibuat. Perintah ini membuat kunci menggunakan parameter yang konsisten dengan yang digunakan untuk perintah CPC.ARRAY.UPDATE. | |
| Menambahkan item ke jendela waktu tempat timestamp yang ditentukan termasuk dalam kunci TairCpc yang ditentukan dan mengembalikan estimasi kardinalitas yang diperbarui dari kunci dalam jendela waktu dan perbedaan antara estimasi asli dan yang diperbarui. Jika perbedaan 1 dikembalikan, item ditambahkan dan tidak ada duplikasi. Jika perbedaan 0 dikembalikan, item sudah ada. Jika kunci tidak ada, kunci akan dibuat. Perintah ini membuat kunci menggunakan parameter yang konsisten dengan yang digunakan untuk perintah CPC.ARRAY.UPDATE. | |
| Menghapus satu atau lebih kunci TairCpc. |
Daftar berikut menjelaskan konvensi sintaks perintah yang digunakan dalam topik ini:
KATA KUNCI HURUF BESAR: Menunjukkan kata kunci perintah.Teks miring: Menunjukkan variabel.[opsi]: Menunjukkan bahwa parameter dalam tanda kurung siku bersifat opsional. Parameter tanpa tanda kurung siku harus ditentukan.A|B: Menunjukkan bahwa parameter dipisahkan oleh batang vertikal (|) adalah saling eksklusif. Hanya satu dari parameter tersebut yang dapat ditentukan....: Menunjukkan bahwa parameter sebelum simbol ini dapat ditentukan secara berulang.
CPC.UPDATE
Item | Description |
Syntax |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan item ke kunci TairCpc yang ditentukan. Jika kunci tidak ada, kunci akan dibuat. Jika item sudah ada di dalam kunci, item tidak akan ditambahkan. |
Parameter |
|
Output |
|
Contoh | Perintah contoh: Output contoh: |
CPC.ESTIMATE
Item | Description |
Sintaks |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil estimasi kardinalitas dari TairCpc key yang ditentukan setelah deduplikasi. Nilai kembali adalah tipe DOUBLE, namun Anda dapat mengabaikan desimal dan membulatkannya ke bilangan bulat terdekat. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
CPC.UPDATE2EST
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan item ke kunci TairCpc yang ditentukan dan mengembalikan estimasi kardinalitas terbaru dari kunci tersebut. Jika kunci tidak ada, kunci akan dibuat. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
CPC.UPDATE2JUD
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan item ke kunci TairCpc yang ditentukan dan mengembalikan estimasi kardinalitas baru dari kunci setelah pembaruan serta selisih antara estimasi sebelumnya dan yang baru. Jika selisih 1 dikembalikan, item ditambahkan dan tidak ada duplikasi. Jika selisih 0 dikembalikan, item sudah ada. Jika kunci tidak ada, kunci akan dibuat. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
CPC.ARRAY.UPDATE
Item | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan item ke kunci TairCpc yang ditentukan dalam jendela waktu tempat stempel waktu yang ditentukan termasuk. Jika kunci tidak ada, kunci akan dibuat. Catatan Sebagai contoh, jika Anda ingin menghitung jumlah data dalam kunci yang dihasilkan per menit dalam 10 menit terakhir, Anda dapat mengatur |
Parameter |
|
Keluaran |
|
Contoh | Perintah sampel: Keluaran sampel: |
CPC.ARRAY.ESTIMATE
Item | Description |
Sintaks |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil estimasi kardinalitas dari TairCpc key yang ditentukan dalam jendela waktu tempat timestamp yang ditentukan berada. |
Parameter |
|
Output |
|
Contoh | Perintah contoh: Output contoh: |
CPC.ARRAY.ESTIMATE.RANGE
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil estimasi kardinalitas dari TairCpc key yang ditentukan di seluruh jendela waktu dalam rentang waktu yang ditentukan. Rentang waktu adalah interval tertutup. |
Opsi |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
CPC.ARRAY.ESTIMATE.RANGE.MERGE
Item | Description |
Sintaks |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil estimasi kardinalitas dari TairCpc key yang ditentukan setelah penggabungan dan deduplikasi dari titik waktu tertentu hingga jendela waktu ke-N ke belakang. N adalah nilai dari parameter rentang. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
CPC.ARRAY.UPDATE2EST
Item | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan item ke jendela waktu tempat stempel waktu yang ditentukan termasuk dalam kunci TairCpc yang ditentukan dan mengembalikan estimasi kardinalitas terbaru dari kunci tersebut dalam jendela waktu. Jika kunci tidak ada, kunci akan dibuat. Perintah ini membuat kunci dengan menggunakan parameter yang konsisten dengan yang digunakan untuk perintah CPC.ARRAY.UPDATE. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
CPC.ARRAY.UPDATE2JUD
Item | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan item ke jendela waktu tempat stempel waktu yang ditentukan termasuk dalam kunci TairCpc yang ditentukan dan mengembalikan perkiraan kardinalitas terbaru dari kunci dalam jendela waktu serta selisih antara perkiraan asli dan yang diperbarui. Jika selisih 1 dikembalikan, item ditambahkan dan tidak ada duplikasi. Jika selisih 0 dikembalikan, item sudah ada. Jika kunci tidak ada, kunci dibuat. Perintah ini membuat kunci dengan menggunakan parameter yang konsisten dengan yang digunakan untuk perintah CPC.ARRAY.UPDATE. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |