Trong một báo cáo vào tháng 7 năm 2022, công ty nghiên cứu thị trường IDC đã dự đoán rằng thị trường dữ liệu lớn, phần mềm phân tích cũng như dịch vụ đám mây trên toàn thế giới sẽ có tổng trị giá 104 tỷ đô la vào năm 2022 và tăng lên gần 123 tỷ đô la vào năm 2023.
Dưới đây là 18 công cụ và công nghệ dữ liệu phổ biến dành cho quản lý và phân tích dữ liệu lớn:

1. Airflow

Airflow là một nền tảng giúp cho việc lập lịch và quản lí workflow công việc thông qua việc lập trình (hỗ trợ trên Python), được phát triển từ Airbnb vào tháng 10/2014, chính thức công bố là công nghệ nguồn mở vào giữa năm 2015.
Một số tính năng, công dụng của Airflow
– Airflow quản lí các công việc dựa trên đồ thị DAG trong đó mỗi node trong đồ thị là một task nhỏ, minh họa sự phụ thuộc giữa các tác vụ khác nhau trong quy trình làm việc
– Là một giao diện ứng dụng web để trực quan hóa các đường dẫn dữ liệu, theo dõi trạng thái hoạt động của chúng và khắc phục sự cố
– Tích hợp sẵn với các nền tảng đám mây lớn và các dịch vụ của bên thứ ba khác.

2. Delta Lake

Delta Lake là một lớp lưu trữ nguồn mở được thiết kế để chạy trên một data lake hiện có để cải thiện độ tin cậy, bảo mật và hiệu suất của người dùng.
Tính năng:
– Hỗ trợ các giao dịch ACID
– Có khả năng lưu trữ dữ liệu ở định dạng Apache Parquet mở
– Delta Lake thêm một lớp quản trị và quản lý dữ liệu thông minh vào môi trường lưu trữ mở dành cho dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc, hỗ trợ cả hoạt động phát trực tuyến và hàng loạt từ một nguồn duy nhất
– Bảo vệ chất lượng và tính nhất quán của dữ liệu bằng thực thi giản đồ (Schema enforcement), đảm bảo rằng các loại dữ liệu là chính xác và đầy đủ, đồng thời ngăn dữ liệu xấu làm hỏng các quy trình quan trọng
– Hợp nhất, cập nhật, xóa: Delta Lake hỗ trợ các hoạt động ngôn ngữ thao tác dữ liệu (DML) bao gồm hợp nhất, cập nhật và xóa các lệnh để tuân thủ và các trường hợp sử dụng phức tạp như phát trực tuyến, thu thập dữ liệu thay đổi, hoạt động thay đổi kích thước chậm (SCD).

3. Drill

Apache Drill được coi là phiên bản nâng cấp của Apache Sqoop. Drill lấy cảm hứng từ khái niệm Google Drillac có tên là BigQuery và sau này trở thành một dự án mã nguồn mở của Apache.
Apache Drill là công cụ truy vấn phân tán có độ trễ thấp dành cho các bộ dữ liệu quy mô lớn, bao gồm dữ liệu có cấu trúc và bán cấu trúc/lồng nhau. Drill có thể mở rộng quy mô trên hàng nghìn nút cụm và có khả năng truy vấn hàng petabyte dữ liệu bằng cách sử dụng SQL và API kết nối tiêu chuẩn.
Được thiết kế để khám phá các bộ dữ liệu lớn, Drill cho phép người dùng truy vấn nhiều loại dữ liệu ở các định dạng khác nhau, từ tệp trình tự Hadoop và server logs đến cơ sở dữ liệu NoSQL và lưu trữ đối tượng trên đám mây
– Drill truy cập hầu hết các cơ sở dữ liệu quan hệ thông qua một plugin
– Làm việc với các công cụ BI thường sử dụng, như Tableau và Qlik
– Chạy trong bất kỳ môi trường cụm phân tán nào.

4. Druid

Druid là một cơ sở dữ liệu phân tích thời gian thực mang lại độ trễ thấp cho các truy vấn, tính đồng thời cao, khả năng nhiều bên thuê và khả năng hiển thị tức thì đối với dữ liệu truyền phát. Theo nhiều người dùng cho biết, người dùng cuối có thể truy vấn dữ liệu được lưu trữ trong Druid cùng một lúc mà không ảnh hưởng đến hiệu suất.
Được viết bằng Java và được tạo vào năm 2011, Druid đã trở thành công nghệ của Apache vào năm 2018. Giống như kho dữ liệu, Druid sử dụng lưu trữ theo định hướng cột và có thể tải tệp ở chế độ hàng loạt. Nhưng nó cũng kết hợp các tính năng từ hệ thống tìm kiếm và cơ sở dữ liệu chuỗi thời gian, bao gồm:

– Các chỉ mục tìm kiếm đảo ngược tự nhiên để tăng tốc độ tìm kiếm và lọc dữ liệu
– Phân vùng và truy vấn dữ liệu dựa trên thời gian
– Các lược đồ linh hoạt với sự hỗ trợ riêng cho dữ liệu bán cấu trúc và dữ liệu lồng nhau.

5. Flink

Apache Flink là một khung và công cụ xử lý phân tán để tính toán trạng thái trên các luồng dữ liệu không giới hạn và có giới hạn. Flink đã được thiết kế để chạy trong tất cả các môi trường cụm chung, thực hiện tính toán ở tốc độ trong bộ nhớ và ở mọi quy mô.
Apache Flink là công cụ khổng lồ không khác gì 4G của Big data. Flink xử lý các sự kiện ở tốc độ cao liên tục với độ trễ thấp. Đây là một nền tảng mã nguồn mở quan trọng có thể giải quyết hiệu quả nhiều loại điều kiện:
– Xử lý hàng loạt
– Xử lý lặp đi lặp lại
– Xử lý luồng thời gian thực
– Xử lý tương tác
– Xử lý trong bộ nhớ
– Xử lý đồ thị
Flink là tùy chọn của MapReduce, xử lý dữ liệu nhanh hơn 100 lần so với MapReduce. Flink độc lập với Hadoop nhưng nó có thể sử dụng HDFS (Hadoop Distributed File System) để đọc, ghi, lưu trữ, xử lý dữ liệu. Flink không cung cấp hệ thống kho dữ liệu của riêng mình mà lấy dữ liệu từ kho lưu trữ phân tán.

6. Hadoop

Hadoop được phát triển như một công nghệ dữ liệu lớn tiên phong để giúp xử lý khối lượng ngày càng tăng của dữ liệu có cấu trúc, phi cấu trúc và bán cấu trúc. Được phát hành lần đầu tiên vào năm 2006.
Phần mềm Apache Hadoop là một khung nguồn mở cho phép lưu trữ phân tán và xử lý các bộ dữ liệu lớn trên các cụm máy tính bằng các mô hình lập trình đơn giản.
Hadoop được thiết kế để mở rộng quy mô từ một máy tính thành hàng một nhóm với hàng nghìn máy tính được nhóm lại, với mỗi máy cung cấp khả năng tính toán và lưu trữ cục bộ. Bằng cách này, Hadoop có thể lưu trữ và xử lý hiệu quả các bộ dữ liệu lớn có kích thước từ gigabyte đến petabyte dữ liệu.
Hadoop có bốn thành phần chính:
– Hadoop Distributed File System (HDFS), phân chia dữ liệu thành các khối để lưu trữ trên các nút trong một cụm, sử dụng các phương pháp sao chép để ngăn ngừa mất dữ liệu và quản lý quyền truy cập vào dữ liệu
– YARN (Yet Another Resource Negotiator) lên lịch các công việc chạy trên các nút cụm và phân bổ tài nguyên hệ thống cho chúng
– Hadoop MapReduce, một công cụ xử lý hàng loạt tích hợp, chia nhỏ các tính toán lớn và chạy chúng trên các nút khác nhau để cân bằng tải và tốc độ
– Hadoop Common, một bộ tiện ích và thư viện dùng chung

7. Hive

Hive là phần mềm cơ sở hạ tầng kho dữ liệu dựa trên SQL để đọc, viết và quản lý các tập dữ liệu lớn trong môi trường lưu trữ phân tán. Được tạo bởi Facebook nhưng sau đó được mã nguồn mở cho Apache tiếp tục phát triển và duy trì công nghệ.
Hive chạy trên Hadoop và được sử dụng để xử lý dữ liệu có cấu trúc, sử dụng để tóm tắt và phân tích dữ liệu, cũng như để truy vấn một lượng lớn dữ liệu. Mặc dù không thể được sử dụng để xử lý giao dịch trực tuyến, cập nhật theo thời gian thực và các truy vấn hoặc công việc yêu cầu truy xuất dữ liệu có độ trễ thấp nhưng Hive vẫn được các nhà phát triển mô tả là có thể mở rộng, nhanh chóng và linh hoạt.
Các tính năng chính khác bao gồm:
– Chức năng SQL tiêu chuẩn để truy vấn và phân tích dữ liệu
– Một cơ chế tích hợp để giúp người dùng áp đặt cấu trúc trên các định dạng dữ liệu khác nhau
– Quyền truy cập vào các tệp HDFS và các tệp được lưu trữ trong các hệ thống khác, chẳng hạn như cơ sở dữ liệu Apache HBase.

8. HPCC Systems

Hệ thống HPCC là một nền tảng xử lý dữ liệu lớn được phát triển bởi LexisNexis trước khi được mã nguồn mở vào năm 2011.
Hệ thống HPCC bao gồm ba thành phần chính:
– Thor: công cụ sàng lọc dữ liệu được sử dụng để làm sạch, hợp nhất và chuyển đổi dữ liệu, đồng thời lập hồ sơ, phân tích và sẵn sàng sử dụng dữ liệu đó trong các truy vấn
– Roxie: công cụ phân phối dữ liệu được sử dụng để cung cấp dữ liệu đã chuẩn bị sẵn
– Ngôn ngữ điều khiển doanh nghiệp (ECL): ngôn ngữ lập trình để phát triển ứng dụng

9. Hudi

Hudi (Hadoop Upserts Deletes and Incrementals) là công nghệ nguồn mở khác do Apache duy trì, được sử dụng để quản lý việc nhập và lưu trữ các tập dữ liệu phân tích lớn trên các hệ thống tệp tương thích với Hadoop, bao gồm HDFS và các dịch vụ lưu trữ đối tượng đám mây.
Có thể sử dụng để thực hiện những việc sau:
– Đơn giản hóa việc xử lý dữ liệu gia tăng và phát triển đường ống dữ liệu
– Nâng cao chất lượng dữ liệu trong hệ thống dữ liệu lớn
– Quản lý vòng đời của tập dữ liệu.

10. Iceberg

Iceberg là một định dạng bảng mở được sử dụng để quản lý dữ liệu trong hồ dữ liệu (data lake). Tạo bởi Netflix để sử dụng với các bảng có kích thước petabyte của công ty, Iceberg hiện là một dự án của Apache.
Iceberg được thiết kếđể cải thiện bố cục tiêu chuẩn tồn tại trong các công cụ như Hive, Presto, Spark và Trino, định dạng bảng Iceberg có các chức năng tương tự như bảng SQL trong cơ sở dữ liệu quan hệ. Tuy nhiên, Iceberg cũng hỗ trợ nhiều công cụ hoạt động trên cùng một tập dữ liệu. Các tính năng đáng chú ý khác bao gồm:
– Tiến hóa lược đồ để sửa đổi các bảng mà không phải viết lại hoặc di chuyển dữ liệu
– Phân vùng dữ liệu ẩn
– Khả năng “du hành thời gian” hỗ trợ các truy vấn có thể lặp lại bằng cách sử dụng cùng một ảnh chụp.

11. Kafka

Kafka là một nền tảng phát trực tuyến sự kiện phân tán, được sử dụng bởi hơn 80% công ty trong danh sách Fortune 100 và hàng nghìn tổ chức khác cho các đường dẫn dữ liệu hiệu suất cao, phân tích phát trực tuyến, tích hợp dữ liệu và các ứng dụng quan trọng. Nói một cách đơn giản hơn, Kafka là một framework để lưu trữ, đọc và phân tích dữ liệu truyền phát.
Công nghệ này tách các luồng dữ liệu và hệ thống, giữ các luồng dữ liệu để sau đó chúng có thể được sử dụng ở nơi khác. Kaffka chạy trong môi trường phân tán và sử dụng giao thức mạng TCP hiệu suất cao để giao tiếp với các hệ thống và ứng dụng. Kafka được LinkedIn tạo ra trước khi được chuyển cho Apache vào năm 2011.
Dưới đây là một số thành phần chính trong Kafka:
– Bộ năm API cốt lõi cho Java và ngôn ngữ lập trình Scala
– Khả năng chịu lỗi cho cả máy chủ và máy khách trong cụm Kafka
– Khả năng mở rộng linh hoạt lên tới 1.000 nhà môi giới hoặc máy chủ lưu trữ trên mỗi cụm.

12. Kylin

Kylin là một nền tảng phân tích và kho dữ liệu phân tán cho dữ liệu lớn. Kylin cung cấp một công cụ xử lý phân tích trực tuyến (OLAP) để hỗ trợ các tập dữ liệu cực lớn. Kylin được xây dựng dựa trên các công nghệ Apache khác — bao gồm Hadoop, Hive, Parquet và Spark nên có thể dễ dàng mở rộng quy mô để xử lý các tải dữ liệu lớn đó.
Kylin cung cấp phản hồi truy vấn tính bằng mili giây. Ngoài ra, Kylin cung cấp giao diện ANSI SQL để phân tích đa chiều dữ liệu lớn và tích hợp với Tableau, Microsoft Power BI và các công cụ BI khác.
Các tính năng bao gồm:
– Tính toán trước các khối OLAP đa chiều để tăng tốc phân tích
– Chức năng quản lý, giám sát công việc
– Hỗ trợ xây dựng giao diện người dùng tùy chỉnh trên lõi Kylin

13. Pinot

Pinot là kho lưu trữ dữ liệu OLAP phân tán theo thời gian thực được xây dựng để hỗ trợ truy vấn có độ trễ thấp của người dùng phân tích. Thiết kế của pinot cho phép mở rộng quy mô theo chiều ngang để mang lại độ trễ thấp ngay cả với các tập dữ liệu lớn và thông lượng cao. Để cung cấp hiệu suất như đã hứa, Pinot lưu trữ dữ liệu ở định dạng cột và sử dụng các kỹ thuật lập chỉ mục khác nhau để lọc, tổng hợp và nhóm dữ liệu. Ngoài ra, các thay đổi cấu hình có thể được thực hiện linh hoạt mà không ảnh hưởng đến hiệu suất truy vấn hoặc tính khả dụng của dữ liệu.
Bắt đầu vào năm 2013 là một dự án nội bộ tại LinkedIn, Pinot đã được mã nguồn mở vào năm 2015 và trở thành một dự án cấp cao nhất của Apache vào năm 2021.
Các tính năng:
– Nhập dữ liệu gần thời gian thực từ các nguồn phát trực tuyến
– Giao diện SQL để truy vấn tương tác và API REST để lập trình truy vấn
– Hỗ trợ chạy các thuật toán học máy đối với các tập dữ liệu được lưu trữ để phát hiện sự bất thường.

14. Presto

Trước đây được gọi là PrestoDB, công cụ truy vấn SQL mã nguồn mở này có thể xử lý đồng thời cả truy vấn nhanh và khối lượng dữ liệu lớn trong tập dữ liệu phân tán. Presto được tối ưu hóa cho truy vấn tương tác có độ trễ thấp và nó mở rộng quy mô để hỗ trợ các ứng dụng phân tích trên nhiều petabyte dữ liệu trong kho dữ liệu và các kho lưu trữ khác.
Quá trình phát triển Presto bắt đầu tại Facebook vào năm 2012. Năm 2018, công nghệ này đã chia thành hai nhánh: PrestoDB và PrestoSQL. Tháng 12/2020, PrestoSQL được đổi tên thành Trino và PrestoDB trở lại tên Presto. Dự án nguồn mở Presto hiện được giám sát bởi Presto Foundation, được thành lập như một phần của Linux Foundation vào năm 2019.
Presto bao gồm các tính năng sau:
– Hỗ trợ truy vấn dữ liệu trong Hive, các cơ sở dữ liệu khác nhau và kho lưu trữ dữ liệu độc quyền
– Khả năng kết hợp dữ liệu từ nhiều nguồn trong một truy vấn duy nhất
– Thời gian phản hồi truy vấn thường nằm trong khoảng từ dưới một giây đến vài phút

15. Samza

Samza là một hệ thống xử lý luồng phân tán được xây dựng bởi LinkedIn và hiện là một dự án mã nguồn mở do Apache quản lý.
Hệ thống có thể chạy trên Hadoop YARN hoặc Kubernetes và cũng cung cấp tùy chọn triển khai độc lập. Trang web Samza cho biết nó có thể xử lý “vài terabyte” dữ liệu trạng thái, với độ trễ thấp và thông lượng cao để phân tích dữ liệu nhanh. Thông qua một API hợp nhất, Samza cũng có thể sử dụng cùng một mã được viết cho các công việc truyền dữ liệu để chạy các ứng dụng hàng loạt. Các tính năng khác bao gồm:
– Tích hợp sẵn với Hadoop, Kafka và một số nền tảng dữ liệu khác
– Khả năng chạy như một thư viện nhúng trong các ứng dụng Java và Scala
– Các tính năng chịu lỗi được thiết kế để cho phép phục hồi nhanh chóng từ các lỗi hệ thống.

16. Spark

Apache Spark là một công cụ phân tích và xử lý dữ liệu trong bộ nhớ có thể chạy trên các cụm do Hadoop YARN, Mesos và Kubernetes quản lý hoặc ở chế độ độc lập. Cho phép chuyển đổi và phân tích dữ liệu quy mô lớn, đồng thời có thể được sử dụng cho cả ứng dụng hàng loạt và ứng dụng phát trực tuyến, cũng như các trường hợp sử dụng máy học và xử lý biểu đồ. Tất cả đều được hỗ trợ bởi tập hợp các mô-đun và thư viện tích hợp sau:
– Spark SQL, để xử lý dữ liệu có cấu trúc được tối ưu hóa thông qua các truy vấn SQL
– Spark Streaming và Structured Streaming, hai mô-đun xử lý luồng
– MLlib, một thư viện máy học bao gồm các thuật toán và công cụ liên quan
– GraphX, một API bổ sung hỗ trợ cho các ứng dụng đồ thị

17. Storm

Storm là một hệ thống tính toán thời gian thực phân tán được thiết kế để xử lý các luồng dữ liệu không giới hạn một cách đáng tin cậy. Storm có thể được sử dụng cho các ứng dụng bao gồm phân tích thời gian thực, học máy trực tuyến và tính toán liên tục, cũng như trích xuất, chuyển đổi và tải các công việc.
Các cụm Storm tương tự như các cụm Hadoop, nhưng các ứng dụng tiếp tục chạy liên tục trừ khi chúng bị dừng. Hệ thống có khả năng chịu lỗi và đảm bảo rằng dữ liệu sẽ được xử lý. Storm bao gồm các yếu tố sau:
– Tính năng Storm SQL cho phép chạy các truy vấn SQL đối với các tập dữ liệu truyền trực tuyến
– Trident và Stream API, hai giao diện cấp cao khác để xử lý trong Storm;
– Sử dụng công nghệ Apache ZooKeeper để điều phối các cụm.

18. Trino

Trino là một trong hai nhánh của công cụ truy vấn Presto. Được gọi là PrestoSQL cho đến khi nó được đổi tên vào tháng 12 năm 2020, Trino “chạy với tốc độ chóng mặt”, theo lời của Trino Software Foundation. Nhóm giám sát sự phát triển của Trino ban đầu được thành lập vào năm 2019 với tên gọi Presto Software Foundation
Trino cho phép người dùng truy vấn dữ liệu bất kể dữ liệu được lưu trữ ở đâu, với sự hỗ trợ cho các truy vấn chạy nguyên bản trong Hadoop và các kho lưu trữ dữ liệu khác. Giống như Presto, Trino cũng được thiết kế cho những mục đích sau:
– Phân tích tương tác đặc biệt và truy vấn hàng loạt chạy dài
– Kết hợp dữ liệu từ nhiều hệ thống trong các truy vấn
– Làm việc với Tableau, Power BI, ngôn ngữ lập trình R và các công cụ phân tích và BI khác.
Xem thêm

Tags