MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

MariaDB ColumnStore là gì?

Nói chung, cơ sở dữ liệu lưu trữ dữ liệu ở định dạng hàng và sử dụng SQL làm ngôn ngữ truy vấn để truy cập nó, nhưng phương pháp lưu trữ này không phải lúc nào cũng tốt nhất về mặt hiệu suất, nó phụ thuộc vào chính khối lượng công việc. Nếu bạn muốn lấy dữ liệu thống kê, có lẽ bạn nên sử dụng một loại công cụ lưu trữ cơ sở dữ liệu khác.

Trong blog này, chúng ta sẽ xem Columnar Storage là gì và cụ thể hơn, MariaDB ColumnStore là gì và cách cài đặt nó để có thể xử lý dữ liệu lớn của bạn theo cách hiệu quả hơn mục đích phân tích.

Bộ nhớ Columnar

Columnar Storage là một loại công cụ cơ sở dữ liệu lưu trữ dữ liệu bằng mô hình hướng cột.

Ví dụ:trong cơ sở dữ liệu quan hệ chung, chúng ta có thể có một bảng như sau:

id

firstname

họ

age

1001

Oliver

Smith

23

1002

Harry

Jones

65

1003

George

Williams

30

1004

Jack

Taylor

41

Điều này là tốt nếu bạn muốn lấy, ví dụ:tuổi của một người cụ thể, nơi bạn sẽ cần tất cả hoặc gần như tất cả thông tin hàng, nhưng nếu bạn cần lấy thống kê trên một cột cụ thể (ví dụ:tuổi trung bình), thì đây là không phải là cấu trúc tốt nhất.

Đây là lúc công cụ Columnar Storage phát huy tác dụng. Thay vì lưu trữ dữ liệu trong các hàng, dữ liệu được lưu trữ trong các cột. Vì vậy, nếu bạn cần biết tuổi trung bình, sẽ tốt hơn khi sử dụng nó, vì bạn sẽ có cấu trúc như sau:

id

firstname

id

họ

id

age

1001

Oliver

1001

Smith

1001

23

1002

Harry

1002

Jones

1002

65

1003

George

1003

Williams

1003

30

1004

Jack

1004

Taylor

1004

41

Có nghĩa là, bạn chỉ cần đọc id và age để biết độ tuổi trung bình thay vì tất cả dữ liệu. và nó không phải là tùy chọn tốt nhất cho các truy vấn “CHỌN *” hoặc các hoạt động giao dịch, vì vậy chúng tôi có thể nói rằng nó phù hợp hơn trong cơ sở dữ liệu OLAP (Xử lý Phân tích Trực tuyến) hơn là Cơ sở dữ liệu OLTP (Xử lý Giao dịch Trực tuyến).

Cửa hàng cột MariaDB

Đây là một công cụ lưu trữ dạng cột sử dụng kiến ​​trúc dữ liệu phân tán song song lớn. Đây là bản tải xuống riêng biệt, nhưng nó sẽ có sẵn dưới dạng công cụ lưu trữ cho Máy chủ MariaDB từ MariaDB 10.5.4, vẫn đang được phát triển tại thời điểm blog này được viết.

Nó được thiết kế cho dữ liệu lớn, sử dụng các lợi ích của lưu trữ dạng cột để có hiệu suất tuyệt vời với phản hồi thời gian thực cho các truy vấn phân tích.

Kiến trúc cửa hàng cột MariaDB

Nó bao gồm nhiều (hoặc chỉ 1) Máy chủ MariaDB, hoạt động dưới dạng mô-đun, hoạt động cùng nhau. Các mô-đun này bao gồm Người dùng, Hiệu suất và Bộ nhớ.

Mô-đun Người dùng

Đây là phiên bản Máy chủ MariaDB được định cấu hình để hoạt động như một giao diện người dùng cho ColumnStore.

Mô-đun Người dùng quản lý và kiểm soát hoạt động của các truy vấn của người dùng cuối. Khi một máy khách chạy một truy vấn, nó sẽ được phân tích cú pháp và phân phối tới một hoặc nhiều Mô-đun Hiệu suất để xử lý truy vấn. Sau đó, mô-đun Người dùng thu thập các kết quả truy vấn và tập hợp chúng thành tập kết quả để trả về máy khách.

Mục đích chính của Mô-đun Người dùng là xử lý quy mô đồng thời. Nó không bao giờ chạm trực tiếp vào các tệp cơ sở dữ liệu và không yêu cầu hiển thị chúng.

Mô-đun Hiệu suất

Nó chịu trách nhiệm lưu trữ, truy xuất và quản lý dữ liệu, xử lý các yêu cầu của khối cho các hoạt động truy vấn và chuyển nó trở lại mô-đun Người dùng hoặc các mô-đun để hoàn thiện các yêu cầu truy vấn. Nó không nhìn thấy chính truy vấn, mà chỉ thấy một tập hợp các hướng dẫn do Mô-đun người dùng cung cấp cho nó.

Mô-đun chọn dữ liệu từ đĩa và lưu trữ dữ liệu đó vào bộ đệm không dùng chung, là một phần của máy chủ mà nó chạy trên đó.

Có nhiều nút Mô-đun Hiệu suất, cơ chế nhịp tim đảm bảo rằng tất cả các nút đều trực tuyến và có chuyển đổi dự phòng trong suốt trong trường hợp một nút cụ thể bị lỗi.

Bộ nhớ

Bạn có thể sử dụng bộ nhớ cục bộ (Mô-đun Hiệu suất) hoặc bộ nhớ dùng chung (SAN) để lưu trữ dữ liệu.

Khi bạn tạo bảng trên MariaDB ColumnStore, hệ thống sẽ tạo ít nhất một tệp cho mỗi cột trong bảng. Vì vậy, chẳng hạn, một bảng được tạo với ba cột sẽ có tối thiểu ba đối tượng logic có thể địa chỉ riêng biệt được tạo trên SAN hoặc trên đĩa cục bộ của Mô-đun Hiệu suất.

ColumnStore tối ưu hóa chiến lược nén để đạt được hiệu suất đọc từ đĩa. Nó được điều chỉnh để tăng tốc độ giải nén, tối đa hóa lợi ích hiệu suất khi đọc từ đĩa.

MariaDB ColumnStore sử dụng Bộ đệm Phiên bản để lưu trữ các khối đĩa đang được sửa đổi, quản lý các lần khôi phục giao dịch và phục vụ chức năng MVCC (kiểm soát đồng thời nhiều phiên bản) hoặc "đọc ảnh chụp nhanh" của cơ sở dữ liệu. Điều này cho phép nó cung cấp một chế độ xem nhất quán truy vấn của cơ sở dữ liệu.

Cách hoạt động của MariaDB CloumnStore

Bây giờ, hãy xem cách MariaDB ColumnStore xử lý một truy vấn của người dùng cuối, theo tài liệu MariaDB ColumnStore chính thức:

  • Khách hàng đưa ra một truy vấn tới Máy chủ MariaDB đang chạy trên Mô-đun Người dùng. Máy chủ thực hiện thao tác với bảng cho tất cả các bảng cần thiết để đáp ứng yêu cầu và nhận được kế hoạch thực thi truy vấn ban đầu.
  • Sử dụng giao diện công cụ lưu trữ MariaDB, ColumnStore chuyển đổi đối tượng bảng máy chủ thành các đối tượng ColumnStore. Sau đó, các đối tượng này được gửi đến các quy trình của Mô-đun người dùng.
  • Mô-đun Người dùng chuyển đổi kế hoạch thực thi MariaDB và tối ưu hóa các đối tượng đã cho thành một kế hoạch thực thi ColumnStore. Sau đó, nó xác định các bước cần thiết để chạy truy vấn và thứ tự chạy chúng.
  • Sau đó, Mô-đun Người dùng tham khảo Bản đồ Mức độ để xác định Mô-đun Hiệu suất nào cần tham khảo cho dữ liệu mà nó cần, sau đó thực hiện Loại bỏ Mức độ, loại bỏ bất kỳ Mô-đun Hiệu suất nào khỏi danh sách chỉ chứa dữ liệu bên ngoài phạm vi những gì truy vấn yêu cầu.
  • Sau đó, Mô-đun Người dùng sẽ gửi lệnh đến một hoặc nhiều Mô-đun Hiệu suất để thực hiện các hoạt động I / O của khối.
  • Mô-đun Hiệu suất hoặc Mô-đun thực hiện lọc vị từ, xử lý kết hợp, tổng hợp dữ liệu ban đầu từ bộ nhớ cục bộ hoặc bên ngoài, sau đó gửi dữ liệu trở lại Mô-đun người dùng.
  • Mô-đun người dùng thực hiện tổng hợp tập kết quả cuối cùng và soạn tập kết quả cho truy vấn.
  • Mô-đun Người dùng / ExeMgr thực hiện bất kỳ tính toán chức năng cửa sổ nào, cũng như bất kỳ phân loại cần thiết nào trên tập kết quả. Sau đó, nó trả về tập kết quả cho máy chủ.
  • Máy chủ MariaDB thực hiện bất kỳ chức năng danh sách lựa chọn nào, thao tác ORDER BY và LIMIT trên tập kết quả.
  • Máy chủ MariaDB trả về tập hợp kết quả cho máy khách.

Cách cài đặt MariaDB ColumnStore

Bây giờ, hãy xem cách cài đặt nó. Để biết thêm thông tin, bạn có thể kiểm tra tài liệu chính thức của MariaDB.

Chúng tôi sẽ sử dụng CentOS 7 làm hệ điều hành nhưng bạn có thể sử dụng bất kỳ hệ điều hành nào được hỗ trợ thay thế. Các gói cài đặt có sẵn để tải xuống tại đây.

Trước tiên, bạn cần cài đặt kho lưu trữ Gói bổ sung:

$ yum install -y epel-release

Sau đó, các gói bắt buộc sau:

$ yum install -y boost expect perl perl-DBI openssl zlib snappy libaio perl-DBD-MySQL net-tools wget jemalloc numactl-libs

Và bây giờ, hãy tải xuống MariaDB ColumnStore phiên bản mới nhất, giải nén và cài đặt nó:

$ wget https://downloads.mariadb.com/ColumnStore/latest/centos/x86_64/7/mariadb-columnstore-1.2.5-1-centos7.x86_64.rpm.tar.gz

$ tar zxf mariadb-columnstore-1.2.5-1-centos7.x86_64.rpm.tar.gz

$ rpm -ivh mariadb-columnstore-1.2.5-1-*.rpm

Khi kết thúc, bạn sẽ thấy thông báo sau:

Bước tiếp theo là:

If installing on a pm1 node using non-distributed install

/usr/local/mariadb/columnstore/bin/postConfigure



If installing on a pm1 node using distributed install

/usr/local/mariadb/columnstore/bin/postConfigure -d



If installing on a non-pm1 using the non-distributed option:

/usr/local/mariadb/columnstore/bin/columnstore start

Vì vậy, đối với ví dụ này, chúng ta chỉ cần chạy lệnh:

$ /usr/local/mariadb/columnstore/bin/postConfigure

Bây giờ, nó sẽ hỏi bạn một số thông tin về cài đặt:

This is the MariaDB ColumnStore System Configuration and Installation tool.

It will Configure the MariaDB ColumnStore System and will perform a Package

Installation of all of the Servers within the System that is being configured.



IMPORTANT: This tool requires to run on the Performance Module #1



Prompting instructions:

Press 'enter' to accept a value in (), if available or

Enter one of the options within [], if available, or

Enter a new value



===== Setup System Server Type Configuration =====



There are 2 options when configuring the System Server Type: single and multi

  'single'  - Single-Server install is used when there will only be 1 server configured

              on the system. It can also be used for production systems, if the plan is

              to stay single-server.

  'multi'   - Multi-Server install is used when you want to configure multiple servers now or

              in the future. With Multi-Server install, you can still configure just 1 server

              now and add on addition servers/modules in the future.



Select the type of System Server install [1=single, 2=multi] (2) > 1

Performing the Single Server Install.



Enter System Name (columnstore-1) >



===== Setup Storage Configuration =====



----- Setup Performance Module DBRoot Data Storage Mount Configuration -----

There are 2 options when configuring the storage: internal or external

  'internal' -    This is specified when a local disk is used for the DBRoot storage.

                  High Availability Server Failover is not Supported in this mode

  'external' -    This is specified when the DBRoot directories are mounted.

                  High Availability Server Failover is Supported in this mode.



Select the type of Data Storage [1=internal, 2=external] (1) >

Enter the list (Nx,Ny,Nz) or range (Nx-Nz) of DBRoot IDs assigned to module 'pm1' (1) >



===== Performing Configuration Setup and MariaDB ColumnStore Startup =====



NOTE: Setting 'NumBlocksPct' to 50%

      Setting 'TotalUmMemory' to 25% of total memory.



Running the MariaDB ColumnStore setup scripts



post-mysqld-install Successfully Completed

post-mysql-install Successfully Completed

Starting MariaDB Columnstore Database Platform

Starting MariaDB ColumnStore Database Platform Starting, please wait ....... DONE

System Catalog Successfull Created

MariaDB ColumnStore Install Successfully Completed, System is Active

Enter the following command to define MariaDB ColumnStore Alias Commands



. /etc/profile.d/columnstoreAlias.sh



Enter 'mcsmysql' to access the MariaDB ColumnStore SQL console

Enter 'mcsadmin' to access the MariaDB ColumnStore Admin console



NOTE: The MariaDB ColumnStore Alias Commands are in /etc/profile.d/columnstoreAlias.sh

Chạy tập lệnh đã tạo:

$ . /etc/profile.d/columnstoreAlias.sh

Bây giờ bạn có thể truy cập cơ sở dữ liệu bằng cách chạy lệnh “mcsmysql”:

$ mcsmysql

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 12

Server version: 10.3.16-MariaDB-log Columnstore 1.2.5-1



Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.



Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.



MariaDB [(none)]>

Thế là xong. Bây giờ, bạn có thể tải dữ liệu trong cơ sở dữ liệu MariaDB ColumnStore của mình.

Kết luận

Columnar Storage là một giải pháp thay thế lưu trữ cơ sở dữ liệu tuyệt vời để xử lý dữ liệu cho các mục đích phân tích. MariaDB ColumnStore là một công cụ Columnar Storage được thiết kế cho tác vụ này và như chúng ta có thể thấy, việc cài đặt khá dễ dàng, vì vậy nếu bạn cần một cơ sở dữ liệu OLAP hoặc xử lý dữ liệu lớn, bạn nên dùng thử.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB JSON_UNQUOTE () Giải thích

  2. Cách chạy SHOW LOCALES trong MariaDB

  3. DBA của tôi bị ốm - Mẹo chuyển đổi dự phòng cơ sở dữ liệu cho SysAdmins

  4. Cách hoạt động của QUARTER () trong MariaDB

  5. Hướng dẫn triển khai cơ sở dữ liệu đám mây tự động