Giới thiệu dự án
Trong kỷ nguyên bùng nổ thông tin số, theo thống kê từ IDC, hơn 80% dữ liệu toàn cầu được tạo ra hàng ngày tồn tại dưới dạng phi cấu trúc (unstructured data) như tài liệu văn bản (.pdf, .docx), dữ liệu bảng biểu (.csv), hình ảnh và video. Đối với các hệ thống công cụ tìm kiếm (Search Engine), việc lưu trữ, quản lý và truy xuất hàng terabyte dữ liệu đa định dạng trong thời gian thực đặt ra một thách thức rất lớn về mặt hạ tầng dữ liệu.
Vấn đề cốt lõi (Problem Statement):
Kiến trúc Data Warehouse truyền thống (RDBMS/OLAP) không hỗ trợ tối ưu dữ liệu phi cấu trúc và có chi phí mở rộng rất cao, trong khi kiến trúc Data Lake thuần túy trên HDFS lại đối mặt với nguy cơ biến thành "đầm lầy dữ liệu" (Data Swamp) do thiếu cơ chế kiểm soát lược đồ (Schema Governance), hỗ trợ giao dịch ACID yếu và độ trễ truy vấn cao khi phục vụ phân tích nghiệp vụ Business Intelligence (BI).
Mục tiêu dự án:
- Nghiên cứu nền tảng lý thuyết và cơ chế hoạt động của kiến trúc Data Lakehouse, hệ sinh thái Apache Hadoop, Apache Superset và các thuật toán gợi ý dữ liệu (Recommendation System).
- Thiết kế và triển khai cụm phân tán 4 node trên hạ tầng đám mây AWS EC2 chạy hệ điều hành Ubuntu Server 18.04 LTS.
- Xây dựng Data Lake lưu trữ đa định dạng trên Hadoop Distributed File System (HDFS) và tự động hóa trích xuất lớp Metadata từ tệp hệ thống
fsimage.
- Chuẩn hóa và nạp Metadata vào cơ sở dữ liệu quan hệ MySQL, phục vụ truy vấn SQL tốc độ cao và trực quan hóa dữ liệu qua Apache Superset.
- Triển khai mô hình Machine Learning gợi ý tài liệu dựa trên độ tương đồng nội dung nhằm tăng tốc độ khám phá dữ liệu cho hệ thống Search Engine.
Giải pháp tiếp cận: Kết hợp ưu thế lưu trữ phân tán, chi phí thấp của Data Lake (Hadoop HDFS) với khả năng quản trị, lập chỉ mục và truy vấn nhanh của Data Warehouse thông qua cơ chế phân tầng Metadata.
Kết quả kỳ vọng: Xử lý và đánh chỉ mục hơn 100.000 tệp đa định dạng, giảm thời gian phản hồi truy vấn siêu dữ liệu xuống dưới 50ms, trực quan hóa 100% luồng tệp tin trên Dashboard và tự động hóa quy trình phân tích dữ liệu cho Search Engine.
Phạm vi và giới hạn: Dự án tập trung triển khai trên cụm máy chủ thử nghiệm AWS EC2 (4 instances), quản lý các định dạng tệp thông dụng (.pdf, .docx, .csv, .txt, image) và tối ưu hóa lớp trích xuất Metadata tệp tin nội bộ, chưa bao gồm các pipeline crawler web trực tiếp theo thời gian thực từ Internet.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Bảng so sánh kiến trúc lưu trữ dữ liệu hiện hành cho hệ thống Search Engine:
| Tiêu chí |
Data Warehouse truyền thống |
Data Lake (Hadoop thuần) |
Data Lakehouse (Đề xuất) |
| Kiểu dữ liệu hỗ trợ |
Chỉ cấu trúc (Structured) |
Đa dạng (Structured, Semi, Unstructured) |
Đa dạng toàn diện (All formats) |
| Chi phí lưu trữ |
Rất cao (Proprietary storage) |
Thấp (Commodity hardware / S3 / HDFS) |
Tối ưu hóa (Tách biệt Compute & Storage) |
| Hiệu năng BI / SQL |
Cực nhanh (Tối ưu OLAP) |
Chậm (Full scan qua MapReduce/Hive) |
Rất nhanh (Truy vấn qua Metadata Layer) |
| Hỗ trợ Machine Learning |
Kém (Phải export dữ liệu ra ngoài) |
Tốt (Đọc trực tiếp từ Data Lake) |
Toàn diện (Direct access qua open formats) |
| Schema Governance |
Schema-on-Write chặt chẽ |
Schema-on-Read, dễ bị Data Swamp |
Schema Enforcement & Metadata Management |
Phân tích yêu cầu hệ thống theo mô hình MoSCoW:
- Must have (Bắt buộc): Cụm HDFS phân tán có khả năng chịu lỗi; Trích xuất
fsimage thành Metadata có cấu trúc; Cơ sở dữ liệu MySQL lưu trữ siêu dữ liệu; Dashboard Apache Superset phục vụ giám sát.
- Should have (Nên có): Module Machine Learning Recommendation phân loại và gợi ý tệp liên quan; Cấu hình Elastic IP cố định cho từng Node trên AWS.
- Could have (Có thể có): Giao diện upload tài liệu tự động hóa qua REST API; Tích hợp Apache Spark để xử lý vector embeddings.
- Won't have (Tạm hoãn): Real-time web crawler quy mô petabyte; Hệ thống xác thực đa người dùng OAuth2 cấp doanh nghiệp.
Thiết kế hệ thống
Kiến trúc tổng thể của Data Lakehouse cho Search Engine được thiết kế theo mô hình phân tầng:
graph TD
subgraph Data_Ingestion ["1. Lớp Thu Thập & Nạp Dữ Liệu"]
A[Tài liệu PDF / Word / CSV] --> D[HDFS Ingestion Client / WebHDFS]
B[Tập dữ liệu Text / Log] --> D
C[RDBMS & NoSQL Dumps] --> D
end
subgraph Storage_Layer ["2. Lớp Data Lake (HDFS Storage)"]
D --> E[HDFS NameNode Master]
E --> F1[DataNode 1]
E --> F2[DataNode 2]
E --> F3[DataNode 3]
E -. Snapshot Snapshot .-> G[HDFS File System Image: fsimage]
end
subgraph Metadata_Layer ["3. Lớp Metadata & Data Warehouse"]
G --> H[HDFS Offline Image Viewer / Python ETL]
H --> I[(MySQL Metadata Store)]
end
subgraph Serving_Layer ["4. Lớp Phân Tích & Ứng Dụng Search"]
I --> J[Apache Superset BI Dashboard]
I --> K[ML Recommendation Engine]
K --> L[Search Engine Core / User Query Interface]
end
Technology Stack & Phiên bản:
- Hệ điều hành: Ubuntu Server 18.04 LTS (HVM kernel 4.15).
- Lưu trữ phân tán: Apache Hadoop 3.2.x (HDFS, YARN ResourceManager/NodeManager).
- Cơ sở dữ liệu Metadata: MySQL 8.0.x (InnoDB Engine, utf8mb4 charset).
- BI & Trực quan hóa: Apache Superset 1.5+ chạy trên Python 3.8 Virtualenv.
- Công cụ truyền tệp & truy cập: OpenSSH, PuTTY 0.76, WinSCP 5.19.
- Ngôn ngữ xử lý & ML: Python 3.8, Scikit-learn (TF-IDF, Cosine Similarity), Pandas, SQLAlchemy.
Thiết kế Lược đồ Cơ sở Dữ liệu Metadata (document_metadata):
CREATE TABLE `document_metadata` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
`file_path` VARCHAR(750) NOT NULL,
`file_name` VARCHAR(255) NOT NULL,
`file_format` VARCHAR(50) NOT NULL,
`file_size_bytes` BIGINT NOT NULL,
`replication_factor` INT DEFAULT 3,
`modification_time` DATETIME NOT NULL,
`access_time` DATETIME NOT NULL,
`permission` VARCHAR(20) DEFAULT 'rw-r--r--',
`owner` VARCHAR(50) DEFAULT 'hadoop',
`group_name` VARCHAR(50) DEFAULT 'supergroup',
INDEX `idx_format_time` (`file_format`, `modification_time`),
INDEX `idx_filename` (`file_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Yêu cầu An toàn & Hiệu năng:
- Bảo mật: Nhóm bảo mật AWS Security Group chỉ mở cổng SSH (22) cho IP chỉ định; cổng Web UI HDFS (9870), YARN (8088), Superset (8088/8080) và MySQL (3306) được phân quyền nội bộ giữa các nút trong mạng VPC.
- Hiệu năng: Hệ số nhân bản HDFS (Replication Factor = 3) đảm bảo tính sẵn sàng cao (High Availability); Hỗ trợ truy vấn SQL qua các chỉ mục (Indexes) trên MySQL với độ trễ < 50ms cho tập dữ liệu 100.000 bản ghi.
Methodology
Dự án áp dụng phương pháp luận phát triển theo mô hình Agile/Iterative Development, chia làm các giai đoạn kiểm thử liên tục:
| Cột mốc (Milestone) |
Thời gian |
Nội dung công việc |
Deliverables |
| Giai đoạn 1 |
23/02 - 15/04/2022 |
Nghiên cứu lý thuyết Data Lakehouse, HDFS, BI & AWS EC2 |
Báo cáo kiến trúc hệ thống tổng quan |
| Giai đoạn 2 |
16/04 - 10/05/2022 |
Khởi tạo 4 Instance EC2, cài đặt cụm Hadoop phân tán |
Cụm Hadoop 1 Master - 3 Slaves hoạt động ổn định |
| Giai đoạn 3 |
11/05 - 25/05/2022 |
Cài đặt MySQL, thiết lập Virtualenv cho Apache Superset |
Superset kết nối thành công với MySQL Metadata |
| Giai đoạn 4 |
26/05 - 15/06/2022 |
Viết pipeline nạp dữ liệu, trích xuất fsimage sang SQL |
Pipeline ETL tự động hóa xử lý Metadata |
| Giai đoạn 5 |
16/06 - 21/06/2022 |
Xây dựng thuật toán Recommendation, hoàn thiện BI & Báo cáo |
Toàn bộ ứng dụng, Dashboard và khóa luận hoàn chỉnh |
Đánh giá rủi ro và giải pháp khắc phục:
- Rủi ro nghẽn tài nguyên trên máy ảo EC2: Cấu hình swap memory và tinh chỉnh heap size trong
hadoop-env.sh (export HADOOP_HEAPSIZE_MAX=2048).
- Rủi ro mất kết nối do thay đổi Public IP: Gán AWS Elastic IP cố định cho cả 4 Instance EC2.
Implementation và kết quả
Development process
1. Cấu hình Cụm Hadoop Phân tán (Distributed Cluster Setup):
Trên node Master và các Worker nodes, cấu hình mạng và tệp core-site.xml, hdfs-site.xml:
<!-- hdfs-site.xml trên Node Master -->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/ubuntu/hadoop/data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/ubuntu/hadoop/data/hdfs/datanode</value>
</property>
</configuration>
2. Trích xuất Metadata từ HDFS Image (fsimage) sang CSDL Quan hệ:
Khi dữ liệu phi cấu trúc được nạp vào HDFS qua lệnh hdfs dfs -put, NameNode quản lý siêu dữ liệu trong bộ nhớ RAM và lưu định kỳ vào tệp fsimage. Pipeline sử dụng công cụ Offline Image Viewer (hdfs oiv) để chuyển đổi fsimage sang định dạng XML/CSV, sau đó chuẩn hóa vào MySQL:
# Trích xuất fsimage nhị phân sang định dạng phân tích Delimited/CSV
hdfs oiv -p Delimited -i /home/ubuntu/hadoop/data/hdfs/namenode/current/fsimage_0000000000000001234 \
-o /home/ubuntu/metadata/hdfs_metadata.csv -delimiter ","
# Script Python chuẩn hóa và nạp Metadata vào MySQL
import pandas as pd
from sqlalchemy import create_engine
def process_and_load_metadata(csv_path, db_connection_str):
columns = ['Path', 'Replication', 'ModificationTime', 'AccessTime',
'PreferredBlockSize', 'BlocksCount', 'FileSize', 'NSQUOTA',
'DSQUOTA', 'Permission', 'UserName', 'GroupName']
df = pd.read_csv(csv_path, names=columns, header=0)
# Lọc các file dữ liệu (loại bỏ thư mục)
df_files = df[df['FileSize'] > 0].copy()
df_files['file_name'] = df_files['Path'].apply(lambda x: x.split('/')[-1])
df_files['file_format'] = df_files['file_name'].apply(lambda x: x.split('.')[-1].lower() if '.' in x else 'unknown')
df_files['modification_time'] = pd.to_datetime(df_files['ModificationTime'])
df_files['access_time'] = pd.to_datetime(df_files['AccessTime'])
clean_df = df_files[['Path', 'file_name', 'file_format', 'FileSize', 'modification_time', 'access_time']]
clean_df.columns = ['file_path', 'file_name', 'file_format', 'file_size_bytes', 'modification_time', 'access_time']
engine = create_engine(db_connection_str)
clean_df.to_sql('document_metadata', con=engine, if_exists='append', index=False)
print(f"Successfully indexed {len(clean_df)} files to Data Lakehouse Metadata Store.")
# Chạy nạp dữ liệu
process_and_load_metadata('/home/ubuntu/metadata/hdfs_metadata.csv', 'mysql+pymysql://hadoop_user:SecurePass123@localhost/lakehouse_db')
3. Triển khai Thuật toán Machine Learning Recommendation:
Áp dụng Content-Based Filtering với kỹ thuật Vector hóa TF-IDF kết hợp Cosine Similarity trên tiêu đề và metadata tệp để gợi ý các tài liệu liên quan cho Search Engine:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
def recommend_similar_documents(doc_id, top_n=5):
# Trích xuất metadata từ MySQL
engine = create_engine('mysql+pymysql://hadoop_user:SecurePass123@localhost/lakehouse_db')
df = pd.read_sql("SELECT id, file_name, file_format, file_path FROM document_metadata", engine)
# Vector hóa tên file và định dạng
tfidf = TfidfVectorizer(stop_words='english')
tfidf_matrix = tfidf.fit_transform(df['file_name'])
# Tính toán ma trận tương đồng Cosine Similarity
cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix)
# Lấy chỉ số tương đồng cao nhất
target_idx = df[df['id'] == doc_id].index[0]
sim_scores = list(enumerate(cosine_sim[target_idx]))
sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)[1:top_n+1]
recommended_indices = [i[0] for i in sim_scores]
return df.iloc[recommended_indices][['id', 'file_name', 'file_format', 'file_path']]
Testing và validation
- Test kịch bản nạp và đồng bộ: Nạp dữ liệu với 100.000 file tổng hợp (PDF, DOCX, CSV, TXT, PNG). Quá trình parse
fsimage mất trung bình 3.2 giây cho 100k records.
- Hiệu năng truy vấn SQL trên Apache Superset:
- Truy vấn Group By theo định dạng file: Thời gian phản hồi 28ms (giảm 94% so với việc duyệt trực tiếp toàn bộ HDFS thông qua MapReduce task mất ~25 giây).
- Truy vấn lọc theo khoảng thời gian Modification Time: Thời gian phản hồi 42ms nhờ chỉ mục B-Tree
idx_format_time.
- Kiểm thử khả năng chịu lỗi (Fault Tolerance): Tắt đột ngột 1 DataNode trong cụm; HDFS tự động phát hiện Heartbeat thất bại và điều hướng các khối dữ liệu từ 2 DataNode còn lại mà không làm gián đoạn truy vấn.
Kết quả đạt được
Hệ thống đã hoàn thành 100% các mục tiêu chức năng đề ra:
- Xây dựng hoàn chỉnh hạ tầng Data Lake trên cụm phân tán HDFS 4 nodes.
- Tự động hóa quá trình sinh lớp Metadata từ tệp hệ thống
fsimage của NameNode, chuyển đổi sang bảng dữ liệu SQL chuẩn hóa.
- Tích hợp trực quan hóa Business Intelligence trên Apache Superset với 5 biểu đồ chuyên sâu:
- Biểu đồ phân bổ tỷ trọng định dạng tệp tin (Pie Chart / Donut Chart).
- Biểu đồ biến động số lượng tệp nạp theo thời gian (Time-series Line Chart).
- Biểu đồ dung lượng tệp tin theo nhóm người dùng (Bar Chart).
- Bảng tổng hợp siêu dữ liệu truy vấn trực tiếp qua SQL Lab.
- Xây dựng module Recommendation System hoạt động chính xác, cho phép trả về danh sách 5 tài liệu liên quan nhất với độ chính xác theo xếp hạng (Top-5 Accuracy) đạt 89.4%.
Đổi mới và đóng góp
- Kiến trúc phân tầng Metadata đột phá: Thay vì quét toàn bộ dữ liệu thô (full scan) bằng các job MapReduce nặng nề mỗi khi Search Engine cần tìm kiếm tệp, hệ thống giải mã trực tiếp trạng thái NameNode (
fsimage) thành lớp Metadata phục vụ truy vấn chỉ mục trong vài phần nghìn giây.
- Loại bỏ sự phụ thuộc vào các giải pháp đắt đỏ: Triển khai thành công kiến trúc Data Lakehouse hoàn toàn trên nền tảng mã nguồn mở (Apache Hadoop, MySQL, Apache Superset, Scikit-learn), giúp doanh nghiệp tiết kiệm đến 75% chi phí bản quyền so với các giải pháp thương mại như Databricks Lakehouse hoặc Snowflake.
- Cải thiện hiệu năng xử lý:
$$\text{Tốc độ truy vấn BI} \uparrow 90% \quad \text{so với kiến trúc Hadoop + Hive truyền thống}$$
$$\text{Chi phí lưu trữ} \downarrow 60% \quad \text{so với Data Warehouse lưu trữ full văn bản}$$
- Đóng góp học thuật và công nghệ: Cung cấp tài liệu mẫu chi tiết về phương pháp trích xuất hệ thống siêu dữ liệu từ HDFS, phương pháp tích hợp Apache Superset với cơ sở hạ tầng phân tán trong môi trường Cloud AWS cho sinh viên ngành Kỹ thuật Dữ liệu.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Hệ thống tìm kiếm tài liệu nội bộ doanh nghiệp (Enterprise Search Engine): Quản lý tập trung hợp đồng, văn bản, báo cáo tài chính nằm rải rác ở nhiều phòng ban dưới dạng file PDF/Word.
- Nền tảng lưu trữ và phân tích Logs hệ thống: Tiếp nhận hàng triệu log files mỗi ngày, trích xuất metadata để giám sát lỗi và an toàn thông tin qua Dashboard Superset.
Yêu cầu triển khai hệ thống (System Requirements)
+-----------------------------------------------------------------------+
| Hardware & Cloud Requirements (AWS EC2 Cluster - 4 Nodes) |
+-----------------------------------------------------------------------+
| 1x Master Node (NameNode, ResourceManager, Superset, MySQL): |
| - Instance: t2.xlarge (4 vCPUs, 16 GB RAM, 100 GB SSD) |
| 3x Worker Nodes (DataNodes, NodeManagers): |
| - Instance: t2.medium / t2.large (2 vCPUs, 8 GB RAM, 100 GB SSD) |
| Mạng: VPC nội bộ, gán Elastic IP cố định cho từng Node |
| Hệ điều hành: Ubuntu Server 18.04 LTS x86_64 |
+-----------------------------------------------------------------------+
Lộ trình triển khai (Roadmap)
- Giai đoạn 1 (Tháng 1): Cài đặt hạ tầng AWS, cấu hình SSH passwordless, triển khai Hadoop Cluster.
- Giai đoạn 2 (Tháng 2): Thiết lập pipeline parse
fsimage tự động với Cron job / Apache Airflow.
- Giai đoạn 3 (Tháng 3): Triển khai Apache Superset, cấu hình kết nối SQLAlchemy và thiết lập Dashboards.
- Giai đoạn 4 (Tháng 4): Tích hợp Recommendation Engine và hoàn thiện giao diện Search Engine Portal.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Hệ thống trích xuất Metadata qua
fsimage hiện tại hoạt động theo dạng mẻ (Batch Processing), chu kỳ đồng bộ phụ thuộc vào thời điểm NameNode tạo checkpoint, chưa đạt mức real-time streaming theo từng mili-giây.
- Thuật toán Recommendation hiện tại mới dựa trên mức độ tương đồng của siêu dữ liệu (File Name, Metadata Tags), chưa thực hiện trích xuất sâu toàn văn (Full-text Optical Character Recognition - OCR) trên các tệp PDF scan hoặc hình ảnh.
Hướng phát triển tương lai
- Tích hợp Apache Spark và Delta Lake để hỗ trợ cơ chế ACID Transaction trực tiếp trên HDFS và xử lý streaming metadata qua Apache Kafka.
- Áp dụng các mô hình ngôn ngữ lớn (LLM / Sentence-BERT) để tạo Vector Embeddings cho toàn bộ nội dung tài liệu, kết hợp cơ sở dữ liệu Vector (Milvus/Faiss) để xây dựng hệ thống tìm kiếm ngữ nghĩa (Semantic Search Engine).
- Đóng gói toàn bộ cụm dịch vụ lên môi trường Kubernetes (K8s) bằng Docker Container để tự động hóa co giãn tài nguyên (Auto-scaling).
Đối tượng hưởng lợi
- Sinh viên & Học viên ngành Dữ liệu: Tiếp cận tài liệu thực chiến, hiểu rõ nguyên lý hoạt động của NameNode, DataNode, cơ chế tạo
fsimage và quy trình tích hợp công cụ BI hiện đại.
- Kỹ sư Dữ liệu (Data Engineers) & Developers: Nắm vững mẫu thiết kế (Design Pattern) tích hợp giữa HDFS và CSDL quan hệ, cách cấu hình phân tán trên AWS EC2, và code mẫu trích xuất Metadata.
- Doanh nghiệp: Sở hữu giải pháp kiến trúc Data Lakehouse mã nguồn mở chi phí thấp, giải quyết triệt để tình trạng phân mảnh tài liệu và tối ưu hóa hệ thống Search Engine nội bộ.
- Nhà nghiên cứu: Nền tảng thực nghiệm vững chắc để thử nghiệm các thuật toán xếp hạng, truy vấn dữ liệu lớn và tối ưu hóa hệ thống lưu trữ phân tán.
Câu hỏi thường gặp
1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai đồ án là gì?
Cần tối thiểu 4 máy ảo (hoặc 4 container/máy vật lý) chạy Ubuntu 18.04/20.04 LTS, mỗi máy có ít nhất 2 vCPU, 4GB RAM (Master node khuyến nghị 8GB+ RAM để chạy đồng thời Hadoop NameNode, MySQL và Superset) và 50GB ổ cứng. Cần cài đặt OpenJDK 8, Python 3.8+, MySQL 8.0 và Hadoop 3.x.
2. Hệ thống xử lý bài toán mở rộng (Scalability) khi dữ liệu tăng lên quy mô hàng chục terabytes như thế nào?
Hệ thống mở rộng quy mô tuyến tính (Horizontal Scalability). Khi dung lượng tăng, chỉ cần khởi tạo thêm các EC2 Instance mới và khai báo vào tệp workers của Hadoop, dung lượng HDFS và năng lực tính toán phân tán sẽ tự động tăng lên mà không cần tái cấu trúc hệ thống.
3. Làm thế nào để tích hợp hệ thống này với Search Engine hiện có của doanh nghiệp?
Search Engine có thể kết nối trực tiếp vào CSDL MySQL Metadata Store qua chuẩn giao tiếp JDBC/ODBC hoặc REST API để lấy vị trí tệp tin (File Path) trên HDFS, sau đó đọc trực tiếp tệp tin từ HDFS thông qua giao thức WebHDFS REST API.
4. Chi phí vận hành hạ tầng trên AWS và thời gian hoàn vốn (ROI) ước tính?
Sử dụng 4 node EC2 on-demand (1x t2.xlarge, 3x t2.medium) tiêu tốn khoảng $180 - $220 USD/tháng. So với việc thuê các dịch vụ SaaS như Databricks hay Snowflake (thường tốn $800 - $1,500 USD/tháng cho cùng khối lượng công việc), doanh nghiệp đạt điểm hòa vốn và tiết kiệm chi phí ngay từ tháng đầu tiên triển khai.
5. Tại sao không dùng Apache Hive mà lại nạp Metadata vào MySQL để kết nối với Superset?
Apache Hive thực thi truy vấn thông qua ánh xạ MapReduce/Tez nên có độ trễ khởi tạo job (thường mất từ 10 - 30 giây ngay cả với truy vấn đơn giản). Nạp Metadata đã chuẩn hóa vào MySQL cho phép Superset phản hồi Dashboard theo thời gian thực (< 50ms) cho người dùng cuối.
Kết luận
Đồ án tốt nghiệp "Xây dựng Data Lakehouse cho hệ thống Search Engine" của sinh viên Phạm Văn Hùng và Trịnh Công Viễn (GVHD: TS. Huỳnh Xuân Phụng - Trường ĐH Sư phạm Kỹ thuật TP.HCM) đã giải quyết trọn vẹn bài toán tích hợp giữa lưu trữ dữ liệu đa định dạng quy mô lớn và khả năng truy vấn siêu dữ liệu tốc độ cao.
Bằng việc kết hợp sáng tạo giữa Apache Hadoop (HDFS), lớp Metadata tự động hóa từ fsimage, MySQL và Apache Superset, đề tài chứng minh tính khả thi, hiệu quả vượt trội về mặt chi phí và hiệu năng của mô hình Data Lakehouse mã nguồn mở. Đây là tài liệu tham khảo giá trị và nền tảng vững chắc để tiếp tục mở rộng sang các hệ thống tìm kiếm thông minh ứng dụng Generative AI và Semantic Search trong tương lai.