Sütun-yönlü verilənlər bazası

Sütun-yönlü verilənlər bazası (ing. Column-Oriented Database) — məlumatları ənənəvi cədvəl əsaslı verilənlər bazalarından fərqli olaraq, sətirlar yerinə sütunlar üzrə saxlayır. Ənənəvi əlaqəli verilənlər bazalarında (RDBMS) məlumatlar sətir şəklində saxlanılır, yəni hər bir sətir bütöv məlumatlar dəstini təmsil edir. Sütun-yönlü verilənlər bazasında isə hər bir sütun ayrıca saxlanır, bu da bəzi növ sorğular və böyük həcmli verilənlər üzərində daha səmərəli emal aparmağa imkan verir.[1][2]

Xüsusiyyətləri

[redaktə | mənbəni redaktə et]
  1. Sütun əsaslı saxlanma — məlumatlar sətir-sətir deyil, sütunlar şəklində saxlanır. Bu o deməkdir ki, hər bir sütunun məlumatları diskdə birgə saxlanılır. Məsələn, Ad, Soyad, Yaş sütunları ayrılıqda saxlanılır, bu da sütun üzrə analiz və oxuma əməliyyatlarını sürətləndirir.[3]
  2. Sürətli analitik sorğular — sütun-yönlü saxlanma metodu, xüsusilə analitik və hesabat sorğularında (məsələn, böyük verilən dəstləri üzərində agregasiya əməliyyatları) daha səmərəli olur, çünki yalnız lazım olan sütunlar oxunur və sətirlərın bütün məlumatları üzərində emal aparılmır.
  3. Məlumatların sıxılması — eyni sütun daxilində oxşar tipli məlumatlar saxlanıldığı üçün məlumatların sıxılması daha effektivdir. Sıxılmış məlumatlar daha az yer tutduğuna görə disk və yaddaşdan daha az istifadə olunur və oxuma əməliyyatları sürətlənir.
  4. Üfüqi genişlənmə (ing. scalability) — böyük verilənlər dəstlərinin müxtəlif nodelərə bölünərək saxlanılması və emalı üçün sütun-yönlü bazalar genişlənə bilər. Üfüqi genişlənmə onları paylanmış sistemlər üçün daha uyğun edir.[4]

Üstünlükləri

[redaktə | mənbəni redaktə et]
  • Hesabat və analitik proseslər üçün optimallaşdırma — böyük verilən dəstləri üzərində SUM(), COUNT(), AVG() kimi əməliyyatları yerinə yetirən analitik sorğular üçün çox əlverişlidir.[5][6][7]
  • Lazımsız məlumatları yükləməmə — sətir-yönlü verilənlər bazasında bir sorğuda bütün sətirin yüklənməsi lazım gəlir, lakin sütun-yönlü bazalarda yalnız sorğunun tələb etdiyi sütunlar oxunur.
  • Sıxılmış məlumatlarla yüksək performans — məlumatların sıxılması oxuma əməliyyatlarını daha da sürətləndirir.

İstifadə sahələri

[redaktə | mənbəni redaktə et]
  • Verilən anbarları (ing. Data Warehousing) — böyük həcmli verilənlərin analiz edilməsi və hesabat çıxarılması ilə məşğul olan sistemlərdə sütun-yönlü bazalar geniş istifadə olunur.
  • Big Data analizləri — məsələn, maliyyə məlumatlarının və ya elmi məlumatların emal edilməsi üçün sütun-yönlü verilənlər bazaları uyğun seçimdir.
  • Real-time analitika — real vaxtda məlumatlara əsaslanan analitik sistemlərdə, məsələn, klik axını (ing. clickstream) analizi, marketinq analitikası və digərlərində istifadə edilir.

Sətir yönümlü

[redaktə | mənbəni redaktə et]

Cədvəlin elementləri sıra yönümlüdür

1-ci sütun 2-ci sütun 3-cü sütun
11-ci bənd 12-ci bənd 13-cü bənd
21-ci bənd 22-ci bənd 23-cü bənd

kimi xətti olaraq saxlanılır

11-ci bənd 12-ci bənd 13-cü bənd 21-ci bənd 22-ci bənd 23-cü bənd

Tanınmış sütun-yönlü verilənlər bazaları

[redaktə | mənbəni redaktə et]
  • Apache HBase — geniş miqyaslı paylanmış verilənlər üçün açıq mənbəli sütun-yönlü verilənlər bazası.
  • Google Bigtable — Google-un paylanmış sütun-yönlü verilənlər bazası, geniş miqyaslı tətbiqlərdə istifadə olunur.
  • Apache Cassandra — paylanmış sütun-yönlü verilənlər bazası, çox yüksək genişlənmə və davamlılıq təmin edir.
  • Amazon Redshift — Amazon Web Services-də böyük verilənlərin saxlanılması və analiz edilməsi üçün sütun-yönlü verilənlər bazası.

Sütun-yönlü verilənlər bazaları, əsasən, böyük həcmli məlumatlar üzərində sorğu əməliyyatlarının sürətini artırmaq və analitik hesabatlar üçün optimallaşdırma məqsədilə istifadə edilir. Lakin kiçik və ya tranzaksional əməliyyatlar üçün ənənəvi sətir-yönlü verilənlər bazaları daha uyğun ola bilər.

  1. Abadi, Daniel J.; Madden, Samuel R.; Hachem, Nabil. Column-stores vs. Row-stores: How different are they really? // Proceedings of the 2008 ACM SIGMOD international conference on Management of data. 2008. 967–980. doi:10.1145/1376616.1376712. ISBN 978-1-60558-102-6.
  2. Funke, Florian; Kemper, Alfons; Neumann, Thomas. "Compacting Transactional Data in Hybrid OLTP&OLAP Databases". Proceedings of the VLDB Endowment. 5 (11). 2012: 1424–1435. doi:10.14778/2350229.2350258.
  3. "Apache ORC". İstifadə tarixi: 2024-05-21.
  4. "Apache Arrow". 2022-05-06 tarixində arxivləşdirilib. İstifadə tarixi: 2024-05-21.
  5. Richard, Golden G.; Case, Andrew. "In lieu of swap: Analyzing compressed RAM in Mac OS X and Linux". Digital Investigation. 11. 2014: S3–S12. doi:10.1016/j.diin.2014.05.011.
  6. M. Frans Kaashoek, Jerome H. Saltzer. Principles of Computer System Design. Morgan Kaufmann. 2009. ISBN 978-0-12-374957-4.
  7. "Chapter 4 Process Address Space (Linux kernel documentation)". 2024-06-19 tarixində arxivləşdirilib. İstifadə tarixi: 2024-05-21.