Saya telah bekerja dengan pergudangan untuk sementara waktu sekarang.
Saya tertarik dengan Columnar Database dan kecepatan yang mereka tawarkan untuk pengambilan data.
Saya memiliki pertanyaan multi-bagian:
- Bagaimana cara kerja Basis Data Kolom?
- Bagaimana mereka berbeda dari database relasional?
Jawaban:
Bagaimana cara kerja Basis Data Kolom?
Database kolom adalah konsep yang lebih merupakan arsitektur / implementasi tertentu . Dengan kata lain, tidak ada satu deskripsi khusus tentang bagaimana database ini bekerja; memang, beberapa dibangun di atas DBMS tradisional, berorientasi baris, hanya menyimpan info dalam tabel dengan satu (atau lebih tepatnya dua) kolom (dan menambahkan lapisan yang diperlukan untuk mengakses data kolom dengan cara yang mudah).
Bagaimana mereka berbeda dari database relasional? Mereka umumnya berbeda dari database tradisional (berorientasi baris) sehubungan dengan ...
... dalam kasus penggunaan DBMS tertentu .
Secara khusus mereka menawarkan keuntungan di area yang disebutkan ketika penggunaan tipikal adalah untuk menghitung nilai agregat pada sejumlah kolom terbatas, sebagai lawan untuk mencoba dan mengambil semua / sebagian besar kolom untuk entitas tertentu.
Apakah ada versi percobaan dari database kolom yang dapat saya instal untuk dimainkan? (Saya menggunakan Windows 7) Ya, ada implementasi database kolom yang komersial, gratis, dan juga open-source. Lihat daftar di akhir artikel Wikipedia untuk pemula.
Berhati-hatilah karena beberapa implementasi ini diperkenalkan untuk memenuhi kebutuhan tertentu (katakanlah footprint yang sangat kecil, distribusi data yang sangat dapat dikompres, atau emulasi matriks cadangan, dll.) Daripada menyediakan DBMS berorientasi kolom tujuan umum itu sendiri.
Catatan: Pernyataan tentang "orientasi tujuan tunggal" dari beberapa DBMS kolumnar bukan merupakan kritik atas implementasi ini, tetapi lebih merupakan indikasi tambahan bahwa pendekatan DBMS seperti itu menyimpang dari pendekatan yang lebih "alami" (dan tentunya lebih luas digunakan) untuk menyimpan entitas rekaman. Akibatnya, pendekatan ini digunakan ketika pendekatan berorientasi baris tidak memuaskan, dan oleh karena itu dan cenderung
a) ditargetkan untuk tujuan tertentu b) menerima lebih sedikit sumber daya / minat daripada mengerjakan "Tujuan Umum", "Mencoba dan Diuji ", pendekatan tabel.
Secara tentatif, model data Entity-Attribute-Value (EAV), mungkin merupakan strategi penyimpanan alternatif yang mungkin ingin Anda pertimbangkan. Meskipun berbeda dari model Columnar DB "murni", EAV memiliki beberapa karakteristik yang sama dari Columnar DB.
sumber
Bagaimana cara kerja database kolom? Konsep yang menentukan dari penyimpanan-kolom adalah bahwa nilai-nilai tabel disimpan berdekatan menurut kolom. Jadi tabel pemasok klasik dari pemasok CJ Date dan database bagian:
akan disimpan di disk atau di memori seperti:
Ini berbeda dengan rowstore tradisional yang akan menyimpan data lebih banyak seperti ini:
Dari konsep sederhana ini mengalir semua perbedaan mendasar dalam kinerja, baik atau buruk, antara penyimpanan kolom dan penyimpanan baris. Misalnya, penyimpanan kolom akan unggul dalam melakukan agregasi seperti total dan rata-rata, tetapi menyisipkan satu baris bisa mahal, sementara kebalikannya berlaku untuk penyimpanan baris. Ini harus terlihat dari diagram di atas.
Bagaimana mereka berbeda dari database relasional? Database relasi adalah konsep logis. Database kolom, atau penyimpanan kolom, adalah konsep fisik. Dengan demikian kedua istilah tersebut tidak dapat dibandingkan dalam arti yang berarti. DMBS berorientasi kolom mungkin relasional atau tidak, sama seperti DBMS berorientasi baris mungkin lebih atau kurang mengikuti prinsip-prinsip relasional.
sumber
Saya akan mengatakan kandidat terbaik untuk memahami tentang database berorientasi kolom adalah memeriksa HBase ( Apache Hbase ). Anda memeriksa kode dan mempelajari lebih lanjut untuk mencari tahu tentang penerapannya.
sumber
Selain itu, Columnar DB memiliki afinitas bawaan untuk kompresi data, dan proses pemuatannya unik. Inilah artikel yang saya tulis pada tahun 2008 yang menjelaskan lebih banyak.
Anda juga mungkin tertarik dengan laporan baru dari IDC's Carl Olofson tentang teknologi DBMS generasi ke-3. Ini membahas kolom, et al. Jika Anda bukan klien IDC, Anda bisa mendapatkannya secara gratis di situs kami. Dia juga melakukan webinar pada 16 Juni (juga di situs kami).
(BTW, satu komentar di atas mencantumkan asterdata tetapi menurut saya tidak berbentuk kolom.)
sumber
Untuk memahami apa itu database berorientasi kolom, lebih baik membandingkannya dengan database berorientasi baris.
Database berorientasi baris (misalnya MS SQL Server dan SQLite) dirancang untuk mengembalikan data secara efisien untuk seluruh baris. Itu dilakukan dengan menyimpan semua nilai kolom dari satu baris bersama-sama. Database berorientasi baris sangat cocok untuk sistem OLTP (misalnya, penjualan eceran, dan sistem transaksi keuangan).
Database berorientasi kolom dirancang untuk mengembalikan data secara efisien untuk jumlah kolom yang terbatas. Itu dilakukan dengan menyimpan semua nilai kolom bersama-sama. Dua database berorientasi Kolom yang banyak digunakan adalah Apache Hbase dan Google BigTable (digunakan oleh Google untuk Penelusuran, Analytics, Maps, dan Gmail). Mereka cocok untuk proyek data besar. Database berorientasi kolom akan unggul dalam operasi baca pada jumlah kolom yang terbatas, namun operasi tulis akan mahal dibandingkan dengan database berorientasi baris.
Untuk lebih lanjut: https://en.wikipedia.org/wiki/Column-oriented_DBMS
sumber
Informasi produk. Ini mungkin membantu. Ini untuk produk unggulan di pencarian Google.
http://www.vertica.com/
http://www.paraccel.com/
http://www.asterdata.com/index.php
sumber
kx adalah database kolom lain, misalnya digunakan di sektor keuangan. Lisensi ini agak $ 50K terakhir kali saya periksa. Tidak ada optimasi diperlukan, tidak ada indeks diperlukan, karena kx memiliki operator yang kuat (matlab setara:
.*
,kron
,bsxfun
, ...).sumber