Php với Cassandra

trieu.dev.da

Nguyễn Thanh Triều
Ngày nay sự phát triển mạnh mẽ về công nghệ, những trang web giờ không còn đơn thuần chỉ là những trang bán hàng nữa mà ngày càng nhiều tác vụ được tích hợp sẵn luôn trên web. Chính vì những điều như vậy đã kéo theo những yêu cầu mới như trong cơ sở dữ liệu ngày càng nhiều lại đòi hỏi hơn nữa về mặt tốc độ. Chính vì thế những các hệ quản trị cơ sở dữ liệu quan hệ đã dần dần bộc lộ những yếu điểm của nó. Do vậy sự ra đời của NoSQL nó trở nên cấp thiết. Trong bài này tôi sẽ cùng các bạn tìm hiểu về 1 hệ quản trị cơ sở dữ liệu có tên là Cassanra.
Ưu điểm của Cassandra
  • Chấp nhận sai sót (Fault Tolerant): dữ liệu của bạn đẽ được sao chép thành nhiều bản trên các server. Nếu chẳng may 1 server nào đó bị hỏng, bạn vẫn có thể truy xuất dữ liệu của bạn trên các server khác.
  • Tính co giãn (Elastic): khả năng đọc/ghi tăng tuyến tính theo số lượng máy được thêm vào cụm máy của bạn mà không có thời gian chết (downtime) hay sự gián đoạn ứng dụng đang chạy của bạn.
  • Hướng cột (Column-Oriented) : các RDBMS hướng dòng (row-oriented) phải định nghĩa trước các cột (column) trong các bảng (table). Đối với Cassandra các bạn không phải làm điều đó, đơn giản là thêm vào bao nhiêu cột cũng được tùy theo nhu cầu của bạn.
  • Tính sẵn sàng cao (Highly Availability): khi thực hiện tác vụ đọc/ghi, Cassandra có thể thực hiện trên bản sao gần nhất hoặc trên tất cả các bản sao. Điều này phụ thuộc vào thông số ConsitencyLevel do bạn thiết lập.
Với những ưu điểm trên ta có thể thấy việc sử dụng hệ quản trị cơ sở dữ liệu Cassandra đem lại nhiều lợi ích cũng như hiệu quả trong việc cải thiện tốc độ truy vấn cơ sở dữ liệu. Vậy để làm việc với cassandra ta cần cài đặt như dưới đây.
Cài đặt hệ quản trị Cassandra
Việc cài đặt trên Ubuntu ta làm như sau:
  1. Ta cần cài môi trường java​
1678931741487.png

Sau khi cài xong ta có thể kiểm tra bằng lệnh sau java -version nếu cài thành công sẽ ra kiểu như sau:
1678931763927.png

  1. Cài đặt Cassandra Để cài Cassandra ta thực hiện lệnh như sau:
1678931901086.png

Sau khi cài đặt xong ta có thể kiểm tra xem hệ cơ sở dữ liệu đã cài xong chưa bằng lệnh sudo service cassandra status. Kinh nghiệm bản thân của người viết bài thì khi cài xong cassandra và khi chạy server cũng như chạy vào cassandra chiếm rất nhiều tài nguyên ram. Vì thế hay khiến máy bị chậm.
Cài phần mở rộng cassandra cho Php
Để có thể làm việc với Cassandra trong Php thì việc quan trọng ta cần cài phần mở rộng Cassandra cho Php. Trước khi cài phần mở rộng thì ta cần cài 3 thư viện sau:
  • C/C++ Driver
  • GNU library
  • libuv Để cài đặt các thư viện này ta chạy lệnh sau: sudo apt-get install g++ make cmake libuv-dev libssl-dev libgmp-dev php* php*-dev openssl libpcre3-dev git
với php* là version các bạn dùng, ví dụ 5 là php5 php5-dev hoặc 7: php7 php7-dev
Giờ ta cài phần mở rộng cassandra thông qua pecl. Việc tiếp đến ta cần cài thư viện, các ban có thể kiểm tra version mới nhất tại đây: http://downloads.datastax.com/cpp-driver/ubuntu/16.04/ Đầu tiên down các thư viện về bằng lệnh sau:
Sau đó ta tiến hành cài đặt
1678932019472.png

Cuối cùng ta chạy lệnh pect install cassandra để cài phần mở rộng này cho Php.
Thư viện dùng cassandra cho Php
Trong bài này mình giới thiệu các bạn thư viện cassandra dùng cho Php là https://github.com/datastax/php-driver Để sử dụng nó ta cần các thông tin kết nối và chạy như sau
1678932039702.png

Trong hệ cơ sở dữ liệu Cassandra này thì có các vấn đề sau liên quan đến việc tìm kiếm như: Không hỗ trợ tìm kiếm kiểu like như trong mysql, không có kiểu join các bảng cũng như sắp xếp. Vậy làm sao để thực hiện các công việc này thì theo ý kiến cá nhân của người viết thì ta nên kết hợp cassandra với elastic search. Điều này giúp cải thiện nhiều hiệu suất cũng như nhược điểm của cassandra.
 

Đính kèm

Bên trên