Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh bùng nổ công nghệ thông tin và truyền thông số, dữ liệu đã trở thành một nguồn tài nguyên then chốt của các nền tảng xem phim trực tuyến. Ngành công nghiệp giải trí kỹ thuật số liên tục tiếp nhận lượng dữ liệu khổng lồ phát sinh từ hành vi người dùng, thông tin danh mục phim, các lượt đánh giá và xu hướng tiêu thụ nội dung. Việc khai thác khối dữ liệu này đóng vai trò quyết định trong việc cá nhân hóa trải nghiệm người xem thông qua các hệ thống gợi ý (Recommender Systems), đồng thời định hình chiến lược phân phối nội dung của nhà cung cấp dịch vụ.

Tuy nhiên, sự gia tăng nhanh chóng về dung lượng và tính đa dạng của dữ liệu đã bộc lộ những giới hạn cố hữu của các kiến trúc dữ liệu truyền thống:

  • Hệ thống Kho dữ liệu (Data Warehouse) tối ưu cho các truy vấn phân tích dữ liệu có cấu trúc nhưng gặp khó khăn lớn khi tiếp nhận và xử lý dữ liệu bán cấu trúc hoặc phi cấu trúc.
  • Hệ thống Hồ dữ liệu (Data Lake) giải quyết được bài toán lưu trữ dữ liệu thô đa định dạng với chi phí thấp nhưng lại thiếu cơ chế quản lý giao dịch tin cậy, không đảm bảo tính toàn vẹn dữ liệu và dễ rơi vào tình trạng "đầm lầy dữ liệu" (data swamp).

Trước thách thức đó, kiến trúc Data Lakehouse xuất hiện như một mô hình hợp nhất, kết hợp ưu điểm chi phí thấp và khả năng mở rộng của Data Lake với năng lực quản lý giao dịch ACID cùng hiệu năng truy vấn phân tích của Data Warehouse. Đề tài khóa luận tốt nghiệp "Ứng dụng Data Lakehouse phục vụ hệ thống gợi ý phim" của sinh viên Nguyễn Anh Tuấn và Nguyễn Duy Hải, dưới sự hướng dẫn của ThS. Lê Thị Minh Châu tại Khoa Công nghệ Thông tin – Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (thực hiện tháng 06/2025), được triển khai nhằm nghiên cứu và hiện thực hóa giải pháp kiến trúc này cho bài toán lưu trữ, xử lý dữ liệu và xây dựng hệ thống gợi ý phim.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể trong đề cương bao gồm hai phần:

  1. Nhiệm vụ lý thuyết:
    • 1.1. Tìm hiểu về Data Lake, Data Warehouse và kiến trúc Data Lakehouse.
    • 1.2. Tìm hiểu về các công nghệ nền tảng: Docker, Apache Airflow, Apache Spark, MinIO, Hive Metastore, Delta Lake, Apache Superset, Trino và Apache Kafka.
    • 1.3. Tìm hiểu các phương pháp xây dựng hệ thống gợi ý phim.
  2. Nhiệm vụ thực hành:
    • 2.1. Thiết lập hạ tầng hệ thống trên nền tảng Docker và hệ điều hành Windows.
    • 2.2. Sử dụng Apache Airflow để lập lịch và tự động hóa quy trình trích xuất, chuyển đổi và nạp dữ liệu (ETL).
    • 2.3. Thu thập dữ liệu từ The Movie Database API (TMDB API) và sử dụng Apache Kafka làm vùng đệm (buffer) tiếp nhận dữ liệu.
    • 2.4. Triển khai MinIO làm hệ thống lưu trữ đối tượng cho dữ liệu nguồn ban đầu.
    • 2.5. Sử dụng PySpark để chuyển đổi, tiền xử lý và tổ chức dữ liệu vào 3 tầng trong kiến trúc Medallion (Bronze, Silver, Gold) trên MinIO.
    • 2.6. Ứng dụng Delta Lake để lưu trữ dữ liệu dưới dạng bảng hỗ trợ đầy đủ các giao dịch ACID.
    • 2.7. Sử dụng Hive Metastore để quản lý siêu dữ liệu (metadata) và quản lý phân vùng cho các bảng.
    • 2.8. Cấu hình Trino làm công cụ truy vấn phân tán trực tiếp từ Data Lakehouse.
    • 2.9. Ứng dụng Apache Superset để trực quan hóa dữ liệu và xây dựng các báo cáo phân tích.
    • 2.10. Xây dựng và đánh giá mô hình gợi ý phim ứng dụng dữ liệu từ Lakehouse, triển khai giao diện người dùng bằng Streamlit.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Dữ liệu phim ảnh trên các nền tảng trực tuyến; các mô hình kiến trúc hạ tầng cấu thành Data Lakehouse; các công cụ và phần mềm mã nguồn mở phục vụ lưu trữ, quản lý luồng dữ liệu; các mô hình học máy phục vụ bài toán gợi ý.
  • Phạm vi nghiên cứu: Tập trung vào hạ tầng công nghệ dữ liệu lớn phân tán; triển khai hệ thống thông qua container hóa trên Docker; kiểm nghiệm với tập dữ liệu phim thực tế từ tệp bảng tính CSV/Excel và TMDB API; thời gian thực hiện đề tài kéo dài trong 15 tuần.

Cơ sở lý thuyết và phương pháp

Đề tài vận dụng khung lý thuyết quản lý dữ liệu lớn hiện đại cùng các phương pháp kỹ thuật dữ liệu chuyên biệt:

Khung lý thuyết và mô hình kiến trúc

  • Kiến trúc Data Lakehouse: Nền tảng quản lý dữ liệu hợp nhất cho phép thực thi trực tiếp các tác vụ Trí tuệ doanh nghiệp (BI) và Học máy (ML) trên cùng một lớp lưu trữ mà không cần di chuyển hay sao chép dữ liệu qua các hệ thống trung gian. Mô hình này duy trì các đặc tính kỹ thuật: đọc/ghi dữ liệu đồng thời, kiểm soát lược đồ (schema enforcement/evolution), tách biệt tài nguyên lưu trữ và tính toán, định dạng tệp chuẩn hóa mở (Parquet, Delta Lake).
  • Mô hình tổ chức dữ liệu Medallion (Multi-hop):
    • Tầng Bronze: Lưu trữ toàn bộ dữ liệu thô nguyên bản từ các nguồn tiếp nhận, giữ nguyên định dạng để làm bản sao đối chiếu và phục hồi.
    • Tầng Silver: Dữ liệu sau khi làm sạch, chuẩn hóa kiểu dữ liệu, loại bỏ giá trị rỗng/trùng lặp và tích hợp đa nguồn thành cấu trúc bảng chuẩn hóa.
    • Tầng Gold: Dữ liệu tổng hợp, được tối ưu hóa theo các chỉ số phân tích kinh doanh, các tập đặc trưng phục vụ truy vấn BI và huấn luyện mô hình gợi ý.
  • Tính chất giao dịch ACID trong lưu trữ bảng: Sử dụng Delta Lake với cơ chế Write-Ahead Log (Delta Log) nhằm bảo đảm 4 thuộc tính cơ bản của hệ thống cơ sở dữ liệu: Tính nguyên tử (Atomicity), Tính nhất quán (Consistency), Tính độc lập (Isolation) và Tính bền vững (Durability), đi kèm tính năng truy xuất lịch sử dữ liệu theo phiên bản (Time Travel).
  • Lý thuyết hệ thống gợi ý dựa trên nội dung (Content-Based Filtering): Xây dựng hồ sơ đặc trưng (profile item) cho từng bộ phim dưới dạng vector toán học, sau đó áp dụng độ đo tương đồng cosin (Cosine Similarity) để xác định mức độ liên quan giữa các phim dựa trên đặc trưng văn bản.

Phương pháp nghiên cứu và kỹ thuật xử lý thực tế

  • Phương pháp kỹ thuật hệ thống (System Engineering): Thiết kế đường ống luồng dữ liệu (data pipelines) kết hợp xử lý theo lô (batch processing) và xử lý luồng thời gian thực (streaming processing).
  • Kỹ thuật xử lý ngôn ngữ tự nhiên (NLP) cho dữ liệu văn bản:
    • Regex Tokenizer: Ứng dụng biểu thức chính quy để loại bỏ nhiễu (ký tự đặc biệt, dấu câu, thẻ HTML), chuẩn hóa chữ thường và phân tách văn bản mô tả phim thành danh sách token.
    • StopWordsRemover: Loại bỏ các từ dừng không mang giá trị ngữ nghĩa phân loại (trong tiếng Anh như the, is, a, an, hoặc tiếng Việt như cái, các, cả) nhằm giảm số chiều dữ liệu.
    • Kỹ thuật vector hóa văn bản: Tìm hiểu và triển khai phương pháp TF-IDF (Term Frequency – Inverse Document Frequency) nhằm đánh trọng số cho từ dựa trên tần suất xuất hiện cục bộ và nghịch đảo tần suất trong toàn bộ tài liệu; đồng thời khảo sát mô hình Word2Vec (gồm Continuous Bag of Words - CBOW và Skip-Gram) để nắm bắt mối quan hệ ngữ nghĩa phân tán giữa các từ.

Nguồn dữ liệu

Nghiên cứu sử dụng hai nguồn dữ liệu chính:

  • Nguồn dữ liệu tĩnh: Tập dữ liệu thông tin phim lưu trữ dưới dạng tệp Excel/CSV.
  • Nguồn dữ liệu động: Dữ liệu thu thập tự động từ bên ngoài thông qua giao thức API của The Movie Database (TMDB).

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình phân tầng của Data Lakehouse, kết hợp nhiều thành phần mã nguồn mở hoạt động đồng bộ trên nền tảng Docker container.

Phân tầng kiến trúc hệ thống

Hệ thống được cấu trúc thành 5 lớp chức năng:

  1. Tầng tiếp nhận (Ingestion layer): Tiếp nhận dữ liệu từ các tệp tĩnh (CSV) và các luồng dữ liệu thời gian thực được gọi từ TMDB API.
  2. Tầng lưu trữ (Storage layer): Sử dụng MinIO làm hệ thống lưu trữ đối tượng (Object Storage) tương thích S3 API. Tại đây, định dạng bảng Delta Lake được tích hợp trực tiếp để quản lý các tầng dữ liệu Bronze, Silver và Gold.
  3. Tầng siêu dữ liệu (Metadata layer): Hive Metastore chịu trách nhiệm lưu trữ cấu trúc schema, thông tin phân vùng dữ liệu và ánh xạ vị trí lưu trữ vật lý của các bảng trên MinIO, sử dụng cơ sở dữ liệu quan hệ phía sau để quản trị.
  4. Tầng truy vấn và tính toán (API & Query layer): Apache Spark (với PySpark và Spark SQL) thực hiện nhiệm vụ tiền xử lý, tính toán phân tán và chuyển đổi dữ liệu giữa các tầng Medallion; Trino đóng vai trò là công cụ truy vấn SQL phân tán kết nối với Hive Metastore để phục vụ các yêu cầu truy vấn song song với độ trễ thấp.
  5. Tầng tiêu thụ dữ liệu (Data consumption layer): Apache Superset kết nối với Trino để xây dựng các biểu đồ, trang tổng quan phân tích dữ liệu phim; nền tảng Streamlit được sử dụng để xây dựng giao diện ứng dụng web cho người dùng cuối tương tác với hệ thống gợi ý.

Bảng tổng hợp thành phần công nghệ và vai trò kỹ thuật

Công nghệ Thành phần cấu trúc chính Vai trò trong hệ thống đề tài
Docker Docker daemon, client, compose, container, image, volume, network Đóng gói, cô lập và vận hành toàn bộ các dịch vụ trên môi trường máy chủ cục bộ
MinIO Object Storage Nodes, S3 Compatible API, Buckets Lưu trữ đối tượng tập trung cho dữ liệu thô và các bảng dữ liệu Medallion
Delta Lake Delta Log (Write-Ahead Log), Parquet Data Files Đảm bảo giao dịch ACID, kiểm soát lược đồ dữ liệu và hỗ trợ truy vấn Time Travel
Hive Metastore Metastore Service, Metastore Database (RDBMS) Quản lý siêu dữ liệu (schema, bảng, phân vùng, đường dẫn MinIO) cho Spark và Trino
Apache Spark Spark Core, Spark SQL, Spark Streaming, MLlib, GraphX Động cơ tính toán phân tán trong bộ nhớ; thực hiện ETL, làm sạch và vector hóa
Apache Kafka Broker, Topic, Partition, Producer, Consumer, ZooKeeper Vùng đệm tiếp nhận, xử lý và trung chuyển luồng sự kiện thu thập từ TMDB API
Apache Airflow Scheduler, Executor, Web Server, DAGs, Tasks, Operators Lập lịch, giám sát và tự động hóa các quy trình trích xuất và nạp dữ liệu định kỳ
Trino Coordinator, Worker nodes, Hive Connector, Catalogs Phân tán câu lệnh truy vấn SQL song song trên các bảng dữ liệu mà không cần di chuyển dữ liệu
Apache Superset SQL IDE, Dashboard Designer, Visual Components Khám phá dữ liệu, trực quan hóa và thiết lập báo cáo phân tích thông tin phim ảnh
Streamlit Hot-reloading Python Engine, UI Web Widgets Xây dựng giao diện ứng dụng tương tác để người dùng nhận kết quả gợi ý phim

Luồng vận hành dữ liệu (Pipeline)

  1. Dữ liệu tệp CSV: Được Spark đọc và ghi thẳng vào tầng Bronze trên MinIO dưới định dạng thô. Spark tiếp tục đọc dữ liệu từ Bronze, thực hiện xử lý rỗng, chuẩn hóa kiểu dữ liệu, loại bỏ dữ liệu sai lệch để ghi sang tầng Silver. Tại tầng Gold, dữ liệu được liên kết và tổng hợp thành các bảng phục vụ phân tích nghiệp vụ và xây dựng ma trận đặc trưng.
  2. Dữ liệu API TMDB: Airflow lập lịch tự động kích hoạt tiến trình gọi API. Dữ liệu nhận về được gửi vào các Topic của Kafka đóng vai trò buffer trung gian. Spark Structured Streaming đọc các thông điệp từ Kafka, chuyển đổi sang định dạng bảng Delta Lake và lưu trữ vào tầng Bronze, sau đó tiếp tục qua chu trình làm sạch của tầng Silver và Gold tương tự luồng lô.
  3. Truy vấn và ứng dụng: Người dùng thông qua giao diện Streamlit chọn phim yêu thích; mô hình Content-Based Filtering truy vấn vector đặc trưng tương ứng tại tầng Gold, tính khoảng cách tương đồng cosin và hiển thị danh sách các phim phù hợp nhất lên màn hình.

Nội dung chính theo từng chương

Báo cáo khóa luận được tổ chức thành 4 chương chính với nội dung và cấu trúc chi tiết như sau:

Chương 1: Mở đầu

Chương này thiết lập nền tảng và tính cần thiết của nghiên cứu:

  • Trình bày bối cảnh chuyển đổi số của ngành công nghiệp xem phim trực tuyến, nhu cầu ngày càng cao về cá nhân hóa trải nghiệm khách hàng thông qua hệ thống gợi ý.
  • Phân tích những khó khăn của hạ tầng dữ liệu cũ (Data Warehouse bị giới hạn với dữ liệu phi cấu trúc; Data Lake thiếu năng lực giao dịch và tốc độ phân tích).
  • Đưa ra mục tiêu tổng thể về việc nghiên cứu và hiện thực hóa mô hình Data Lakehouse mã nguồn mở.
  • Xác định rõ nhiệm vụ lý thuyết, nhiệm vụ thực hành, phạm vi đề tài gói gọn trong 15 tuần thực hiện trên môi trường Docker, cùng cấu trúc tổng thể 4 chương của khóa luận.

Chương 2: Cơ sở lý thuyết

Chương này tập trung phân tích chuyên sâu các nền tảng công nghệ và lý thuyết toán học áp dụng trong đề tài:

  • Trình bày định nghĩa, các đặc điểm nổi bật, lợi ích và nhược điểm của kiến trúc Data Lakehouse. Phân tích chi tiết nguy cơ phát sinh "đầm lầy dữ liệu" và chi phí vận hành nếu thiếu chiến lược quản trị metadata.
  • Thiết lập bảng so sánh chi tiết giữa ba mô hình kiến trúc: Data Warehouse, Data Lake và Data Lakehouse về kiểu dữ liệu lưu trữ, mục đích sử dụng, chi phí lưu trữ và tính tuân thủ giao dịch ACID.
  • Khảo sát các công nghệ lõi: Nguyên lý container hóa của Docker; các thành phần kiến trúc của Apache Spark (Core, SQL, RDD, bộ nhớ đệm, Streaming, MLlib); đặc tính mở rộng và bảo mật qua S3 API của MinIO; cơ chế Delta Log và các tính năng kiểm soát lược đồ (Schema Enforcement, Evolution, Time Travel) của Delta Lake.
  • Trình bày cách thức vận hành và thành phần kiến trúc của Apache Superset, Apache Airflow (khái niệm DAG, Task, Scheduler, Executor, vòng đời trạng thái tác vụ), Trino (kiến trúc Coordinator - Worker, Stages, Tasks, Splits, Drivers) và Apache Kafka (Broker, Topic, Partition, vai trò của ZooKeeper).
  • Phân tích chi tiết kiến trúc Medallion (vai trò, đặc điểm và trường hợp dữ liệu tại từng tầng Bronze, Silver và Gold).
  • Trình bày lý thuyết về hệ thống gợi ý Content-Based Filtering, các bước tiền xử lý văn bản bằng Regex Tokenizer, kỹ thuật loại bỏ từ dừng bằng StopWordsRemover, cùng hai phương pháp vector hóa văn bản trọng tâm là TF-IDF và mạng nơ-ron Word2Vec (CBOW và Skip-Gram).

Chương 3: Tập dữ liệu và xây dựng hệ thống

Chương này trình bày toàn bộ quy trình thiết kế, triển khai thực nghiệm và đánh giá hệ quả kỹ thuật:

  • Trình bày tổng quan về hai tập dữ liệu đầu vào: Tập dữ liệu tệp tĩnh Excel/CSV và dữ liệu động thu thập qua TMDB API.
  • Thiết kế sơ đồ kiến trúc Data Lakehouse hoàn chỉnh và quy trình hoạt động chi tiết của luồng dữ liệu.
  • Hiện thực hóa quy trình tiền xử lý dữ liệu từ tệp CSV: Xử lý và ghi nhận vào tầng Bronze; chuẩn hóa lược đồ, xử lý giá trị khuyết tật để đưa vào tầng Silver; tổng hợp dữ liệu cấu trúc phục vụ phân tích tại tầng Gold.
  • Hiện thực hóa quy trình tiền xử lý dữ liệu từ TMDB API: Cơ chế gọi API theo lịch của Airflow, đẩy thông điệp vào Kafka buffer, xử lý tầng Bronze, chuẩn hóa tại tầng Silver và nạp vào tầng Gold.
  • Thiết lập các câu hỏi phân tích nâng cao trên tập dữ liệu phim ảnh, sử dụng Trino để truy vấn và kết nối Apache Superset xây dựng dashboard trực quan hóa dữ liệu.
  • Xây dựng mô hình gợi ý Content-Based Filtering: Ứng dụng Spark ML để tiền xử lý văn bản và trích xuất vector đặc trưng cho phim.
  • Thiết kế và triển khai ứng dụng giao diện web demo tương tác trên Streamlit, cho phép người dùng kiểm thử kết quả gợi ý trực tiếp.

Chương 4: Kết luận

Chương cuối cùng tổng kết các hạng mục đã hoàn thành trong đề tài:

  • Đánh giá mức độ hoàn thành nhiệm vụ nghiên cứu lý thuyết và thực hành.
  • Khái quát các kết quả đạt được về mặt hệ thống hạ tầng và ứng dụng gợi ý.
  • Chỉ rõ các hạn chế tồn tại của hệ thống và đề xuất các hướng nghiên cứu mở rộng trong tương lai.

Kết quả và đóng góp

Kết quả kỹ thuật đạt được

Căn cứ trên bảng phân công công việc và kế hoạch thực hiện 15 tuần được trình bày trong tài liệu, các tác giả đã hoàn thành 100% các hạng mục công việc đặt ra:

  • Thiết lập thành công hạ tầng Data Lakehouse mã nguồn mở hoạt động ổn định trên nền tảng Docker với sự tham gia đồng bộ của 10 công nghệ: Docker, Apache Spark, MinIO, Delta Lake, Hive Metastore, Trino, Apache Airflow, Apache Kafka, Apache Superset và Streamlit.
  • Xây dựng thành công quy trình xử lý dữ liệu kép: Pipeline xử lý dữ liệu tĩnh từ các tệp bảng tính CSV và pipeline xử lý dữ liệu thu thập từ TMDB API qua bộ đệm Kafka và Spark Structured Streaming.
  • Hiện thực hóa kiến trúc Medallion, phân tách dữ liệu thành 3 tầng rõ rệt: Tầng Bronze lưu trữ nguyên vẹn dữ liệu thô; Tầng Silver chứa dữ liệu đã được làm sạch và chuẩn hóa; Tầng Gold chứa các bảng dữ liệu tổng hợp sẵn sàng cho phân tích và học máy.
  • Quản lý thành công siêu dữ liệu bằng Hive Metastore, cho phép Trino thực hiện các truy vấn phân tán trực tiếp trên dữ liệu định dạng Delta Lake lưu trữ tại MinIO.
  • Xây dựng thành công hệ thống trực quan hóa dữ liệu trên Apache Superset phục vụ trả lời các câu hỏi phân tích về dữ liệu phim ảnh.
  • Hiện thực hóa thuật toán gợi ý Content-Based Filtering ứng dụng các kỹ thuật xử lý văn bản của Spark (Regex Tokenizer, StopWordsRemover, trích xuất đặc trưng TF-IDF và nghiên cứu biểu diễn vector Word2Vec) và kết nối trực tiếp vào ứng dụng web Streamlit.

Đóng góp của đề tài

Theo nội dung khóa luận tự xác định, đề tài mang lại những đóng góp cụ thể:

  • Đưa ra giải pháp kiến trúc hạ tầng dữ liệu hiện đại thay thế cho các hạn chế của mô hình Data Warehouse và Data Lake truyền thống trong bài toán lưu trữ và xử lý dữ liệu phim trực tuyến.
  • Chứng minh tính khả thi của việc tích hợp toàn diện các công nghệ dữ liệu lớn mã nguồn mở để xây dựng một Data Lakehouse hoàn chỉnh mà không phụ thuộc vào các dịch vụ đám mây thương mại tốn kém.
  • Kết nối thành công chuỗi giá trị từ khâu thu thập dữ liệu (Airflow, Kafka), lưu trữ giao dịch ACID (MinIO, Delta Lake), quản lý siêu dữ liệu (Hive Metastore), truy vấn phân tán (Trino), phân tích trực quan (Superset) đến phục vụ mô hình học máy (Spark ML) trên một nền tảng duy nhất.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài

Dựa trên phạm vi và các phân tích kỹ thuật trong văn bản, đề tài còn tồn tại một số điểm hạn chế:

  • Hệ thống được triển khai trên môi trường Docker cục bộ trên hệ điều hành Windows máy đơn, chưa được kiểm thử và đánh giá hiệu năng thực tế trên một cụm máy chủ phân tán (distributed physical cluster) quy mô lớn.
  • Việc triển khai và vận hành đồng thời các công cụ dữ liệu lớn như Kafka, Spark, Trino đòi hỏi tiêu tốn nhiều tài nguyên tính toán (CPU, RAM), dễ dẫn đến áp lực quá tải tài nguyên trên máy tính cá nhân.
  • Tác giả chỉ ra nguy cơ tiềm ẩn về việc quản trị nếu không kiểm soát nghiêm ngặt lược đồ và metadata có thể biến hệ thống thành "đầm lầy dữ liệu", cũng như việc sao chép/trích xuất qua nhiều bước có thể tạo độ trễ trong quá trình phân tích.
  • Thuật toán gợi ý hoàn thiện trên hệ thống demo chủ yếu tập trung vào phương pháp lọc dựa trên nội dung (Content-Based Filtering), chưa hoàn thiện sâu việc tích hợp đầy đủ mô hình Lọc cộng tác (Collaborative Filtering) và mô hình Lai (Hybrid) cũng như việc tinh chỉnh các mô hình học sâu ngôn ngữ phức tạp (như BERT) trên dữ liệu thực tế.

Hướng phát triển tiếp theo

Tài liệu chỉ ra các định hướng hoàn thiện trong tương lai:

  • Mở rộng triển khai hệ thống Lakehouse lên các nền tảng điện toán đám mây hoặc cụm phần cứng phân tán đa nút thực tế nhằm kiểm chứng khả năng chịu tải và khả năng mở rộng.
  • Tối ưu hóa sâu hơn các pipeline streaming để giảm thiểu tối đa độ trễ từ lúc dữ liệu phát sinh tại TMDB API đến khi hiển thị trên bảng phân tích.
  • Hoàn thiện và tích hợp thuật toán Collaborative Filtering và mô hình gợi ý Hybrid nhằm nâng cao độ chính xác và giải quyết hạn chế của từng phương pháp gợi ý riêng lẻ.
  • Nghiên cứu ứng dụng các kỹ thuật biểu diễn ngữ nghĩa nâng cao (như BERT) kết hợp trong thư viện Spark ML để khai thác sâu hơn ngữ cảnh tóm tắt nội dung phim.

Giá trị tham khảo

Báo cáo khóa luận tốt nghiệp này là một tài liệu kỹ thuật có giá trị tham khảo thiết thực cho các đối tượng:

  • Sinh viên và học viên chuyên ngành Kỹ thuật dữ liệu (Data Engineering), Khoa học dữ liệu (Data Science) và Công nghệ thông tin: Tài liệu cung cấp góc nhìn thực tiễn về cách thiết lập, cấu hình và kết nối một hệ sinh thái dữ liệu lớn hoàn chỉnh gồm nhiều công cụ mã nguồn mở phức tạp (Spark, Kafka, MinIO, Hive, Trino, Delta Lake, Airflow).
  • Kỹ sư và lập trình viên đang xây dựng hệ thống dữ liệu: Phần phân tích chi tiết về kiến trúc Medallion (Bronze, Silver, Gold), cơ chế giao dịch ACID của Delta Lake và kiến trúc phân tán của Trino là tài liệu tham khảo tốt để ứng dụng vào các bài toán thiết kế hạ tầng dữ liệu thực tế tại doanh nghiệp.
  • Người nghiên cứu hệ thống gợi ý (Recommender Systems): Các nội dung về quy trình tiền xử lý văn bản bằng Spark NLP (Regex Tokenizer, StopWordsRemover) và phương pháp chuyển đổi vector đặc trưng (TF-IDF, Word2Vec) cung cấp các chỉ dẫn cụ thể cho bài toán gợi ý dựa trên nội dung.

Câu hỏi thường gặp

1. Kiến trúc Medallion trong khóa luận được phân chia thành những tầng nào và nhiệm vụ cụ thể của từng tầng là gì?
Kiến trúc Medallion trong đề tài được chia thành 3 tầng:

  • Tầng Bronze: Đóng vai trò là hồ chứa gốc, lưu trữ dữ liệu thô nguyên bản được nạp trực tiếp từ tệp CSV hoặc TMDB API (thông qua Kafka), không qua xử lý, bảo đảm tính toàn vẹn để phục hồi dữ liệu khi cần.
  • Tầng Silver: Nơi dữ liệu thô được làm sạch, loại bỏ bản ghi lỗi, xử lý dữ liệu trùng lặp hoặc thiếu thông tin, chuẩn hóa kiểu dữ liệu và tích hợp đa nguồn thành các bảng có cấu trúc rõ ràng.
  • Tầng Gold: Tầng dữ liệu hoàn thiện cuối cùng, nơi dữ liệu được tổ chức và tối ưu hóa hiệu suất thành các bảng tổng hợp chỉ số nghiệp vụ, phục vụ trực tiếp cho công cụ truy vấn báo cáo (Trino, Superset) và huấn luyện mô hình gợi ý.

2. Vai trò kỹ thuật cụ thể của Delta Lake và MinIO trong hệ sinh thái của đề tài là gì?
MinIO đóng vai trò là tầng lưu trữ đối tượng (Object Storage) tương thích chuẩn S3 API, cung cấp không gian lưu trữ vật lý chi phí thấp, phân tán và linh hoạt cho toàn bộ dữ liệu của hệ thống. Delta Lake là lớp định dạng bảng trung gian hoạt động phía trên MinIO, bổ sung cơ chế Write-Ahead Log (Delta Log) để mang lại khả năng hỗ trợ giao dịch ACID, kiểm soát tính toàn vẹn lược đồ (Schema Enforcement/Evolution) và cho phép truy vấn dữ liệu lịch sử theo phiên bản (Time Travel), khắc phục nhược điểm thiếu tính nhất quán của Data Lake truyền thống.

3. Luồng dữ liệu thời gian thực được đề tài tiếp nhận và xử lý qua các công nghệ nào?
Luồng dữ liệu động từ bên ngoài được tự động thu thập từ The Movie Database API (TMDB API) theo lịch trình điều phối của Apache Airflow. Sau khi lấy về, dữ liệu được đẩy vào hệ thống Apache Kafka đóng vai trò là vùng đệm phân tán (message buffer) giúp hấp thụ tải. Tiếp đó, Apache Spark sử dụng công cụ Spark Structured Streaming để đọc dữ liệu từ các Topic của Kafka, xử lý chuyển đổi và ghi nhận vào các tầng lưu trữ Delta Lake trên MinIO.

4. Trong bài toán gợi ý phim theo nội dung (Content-Based Filtering), tác giả đã sử dụng những kỹ thuật NLP nào?
Để xây dựng vector đặc trưng cho phim, tác giả áp dụng quy trình gồm:

  • Sử dụng Regex Tokenizer để loại bỏ ký tự đặc biệt, dấu câu, thẻ HTML, chuyển đổi chữ thường và phân tách văn bản thành token.
  • Sử dụng StopWordsRemover để loại bỏ các từ dừng phổ biến không mang giá trị ngữ nghĩa phân loại.
  • Sử dụng phương pháp TF-IDF để tính toán trọng số đặc trưng của từ dựa trên tần suất xuất hiện trong mô tả phim và nghịch đảo tần suất trong toàn bộ kho tài liệu; đồng thời nghiên cứu cơ chế biểu diễn vector phân tán qua Word2Vec (mô hình CBOW và Skip-Gram) để nắm bắt mối quan hệ ngữ nghĩa giữa các từ.

5. Công cụ Trino và Apache Superset đóng vai trò gì trong tầng tiêu thụ dữ liệu (Data consumption layer)?
Trino đóng vai trò là động cơ truy vấn SQL phân tán hiệu năng cao; thông qua Hive Metastore để đọc siêu dữ liệu và cấu trúc bảng, Trino phân chia câu truy vấn thành các stage, task và split cho các Worker xử lý song song trực tiếp trên dữ liệu Delta Lake tại MinIO mà không cần nạp hay di chuyển dữ liệu. Apache Superset kết nối với Trino thông qua giao diện SQL để cho phép người dùng xây dựng các biểu đồ tương tác, khám phá dữ liệu và thiết lập các trang tổng quan phân tích dữ liệu phim ảnh.


Kết luận

Khóa luận tốt nghiệp "Ứng dụng Data Lakehouse phục vụ hệ thống gợi ý phim" của sinh viên Nguyễn Anh Tuấn và Nguyễn Duy Hải đã nghiên cứu và hiện thực hóa thành công mô hình Data Lakehouse mã nguồn mở toàn diện trên nền tảng Docker. Bằng cách kết hợp linh hoạt kiến trúc tổ chức dữ liệu Medallion cùng hệ sinh thái công nghệ gồm Spark, Delta Lake, MinIO, Kafka, Airflow, Trino và Superset, đề tài đã giải quyết hiệu quả bài toán dung hòa giữa lưu trữ dữ liệu quy mô lớn và đảm bảo tính nhất quán giao dịch phục vụ phân tích. Kết quả triển khai mô hình gợi ý phim dựa trên nội dung và ứng dụng giao diện web demo Streamlit đã minh chứng tính khả thi và giá trị ứng dụng thực tiễn của kiến trúc dữ liệu hiện đại này trong lĩnh vực dịch vụ giải trí số.