Nội dung chính của bài viết này "Big Data Architecture - Kiến trúc dữ liệu lớn": lý thuyết của nó đúng trong mọi trường hợp xây dựng các kiến trúc dữ liệu lớn. Bài viết này sẽ giới thiệu kiến trúc, các khái niệm và để mọi người khi bắt đầu làm việc với Big Data hay các platform triển khai Big Data như Hadoop họ triển khai các thành phần như thế nào. Cũng để giải thích một số từ khóa như Hadoop, Hadoop HDFS. Kafka, … nằm ở đâu, phục vụ gì trong kiến trúc của Big Data.

Nếu bạn đang là một Full-stack Developer muốn ứng dụng Big Data phát triển giải pháp cho các doanh nghiệp bán lẻ quốc tế, hãy ứng tuyển tại đây

Big Data Architecture - Kiến trúc dữ liệu lớn
Big Data Architecture - Kiến trúc dữ liệu lớn

Đầu tiên, một giải pháp dữ liệu lớn thường liên quan đến một hay nhiều loại công việc sau:

  • Batch processing of big data sources at rest.
  • Real-time processing of big data in motion.
  • Interactive exploration of big data.
  • Predictive analytics and machine learning.

Và, để triển khai một giải pháp dữ liệu lớn, thì kiến trúc của nó thường bao gồm các thành phần (một số hoặc tất cả) :

  • Data Sources: dữ liệu nguồn - nôm na là nơi dữ liệu được sinh ra, bao gồm dữ liệu có cấu trúc (structure), dữ liệu phi cấu trúc (un-structure) cũng như dữ liệu bán cấu trúc (semi-structure). Dữ liệu có thể đến từ rất nhiều nguồn khác nhau như dữ liệu từ các ứng dụng, cơ sở dữ liệu quan hệ (giao dịch mua/ bán hàng từ một hệ thống bán lẻ, giao dịch gửi tiền vào ngân hàng, …), hoặc dữ liệu file được tạo ra bởi các log của ứng dụng (dữ liệu log ghi lại thời gian xử lý của hệ thống, …), hay dữ liệu thời gian thực từ các thiết bị IoT (hình ảnh theo dõi từ camera, cảm biến nhiệt độ, độ ẩm, ….)
  • Data Storage: nơi lưu trữ dữ liệu - được thiết kế để lưu trữ lại khối lượng rất lớn các loại dữ liệu với các định dạng khác nhau được sinh ra bởi dữ liệu nguồn (Data Source) trong mô hình xử lý dữ liệu theo lô (Batch Processing). Hiện tại, trong Hadoop hay các giải pháp dữ liệu lớn khác, mô hình được triển khai phổ biến nhất cho thành phần Data Storage này là các hệ thống lưu trữ dữ liệu dạng file phân tán trên nhiều node khác nhau trong 1 cụm cluster, để đảm bảo cho khả năng xử liệu rất lớn và an toàn ( replica ). Apache Hadoop HDFS ( HDFS : Hadoop distributed file system ) đang được sử dụng phổ biến để implement thành phần này trong các hệ thống Big Data.
  • Batch Processing: Xử lý dữ liệu theo lô - thành phần này cho phép xử lý một lượng lớn dữ liệu thông qua việc đọc dữ liệu từ các file nguồn, lọc dữ liệu theo các điều kiện nhất định, tính toán trên dữ liệu, và ghi kết quả xuống 1 file đích. Trong thành phần này bạn có thể sử dụng Spark, Hive, MapReduce, … với nhiều ngôn ngữ lập trình khác nhau như Java, Scala hoặc Python.
  • Real-time Message Ingestion: Thu thập dữ liệu thời gian thực - như đã nói ở trên, dữ liệu được sinh ra từ nguồn (Data Source) có thể bao gồm dữ liệu thời gian thực (ví dụ từ các thiết bị IoT) do đó thành phần này cho phép một hệ thống Big Data có thể thu thập và lưu trữ các loại dữ liệu trong thời gian thực phục vụ cho việc xử lý dữ liệu theo luồng (Streaming Processing). Công nghệ phổ biến nhất chắc các bạn hay nghe đến Kafka, ngoài ra còn có những cái tên khác như RabbitMQ, ActiveMQ, …
  • Stream Processing: Xử lý dữ liệu theo luồng - tương tự như việc xử lý dữ liệu theo lô (Batch Processing), sau khi thu thập dữ liệu thời gian thực, dữ liệu cũng cần phải được lọc theo các điều kiện nhất định, tính toán trên dữ liệu, và ghi kết quả dữ liệu sau khi được xử lý. Chúng ta có thể nhắc đến Apache Storm, Spark Streaming, …
  • Analytical Data Store: nơi lưu trữ dữ liệu phân tích - chịu trách nhiệm lưu trữ dữ liệu đã được xử lý theo định dạng có cấu trúc để phục vụ cho các công cụ phân tích dữ liệu (BI Tools). Dữ liệu có thể được lưu trữ dưới dạng OLAP trong thiết kế Kimball hay còn có tên khác là " Star Schema - Mô hình dữ liệu lược đồ hình sao" (cho bạn nào chưa biết thì Kimball là một trong 3 phương pháp luận khi thiết kế 1 data warehouse: Inmon, Kimball và Data Vault) hoặc dữ liệu có thể lưu trữ bằng các công nghệ NoQuery như HBase, Cassandra, …
  • Analysis and Reporting: Phân tích và báo cáo - thành phần này đáp ứng việc tự khai thác dữ liệu data self-service. Cho phép người dùng cuối trực quan hóa dữ liệu (data visualization), phân tích dữ liệu, cũng như kết xuất các báo cáo khác nhau. Công nghệ được sử dụng ở tầng này khá đa dạng, có thể là các open source tool như D3.JS, Dygaphs, … đến các công cụ commercial như Tableau, Power BI, …, hay bạn có thể tự code bằng các ngôn ngữ Python, R, …
  • Orchestration: Điều phối - thành phần này có nhiệm vụ điều phối các công việc trong một hệ thống Big Data để đảm bảo luồng xử lý dữ liệu được thông suốt, từ việc thu thập dữ liệu, lưu trữ dữ liệu đến lọc, tính toán trên dữ liệu. Apache Oozie, Airflow, …

Vậy là đi qua hết các khái niệm, thế thì Magestore đã, đang và sẽ làm gì để triển khai sản phẩm Retail Assistant với công nghệ Big Data này.

Retail Assistant với công nghệ Big Data
Retail Assistant với công nghệ Big Data
Nếu bạn đang là một Full-stack Developer muốn ứng dụng Big Data phát triển giải pháp cho các doanh nghiệp bán lẻ quốc tế, hãy ứng tuyển tại đây

Tham khảo: Big Data Architecture của Microsoft 1

Hãy đăng ký nhận tin để là người đầu tiên đọc bài viết mới nhất từ chúng tôi nhé

Posted 
Apr 18, 2020
 in 
Tech
 category

Bài viết khác từ

Tech

category

View All