Apache Pinot, kho dữ liệu OLAP nguồn mở

Apache Pinot

Apache Pinot là kho dữ liệu OLAP phân tán theo thời gian thực

Apache Pinot là giải pháp lưu trữ OLAP phân tán, thời gian thực, được thiết kế để cung cấp khả năng phân tích thời gian thực, độ trễ thấp và có khả năng mở rộng.

Nó có thể tiếp nhận dữ liệu từ các nguồn dữ liệu theo lô (như HDFS, S3, Azure Data Lake, Google Cloud Storage) cũng như các nguồn dữ liệu truyền trực tuyến (như Kafka). Pinot được thiết kế để mở rộng theo chiều ngang, do đó nó có thể đáp ứng được các tập dữ liệu lớn hơn và tốc độ truy vấn cao hơn khi cần thiết.

Giới thiệu về Apache Pinot

Dự án Pinot ban đầu được phát triển bởi LinkedIn và vào năm 2015 đã được chuyển giao cho Tổ chức Apache để tiếp tục phát triển chung. Hệ thống lưu trữ này được thiết kế để hoạt động trong môi trường liên tục bổ sung dữ liệu mới và được chế tạo để cung cấp độ trễ tối thiểu và có thể dự đoán được, cho phép sử dụng nó để xử lý truy vấn theo thời gian thực.

Giống như hầu hết các giải pháp kho dữ liệu và kho dữ liệu OLAP khác, Pinot hỗ trợ ngôn ngữ truy vấn giống SQL , cho phép chọn lọc, tổng hợp, lọc, nhóm, sắp xếp và các truy vấn dữ liệu khác.

Apache Pinot cung cấp khả năng mở rộng theo chiều ngang và phương tiện để đạt được khả năng chịu lỗi và khả năng phục hồi trước các sự cố phần mềm và phần cứng. Các quy trình sao chép và sao lưu được tích hợp trực tiếp vào chu trình xử lý dữ liệu đối với dữ liệu được thêm vào kho dữ liệu. Một mặt, cách tiếp cận này đơn giản hóa đáng kể kiến ​​trúc, nhưng mặt khác, nó tạo ra độ trễ giữa việc thêm dữ liệu và việc dữ liệu đó có sẵn để truy vấn.

Dữ liệu được lưu trữ trong các bảng thuộc cơ sở dữ liệu hướng cột, hỗ trợ nhiều lược đồ nén khác nhau và khả năng đặt nhiều giá trị trong một trường. Pinot cung cấp một hệ thống lập chỉ mục có thể cắm thêm, có thể sử dụng nhiều công nghệ lập chỉ mục khác nhau (chỉ mục có thứ tự, chỉ mục bitmap, chỉ mục đảo ngược, chỉ mục StarTree, bộ lọc Bloom, chỉ mục phạm vi, chỉ mục tìm kiếm văn bản (Lucence/FST), chỉ mục JSON, chỉ mục không gian địa lý).

Trong số các đặc điểm nổi bật của Apache Pinot:

  • Định hướng theo cột– Cơ sở dữ liệu hướng theo cột với nhiều sơ đồ nén khác nhau như độ dài chạy và độ dài bit cố định.
  • Lập chỉ mục có thể cắm: Công nghệ lập chỉ mục có thể cắm, Chỉ mục được sắp xếp, Chỉ mục Bitmap, Chỉ mục đảo ngược.
  • Tối ưu hóa truy vấn- Khả năng tối ưu hóa kế hoạch truy vấn/thực thi dựa trên siêu dữ liệu truy vấn và phân đoạn.
  • Nhập luồng và lô: Nhập gần như theo thời gian thực các luồng Hadoop và nhập hàng loạt.
  • Tư vấn: Công cụ thực thi truy vấn dựa trên SQL.
  • Upsert trong quá trình nhập theo thời gian thực: cập nhật dữ liệu trên quy mô lớn một cách nhất quán
  • Nhiều trường giá trị: hỗ trợ cho các trường nhiều giá trị, cho phép bạn truy vấn các trường dưới dạng các giá trị được phân tách bằng dấu phẩy.
  • Đám mây gốc trên Kubernetes: Biểu đồ Helm cung cấp khả năng triển khai theo cụm có khả năng mở rộng theo chiều ngang, có khả năng chịu lỗi và dễ quản lý bằng Kubernetes.

Phiên bản mới của Apache Pinot

Điều đáng nói là phiên bản 1.0 của Apache Pinot vừa được phát hành gần đây , về cơ bản đã tổng kết rất nhiều công việc nhằm ổn định mã nguồn và xem xét các ý kiến ​​đóng góp của cộng đồng (hơn 300 ý kiến ​​đã được xem xét).

Ngoài ra, cần lưu ý rằng công cụ truy vấn đa giai đoạn mới đã phát huy hết tiềm năng của mình , cho phép hỗ trợ hợp nhất bảng (JOIN). Công cụ được sử dụng ban đầu hoạt động xuất sắc với các thao tác lọc và tổng hợp đơn giản, nhưng để đảm bảo thời gian thực thi truy vấn có thể dự đoán được, nó không hỗ trợ các thao tác kết hợp bảng.

Công cụ mới bao gồm các giai đoạn trung gian để xử lý các truy vấn phức tạp, và ngữ nghĩa SQL của nó gần với ANSI SQL . Hơn nữa, phiên bản mới cung cấp hỗ trợ gốc cho việc xử lý dữ liệu JSON, hỗ trợ giá trị "NULL", tích hợp với Apache Spark 3.x và cải thiện việc triển khai bảng ở chế độ Upsert (thêm tính năng nén phân đoạn và hỗ trợ các thao tác xóa).

Cuối cùng, nếu bạn muốn tìm hiểu thêm , bạn nên biết rằng mã nguồn của dự án được viết bằng Java và phân phối theo giấy phép Apache. Bạn có thể tìm thấy thông tin chi tiết về phiên bản mới tại liên kết sau.


Thêm vào danh sách nguồn ưu tiên trên Google.