MỞ ĐẦU. Giới thiệu ngắn gọn về đề tài, mục đích nghiên cứu. Ý nghĩa lý luận và thực tiễn của việc nghiên cứu đề tài. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN).
Tìm hiểu các khái niệm và kiến trúc trong quá trình nghiên cứu và xây dựng hệ thống. CHƯƠNG 3: GIẢI PHÁP ĐỀ XUẤT. Đưa ra giải pháp và trình bày phần cài đặt hệ thống. CHƯƠNG 4: THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ.
Trình bày phần thử nghiệm. Phân tích kết quả thực nghiệm thu được CHƯƠNG 5: KẾT LUẬN. Tổng kết nội dung đã trình bày. Định nghĩa Nền tảng dữ liệu (Data Platform) là một giải pháp toàn diện cho phép thu thập, phân tích và trực quan hoá dữ liệu bởi các hệ thống, công cụ, quy trình công nghệ tiên tiến.
Đây thường là nơi dữ liệu được tập hợp từ nhiều nguồn và nó sẽ cung cấp cho người dùng là những nhà khoa học dữ liệu, những nhà phân tích, nhóm kinh doanh,…những người này sau đó có thể trích xuất, xử lý chuyên sâu từ dữ liệu để đưa ra quyết định hoặc tạo ra các sản phẩm dựa trên dữ liệu. Nói một cách đơn giản, Data Platform là hệ thống trung tâm giúp tổ chức quản lý dữ liệu một cách hiệu quả, từ việc thu thập, lưu trữ, xử lý đến phân tích và chia sẻ. Tổng quan về Data Platform 2. Thành phần chính của Data Platform Lưu trữ dữ liệu: Data Platform bao gồm các hệ thống lưu trữ dữ liệu như kho dữ liệu (Amazon Redshift, Google BigQuery hoặc Snowflake), hồ dữ liệu (Amazon S3, Azure Data Lake Store hoặc Google Cloud Storage) và cơ sở dữ liệu (MySQL, PostgreSQL hoặc MongoDB).
Xử lý dữ liệu: Đây là hành động chuyển đổi và làm sạch dữ liệu thô thành dạng có thể được sử dụng để phân tích. Nó có thể liên quan đến việc chuẩn hóa, tổng hợp dữ liệu và các loại chuyển đổi dữ liệu khác (Extract, Transform, Load,…). Phân tích dữ liệu: Thuộc các công cụ phân tích dữ liệu như BI (Business Intelligence), Machine Learning và Data Visualization (Tableau, Looker, PowerBI,…). Quản trị dữ liệu: Nó bao gồm các công cụ quản trị dữ liệu như Data Governance, Data Security và Data Quality.
Lợi ích của Data Platform Cải thiện hiệu quả hoạt động: Giúp tự động các quy trình xử lý dữ liệu, giải phóng thời gian thao tác của nhân viên để tập trung vào các công việc giá trị cao hơn. Tăng cường khả năng ra quyết định: Cung cấp cho các nhà quản lý và nhân viên thông tin chi tiết về dữ liệu, giúp họ đưa ra quyết định sáng suốt hơn. Thúc đẩy đổi mới: Nó cung cấp nền tảng cho các ứng dụng dữ liệu mới, giúp doanh nghiệp đổi mới và cạnh tranh tốt hơn. Một vài Data Platform tiêu biểu 2.
Data Warehosue Đây là một kiến trúc khá phổ biến, được các doanh nghiệp áp dụng rất nhiều để lưu trữ và phân tích lượng dữ liệu lớn. Data Warehouse hoạt động như một kho chứa trung tâm, nơi lưu trữ và tổng hợp dữ liệu từ các hệ thống giao dịch và cơ sở dữ liệu liên quan. Nó cung cấp cho các nhà phân tích và quản lý dữ liệu một cái nhìn tổng quan về toàn bộ hoạt động kinh doanh của họ, từ đó có thể đưa ra quyết định sáng suốt hơn. Tổng quan về Data Warehouse Các điểm đáng chú ý của Data Warehouse: • Tính tích hợp: Tích hợp dữ liệu từ nhiều nguồn khác nhau, bao gồm các hệ thống giao dịch, hệ thống kinh doanh và các nguồn dữ liệu bên ngoài.
• Tính chủ đề: Dữ liệu trong Data Warehouse được thiết kế theo chủ đề, chẳng hạn như bán hàng, khách hàng, sản phẩm,… • Tính thời gian: Dữ liệu của Data Warehouse thường là dữ liệu lịch sử, được lưu trữ theo thời gian. • Tính không thay đổi: Dữ liệu khi tải vào Data Warehouse sẽ không được thay đổi. Data Lake Data Lake (hồ dữ liệu) là một nơi lưu trữ tập trung được thiết kế để lưu trữ, xử lý và bảo mật lượng rất lớn dữ liệu đa dạng, bao gồm dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc. Nó sẽ lưu trữ dữ liệu ở dạng nguyên bản, không cần phải định dạng hoặc xử lý trước khi lưu trữ.
Tổng quan về Data Lake Mục tiêu của Data Lake là cung cấp một nguồn tổng hợp và linh hoạt bao gồm dữ liệu thô cho các quy trình phân tích dữ liệu, khám phá dữ liệu và xây dựng ứng dụng AI/ML. Nó tạo ra một môi trường cho các nhà phân tích dữ liệu và nhà khoa học dữ liệu có thể tiếp cận và khai thác dữ liệu một cách linh động, tùy chỉnh để phục vụ nhu cầu của họ. Khác với Data Warehouse có cấu trúc phân cấp khi dữ liệu được lưu trữ trong thư mục và tệp, Data Lake được thiết kế theo kiến trúc phẳng. Mọi thành phần dữ liệu trong Data Lake đều được gán nhãn duy nhất và kèm thông tin siêu dữ liệu để mô tả.
Một vài tính chất quan trọng của Data Lake: • Tính linh hoạt: Data Lake có thể lưu trữ bất kỳ loại dữ liệu nào, bất kỳ định dạng hay cấu trúc nào của nó. • Tính mở rộng: Nó có thể dễ dàng mở rộng để lưu trữ lượng lớn dữ liệu. • Tính bảo mật: Data Lake cung cấp các tính năng bảo mật mạnh mẽ để bảo vệ dữ liệu nhạy cảm. • Tính chi phí thấp: Hồ dữ liệu sử dụng các công nghệ lưu trữ có chi phí thấp, chẳng hạn như lưu trữ đám mây.
Data Lakehouse Những năm gần đây xuất hiện và nổi trội với một loại kiến trúc mới là Data Lakehouse, nó là sự kết hợp giữa các ưu điểm của Data Lake và Data Warehouse. Kiến trúc này mang lại một nền tảng linh hoạt, mở rộng và bảo mật để lưu trữ, xử lý và phân tích mọi loại dữ liệu, đồng thời cung cấp các tính năng quản lý dữ liệu mạnh mẽ để đảm bảo tính chính xác, nhất quán và khả năng truy cập của dữ liệu. Tổng quan về Data Lakehouse Bảng 1. Bảng so sánh Data Warehouse, Data Lake, Data Lakehouse Data Data Lake Data Lakehouse Warehouse Loại dữ liệu lưu Dữ liệu có cấu Dữ liệu bán cấu trúc và Cả dữ liệu cấu trúc trữ trúc phi cấu trúc và phi cấu trúc Học máy và phân tích dữ Tác vụ hổ trợ Sinh báo cáo Phục vụ cả 2 liệu Chi phí lưu trữ Cao Thấp Thấp Hỗ trợ mức đọc ghi ACID Hỗ trợ Không hỗ trợ dữ liệu Kiến trúc Lakehouse được kỳ vọng sẽ giải quyết các vấn đề lớn mà mô hình hai lớp Data Lake và Data Warehouse, cho phép người sử dụng có một địa điểm tập trung duy nhất cho công việc phân tích dữ liệu, học máy cũng như xuất báo cáo.
18 Data Lakehouse là sự lựa chọn ngày càng phổ biến của nhiều doanh nghiệp vì nó hỗ trợ khả năng tương tác giữa các định dạng hồ dữ liệu. Nó hỗ trợ các ACID và có thể truy vấn nhanh, thường thông qua các lệnh SQL, trực tiếp lưu trữ trên bộ lưu trữ đối tượng trên cloud hoặc on-prem trên dữ liệu có cấu trúc và không cấu trúc. Kiến trúc Data Lakehouse Ingestion layer: Trích xuất dữ liệu từ các nguồn khác nhau như cơ sở dữ liệu quan hệ, API, luồng dữ liệu thời gian thực, ứng dụng CRM, cơ sở dữ liệu NoSQL. Storage layer: Sử dụng các định dạng tệp mã nguồn mở để lưu trữ dữ liệu phi cấu trúc, có cấu trúc và bán cấu trúc.
Chúng được thiết kế để lưu trữ tất cả các loại dữ liệu dưới dạng đối tượng. Lakehouse giữ lược đồ của các tập dữ liệu có cấu trúc và bán cấu trúc trong lớp siêu dữ liệu, điều này giúp áp dụng chúng dễ dàng hơn trong khi đọc. Metadata layer: Quản lý và tổ chức siêu dữ liệu liên quan đến dữ liệu đã được thu thập và lưu trữ. Siêu dữ liệu bao gồm những thông tin về trường dữ liệu, người dùng và thay đổi gần đây, các thay đổi của dữ liệu trong quá khứ và gần đây.
Đây chính là lợi thế của Data Lakehouse so với Data Lake và Data Warehouse. API layer: Cho phép các công cụ phân tích và các ứng dụng của bên thứ ba truy vấn dữ liệu đã được lưu trữ trong Data Lakehouse. Data consumption layer: Cho phép những người dùng cuối như các nhà khoa học dữ liệu, nhà phân tích dữ liệu và những người dùng khác có thể truy cập dữ liệu cũng như siêu dữ liệu được lưu trữ trong Data Lakehouse thông qua các công cụ như Power BI, Tableau, … để thực hiện các tác vụ phân tích, xây dựng bảng báo cáo, trực quan hóa dữ liệu, thực thi truy vấn SQL, … 19 2. Các công nghệ sử dụng 2.
Docker Docker là một nền tảng mã nguồn mở cho phép phát triển, vận hành và chạy ứng dụng một cách độc lập với hạ tầng. Docker giúp bạn phân phối phần mềm nhanh chóng bằng cách tách biệt ứng dụng và cho phép quản trị hạ tầng như quản lý ứng dụng. Logo Docker Docker cung cấp khả năng đóng gói và chạy ứng dụng trong môi trường riêng biệt gọi là container. Tính cô lập và bảo mật giúp chạy nhiều container cùng một lúc trên một máy chủ.
Containers nhẹ và chứa mọi thứ cần thiết cho ứng dụng chạy, tránh phụ thuộc hạ tầng. Bạn có thể chia sẻ container và đảm bảo mọi người nhận cùng phiên bản. Phân phối ứng dụng nhanh chóng và đồng nhất: Sử dụng container cho phép đóng gói và chia sẻ ứng dụng dễ dàng, đảm bảo chúng hoạt động giống nhau trên mọi môi trường. Tối ưu hóa quy trình phát triển: Docker cung cấp môi trường tiêu chuẩn cho Developer làm việc trong container cục bộ, tăng cường CI/CD và đảm bảo môi trường phát triển giống nhau.
Triển khai và mở rộng linh hoạt: Hỗ trợ triển khai ứng dụng trên nhiều môi trường như máy tính, máy chủ, đám mây, Kubernetes,…Cho tính di động và khả năng mở rộng cao. Tận dụng tài nguyên hiệu quả: Docker giúp chạy nhiều container trên cùng phần cứng nhờ tính nhẹ và nhanh, tối ưu hóa việc sử dụng tài nguyên hệ thống. 20 Docker hoạt động dựa trên kiến trúc client – server. Docker client giao tiếp với Docker daemon, nó chịu trách nhiệm thực thi các công việc như build, run và phân phối các Docker container.
Docker client và Docker daemon có thể chạy trên cùng một hệ thống hoặc hoặc ta có thể kết nối Docker client đến Docker daemon từ xa, chúng giao tiếp với nhau thông qua API REST, qua socket UNIX hoặc giao diện mạng. Một Docker client khác là Docker compose cho phép ta làm việc với ứng dụng bao gồm cả một tập hợp các container. Kiến trúc của Docker Docker daemon: Lắng nghe các yêu cầu từ Docker API và quản lý các đối tượng như: containers, images, networks and volumes.