3 Khảo sát và lựa chọn framework xử lý dữ liệu
3.2.4 Khả năng tích hợp với các framework bigdata khác
Hình ảnh dưới đây sẽ cho chúng ta thấy được góc nhìn tổng quan về vị trí của các framework dữ liệu lớn hiện nay
HÌNH3.3: Top Big Data Frameworks
Có hai đường dữ liệu chính được quy ước bằng màu xanh và đỏ: tương ứng với dữ liệu Batch và dữ liệu Stream. Chúng ta sẽ cùng điểm qua một số thành phần chính và các đại diện tiêu của từng nhóm.
• Data Ingestion: là nhóm các framework có khả năng tự động hóa và quản lý
luồng dữ liệu giữa các hệ thống khác nhau, phân phối dữ liệu. Đại diện tiêu biểu: Nifi, Sqoop, Flume.
• Message Queue: các framework cung cấp bộ điệm tạm để lưu trữ các gói tin,
và ở cuối hàng đợi cho phép các phần mềm khác kết nối vào để gửi và nhận gói tin. Đại diện tiêu biểu: Kafka, RabbitMQ.
Chương 3. Khảo sát và lựa chọn framework xử lý dữ liệu 21
• Distributed Database and File System: Các hệ thống file phân tán nổi tiếng
gồm có Hadoop, Amazon S3. Ngoài ra còn có các hệ quản trị cơ sở dữ liệu phân tán gồm: Cassandra, Hbase.
• Query Interface: Là bộ công cụ giúp các phần mềm tương tác trực tiếp với hệ
thống file phân tán bằng các câu lệnh query.
• Streaming Processing: gồm nhóm các framework đã được giới thiệu trước đó,
gồm: Storm, Flink hay Spark Streaming
• Batch Processing: các framework tương tác với hệ thống file và cơ sở dữ liệu
phân tán có thể là: Drill, Presto, SparkSQL, Mapreduce.
• Java Connector: là một lớp API hỗ trợ các phần mềm Java tương tác với các hệ
quản trị cơ sỏ dữ liệu hướng quan hệ.
• Relational Database (RDB): Các hệ quản trị cơ sở dữ liệu hướng quan hệ mặc
dù có nhiều điểm yếu về mặt hiệu năng trong thế giới dữ liệu lớn. Tuy nhiên, vai trò của chúng vẫn được sử dụng triệt để trong các ứng dụng để làm data warehouse phục vụ cho một bài toán cụ thể nào đó. Các đại diện lớn gồm: MySQL, PostgreSQL.
• Data Visualization: là các framework hỗ trợ giao diện, giúp cho việc đọc và
hiểu về dữ liệu trở nên dễ dàng hơn thông qua các thao tác kéo thả trực quan. Đại diện: Tableau
Với bức tranh tổng quan trên, chúng ta có thể xác định được vai trò và tầm ảnh hưởng của các framework đang xem xét:
• MapReduce: bị giới hạn khi chỉ tham gia tính toán và xử lý dữ liệu Batch. Hơn
nữa, MapReduce là một công cụ built-in của Hadoop nên các kết nối đến các hệ thống file khác rất hạn chế và không được cập nhật thường xuyên
• Flink và Storm: Có thể kết nối được với hầu hết các framework message queue,
broker. Tuy nhiên, vì được phát triển để xử lý dữ liệu Streaming nên các tính toán cho Batch rất hạn chế, không được hỗ trợ nhiều giải thuật tính toán mạnh mẽ như của Spark.
• Spark: như trên hình minh họa, Spark có thể góp mặt ở tất cả các vị trí của hệ sinh thái Big Data. Spark có khả năng xử lý dữ liệu Streaming. Module Spark SQL được phát triển mạnh mẽ để xử lý dữ liệu Batch, đọc trực tiếp từ hệ thống file hoặc qua trung gian đối với các cơ sở dữ liệu phân tán thông qua Hive, kết nối được với cơ sở dữ liệu quan hệ thông qua Java JDBC.
Chương 3. Khảo sát và lựa chọn framework xử lý dữ liệu 22