Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh bùng nổ thông tin của thế kỷ 21, khối lượng dữ liệu mà các tổ chức và doanh nghiệp phải quản lý tăng trưởng với tốc độ nhanh chóng, đặt ra thách thức lớn đối với các kiến trúc cơ sở dữ liệu tập trung truyền thống. Để đáp ứng yêu cầu vận hành liên tục, giảm thiểu thời gian trễ trong truy xuất và nâng cao tính sẵn sàng, việc ứng dụng các hệ quản trị cơ sở dữ liệu phân tán (Distributed Database Management System - DDBMS) đã trở thành một phần thiết yếu trong chiến lược công nghệ và kinh doanh. Trong hệ sinh thái các hệ quản trị cơ sở dữ liệu quan hệ, Microsoft SQL Server là nền tảng phổ biến, cung cấp nhiều cơ chế mạnh mẽ để phân tán, đồng bộ và quản lý dữ liệu đa trạm.
Đồ án môn học "Cơ sở dữ liệu phân tán" với đề tài "Dữ liệu phân tán trên SQL Server - Di trú dữ liệu sử dụng Talend" do sinh viên Nguyễn Hoàng Chương và Khưu Minh Khoa (Lớp DTCT121C5, Khoa Công nghệ Thông tin, Trường Đại học Sài Gòn) thực hiện dưới sự hướng dẫn của giảng viên Nguyễn Quốc Huy. Nghiên cứu tập trung giải quyết bài toán thiết kế phân mảnh dữ liệu, cài đặt phân tán trên hệ quản trị cơ sở dữ liệu Microsoft SQL Server và ứng dụng công cụ mã nguồn mở Talend để giải quyết vấn đề di trú dữ liệu sang hệ quản trị khác.
Các mục tiêu và nhiệm vụ nghiên cứu cụ thể được xác định trong văn bản bao gồm:
- Hệ thống hóa các khái niệm nền tảng về cơ sở dữ liệu phân tán, bao gồm kiến trúc phân tán, các mức độ trong suốt và các điều kiện phân mảnh đúng đắn (tính đầy đủ, tái tạo và tách biệt).
- Xây dựng lược đồ phân mảnh trên cơ sở dữ liệu thử nghiệm, bao gồm kỹ thuật phân mảnh ngang chính (Primary Horizontal Fragmentation), phân mảnh ngang dẫn xuất (Derived Horizontal Fragmentation) và phân mảnh hỗn hợp (Mixed Fragmentation).
- Cài đặt và cấu hình hệ thống phân tán thực tế trên Microsoft SQL Server Management Studio (SSMS) thông qua công nghệ Merge Replication kết hợp cấu hình Linked Server.
- Xây dựng kịch bản thực nghiệm và viết mã truy vấn để kiểm chứng các cấp độ trong suốt dữ liệu (trong suốt phân mảnh, trong suốt vị trí, trong suốt ánh xạ cục bộ).
- Nghiên cứu nền tảng tích hợp dữ liệu Talend, từ đó thiết kế và thực thi quy trình di trú dữ liệu (ETL Job) tự động từ hệ quản trị Microsoft SQL Server sang MySQL.
- Đối tượng nghiên cứu: Kỹ thuật phân mảnh dữ liệu quan hệ, cơ chế sao chép Merge Replication và Linked Server trên Microsoft SQL Server; công cụ tích hợp và di trú dữ liệu mã nguồn mở Talend Studio; hệ quản trị cơ sở dữ liệu đích MySQL.
- Phạm vi nghiên cứu:
- Không gian: Thử nghiệm trên mô hình mạng cục bộ giả lập giữa các máy chủ (máy chủ gốc Publisher/Distributor và các máy chủ phân mảnh Subscriber), kết nối luồng dữ liệu sang máy chủ MySQL cục bộ.
- Thời gian: Đồ án được hoàn thành vào tháng 4 năm 2024, thuộc Học kỳ 2, năm học 2023 – 2024.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khung lý thuyết và mô hình nghiên cứu
Đồ án vận dụng hệ thống lý thuyết chuẩn tắc của cơ sở dữ liệu phân tán và lý thuyết đại số quan hệ:
- Kiến trúc ba tầng lược đồ của CSDL phân tán:
- Lược đồ toàn cục (Global Schema): Định nghĩa toàn bộ dữ liệu của hệ thống giống như một cơ sở dữ liệu tập trung, bao gồm tập hợp các quan hệ toàn cục $R$.
- Lược đồ phân mảnh (Fragmentation Schema): Xác định quy tắc ánh xạ $1-n$ từ mỗi quan hệ toàn cục $R$ thành các mảnh con không trùng lắp $R_i$.
- Lược đồ định vị (Allocation Schema): Xác định vị trí lưu trữ vật lý của từng mảnh trên các trạm (site). Trong đó, hình ảnh vật lý (Physical Image - $R_j$) biểu diễn tập hợp các mảnh của $R$ đặt tại cùng vị trí $j$; bản nhân (Replica - $R_{ij}$) biểu diễn mảnh thứ $j$ của quan hệ $R$ được nhân bản đặt tại trạm $i$.
- Các mức độ trong suốt phân tán (Distribution Transparency):
- Trong suốt phân mảnh (Fragmentation Transparency): Cấp độ cao nhất, người dùng thao tác trực tiếp trên lược đồ toàn cục như với cơ sở dữ liệu tập trung mà không cần biết dữ liệu có bị phân mảnh hay không.
- Trong suốt vị trí (Location Transparency): Người dùng nhận biết được các mảnh nhưng không cần biết vị trí vật lý lưu trữ của từng mảnh trên mạng.
- Trong suốt nhân bản (Replication Transparency): Người dùng làm việc với các mảnh mà không nhận biết sự tồn tại của các bản nhân giữa các trạm.
- Trong suốt ánh xạ cục bộ (Local Mapping Transparency): Người dùng phải chỉ định rõ tên mảnh và vị trí lưu trữ vật lý cụ thể.
- Không trong suốt: Hệ thống yêu cầu ứng dụng phải kiểm soát hoàn toàn việc ánh xạ cục bộ.
- Các điều kiện đúng đắn khi phân mảnh:
- Tính đầy đủ (Completeness): Mọi phần tử dữ liệu trong quan hệ toàn cục $R$ phải thuộc về ít nhất một mảnh $R_i$. Với phân mảnh ngang: $\forall u \in R, \exists i \in [1, n]: u \in R_i$. Với phân mảnh dọc: $\forall A \in Attr(R), \exists i \in [1, n]: A \in Attr(R_i)$.
- Tính tái tạo (Reconstruction): Quan hệ toàn cục phải được phục hồi nguyên vẹn từ các mảnh con. Đối với phân mảnh ngang, sử dụng phép hợp: $R = \bigcup_{i=1}^n R_i$; đối với phân mảnh dọc, sử dụng phép kết nối tự nhiên: $R = \bowtie_{i=1}^n R_i$.
- Tính tách biệt (Disjointness): Đối với phân mảnh ngang, các mảnh không được giao nhau: $R_i \cap R_k = \emptyset$ với mọi $i \neq k$. Đối với phân mảnh dọc, tính chất này thường bị vi phạm do bắt buộc phải nhân bản thuộc tính khóa chính (Primary Key) ở tất cả các mảnh để phục vụ phép tái tạo.
Phương pháp nghiên cứu
- Phương pháp phân tích và thiết kế: Ứng dụng các phép toán chọn ($\sigma$), chiếu ($\pi$), kết nối ($\bowtie$) và bán kết ($\ltimes$) trong đại số quan hệ để xây dựng các biểu thức vị từ định tính phân rã dữ liệu.
- Phương pháp thực nghiệm kỹ thuật: Thiết lập môi trường mạng cơ sở dữ liệu trên hệ điều hành Windows; cấu hình dịch vụ sao chép dữ liệu (Replication Agent); viết mã lệnh T-SQL để kiểm chứng kết quả truy vấn; cài đặt máy ảo Java (JDK) và xây dựng luồng tích hợp dữ liệu trên công cụ Talend Studio.
- Nguồn dữ liệu: Cơ sở dữ liệu mẫu mô phỏng hoạt động quản lý công ty (
CompanyDB) bao gồm các bảng quan hệ:SUPPLIER(nhà cung cấp),DEPT(phòng ban),SUPPLY(cung ứng) vàEMP(nhân viên).
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế và triển khai gồm hai hợp phần kỹ thuật chính: cụm cơ sở dữ liệu phân tán trên Microsoft SQL Server và tiến trình ETL di trú dữ liệu bằng Talend Studio.
1. Kiến trúc phân tán trên Microsoft SQL Server
Hệ thống sử dụng mô hình sao chép trộn (Merge Replication) kết hợp cấu hình máy chủ liên kết (Linked Server):
- Phân định vai trò máy chủ: Server gốc đồng thời đảm nhiệm hai vai trò Publisher (máy chủ xuất bản dữ liệu) và Distributor (máy chủ phân phối lưu trữ metadata và transaction history). Hai máy chủ thành phần đóng vai trò Subscriber (Mảnh 1 và Mảnh 2).
- Thư mục đồng bộ ban đầu (Snapshot Folder): Thiết lập một thư mục dùng chung mang tên
REPLDATA(đường dẫn mạng dạng\\C\REPLDATA), cấp quyền đọc/ghi (Read/Write) cho nhóm người dùngEveryonetrên hệ điều hành Windows nhằm phục vụ việc tạo và lưu trữ ảnh chụp dữ liệu ban đầu. - Cấu hình Publisher và Publication: Khởi động dịch vụ SQL Server Agent; thiết lập kiểu ấn phẩm Merge Publication (tương thích từ SQL Server 2008 trở lên); chọn các bảng tham gia phân tán; định nghĩa các bộ lọc dòng (Filter Row) và bộ lọc kết nối mở rộng (Join Filter).
- Cấu hình Subscriptions: Khởi tạo các đăng ký dạng Run Continuously (chạy liên tục); phân quyền bảo mật cho Merge Agent thông qua tài khoản quản trị hệ thống (
sa/master). - Thiết lập máy chủ liên kết (Linked Server): Tạo tài khoản đăng nhập từ xa (
SC) tại từng phân mảnh, gán quyền truy cập cơ sở dữ liệu tương ứng và tạo liên kết hai chiều giữa Mảnh 1 và Mảnh 2 để cho phép thực thi các câu lệnh truy vấn liên trạm.
2. Thiết kế luồng di trú dữ liệu bằng Talend Studio
Tiến trình di trú dữ liệu từ Microsoft SQL Server sang MySQL được thiết kế theo quy trình hướng thành phần (Component-based Flow) với cơ chế quản lý giao dịch tự động:
| Giai đoạn | Tên thành phần (Component) | Chức năng kỹ thuật trong luồng |
|---|---|---|
| Khởi tạo kết nối | tPrejob |
Kích hoạt chuỗi công việc chuẩn bị khi Job bắt đầu chạy. |
tDBConnection_1 |
Thiết lập kết nối phiên làm việc với Microsoft SQL Server nguồn. | |
tDBConnection_2 |
Thiết lập kết nối phiên làm việc với MySQL đích. | |
| Xử lý trích xuất và nạp | tDBTableList_1 |
Duyệt và lấy danh sách toàn bộ các bảng hiện có từ tDBConnection_1. |
SQL_SERVER (tDBInput) |
Trích xuất dữ liệu từng bảng bằng cấu hình schema động (Dynamic), câu lệnh SQL: "select * from " + ((String)globalMap.get("tDBTableList_1_CURRENT_TABLE")). |
|
tDBOutput_1 |
Ghi dữ liệu sang MySQL theo bảng tương ứng; thiết lập hành động trên bảng là Create table if does not exist. |
|
| Kiểm soát giao dịch | tDBCommit_1 |
Kết nối qua OnSubjobOk, tự động xác nhận (commit) thay đổi trên MySQL nếu tiến trình nạp dữ liệu hoàn tất không lỗi. |
tDBRollback_1 |
Kết nối qua OnSubjobError, tự động hủy bỏ (rollback) toàn bộ thao tác trên MySQL nếu phát sinh lỗi trong quá trình xử lý. |
|
| Hậu xử lý và giải phóng | tPostjob |
Kích hoạt chuỗi công việc kết thúc khi toàn bộ Job hoàn tất. |
tDBClose_1 |
Đóng kết nối phiên làm việc với MySQL. | |
tDBClose_2 |
Đóng kết nối phiên làm việc với Microsoft SQL Server. |
Nội dung chính theo từng phần của đồ án
Phần A: Giới thiệu phân mảnh và lý thuyết cơ sở dữ liệu phân tán
Nội dung phần này tập trung phân tích bản chất của việc phân mảnh dữ liệu thành các phần nhỏ hơn để lưu trữ tối ưu theo tần suất truy xuất cục bộ, đảm bảo phép kết hợp dữ liệu không bị thất thoát thông tin. Tác giả tiến hành phân tích ưu điểm và nhược điểm của mô hình cơ sở dữ liệu phân tán:
| Tiêu chí | Ưu điểm | Nhược điểm |
|---|---|---|
| Vận hành & Mở rộng | Mở rộng hạ tầng linh hoạt mà không gây gián đoạn hoạt động hệ thống. | Phân bố dữ liệu có thể bị lệch, không còn phù hợp theo từng thời điểm. |
| Độ tin cậy & Sẵn sàng | Độ tin cậy cao hơn hệ thống tập trung, hỗ trợ vận hành liên tục 24/7. | Khả năng cao làm ảnh hưởng đến tính toàn vẹn dữ liệu nếu quản lý không tốt. |
| Hiệu năng & Truy xuất | Chi phí truyền thông thấp, phản hồi nhanh khi truy xuất dữ liệu cục bộ; chịu tải tốt với khối lượng truy vấn lớn. | Tốn kém chi phí quản lý trong việc kết hợp dữ liệu giữa các trạm; phát sinh chi phí đồng bộ hóa bản sao. |
| Chi phí & Nhân sự | Tối ưu hóa năng lực xử lý tại các trạm cục bộ. | Gia tăng chi phí bản quyền phần mềm (license) cho nhiều ứng dụng đi kèm; đòi hỏi nhân sự vận hành có trình độ chuyên môn cao. |
Bên cạnh đó, tác giả chuẩn hóa lý thuyết về 3 mức độ trong suốt phân tán (trong suốt phân mảnh, trong suốt vị trí, trong suốt ánh xạ cục bộ) và các điều kiện toán học bắt buộc của phân mảnh (đầy đủ, tái tạo, tách biệt).
Phần B: Áp dụng phân mảnh trên Database của đề tài
Tác giả áp dụng các quy tắc đại số quan hệ để phân chia 4 quan hệ thuộc cơ sở dữ liệu mẫu:
1. Lược đồ phân mảnh toán học
- Phân mảnh ngang chính:
- Bảng
SUPPLIER(theo thuộc tínhCITY):- $SUPPLIER1 = \sigma_{CITY='TP\ HCM'} SUPPLIER$ (vị từ: $CITY = \text{'TP HCM'}$)
- $SUPPLIER2 = \sigma_{CITY='Ha\ Noi'} SUPPLIER$ (vị từ: $CITY = \text{'Ha Noi'}$)
- Điều kiện tái tạo: $SUPPLIER = SUPPLIER1 \cup SUPPLIER2$
- Bảng
DEPT(theo thuộc tínhAREA):- $DEPT1 = \sigma_{AREA='North'} DEPT$ (vị từ: $AREA = \text{'North'}$)
- $DEPT2 = \sigma_{AREA='South'} DEPT$ (vị từ: $AREA = \text{'South'}$)
- Điều kiện tái tạo: $DEPT = DEPT1 \cup DEPT2$
- Bảng
- Phân mảnh ngang dẫn xuất:
- Bảng
SUPPLY(dẫn xuất theo bảngSUPPLIERqua thuộc tính khóaSNUM):- $SUPPLY1 = SUPPLY \ltimes_{SNUM=SNUM} SUPPLIER1$
- $SUPPLY2 = SUPPLY \ltimes_{SNUM=SNUM} SUPPLIER2$
- Điều kiện tái tạo: $SUPPLY = SUPPLY1 \cup SUPPLY2$
- Bảng
SUPPLY(dẫn xuất theo bảngDEPTqua thuộc tính khóaDEPTNUM):- $SUPPLY1 = SUPPLY \ltimes_{DEPTNUM=DEPTNUM} DEPT1$
- $SUPPLY2 = SUPPLY \ltimes_{DEPTNUM=DEPTNUM} DEPT2$
- Điều kiện tái tạo: $SUPPLY = SUPPLY1 \cup SUPPLY2$
- Bảng
EMP(dẫn xuất theo bảngDEPTqua thuộc tính khóaDEPTNUM):- $EMP1 = EMP \ltimes_{DEPTNUM=DEPTNUM} DEPT1$
- $EMP2 = EMP \ltimes_{DEPTNUM=DEPTNUM} DEPT2$
- Điều kiện tái tạo: $EMP = EMP1 \cup EMP2$
- Bảng
- Phân mảnh hỗn hợp:
- Bảng
EMP(kết hợp phân mảnh dọc và phân mảnh ngang):- $EMP1 = \sigma_{DEPTNUM \le 7} (\pi_{EMPNUM, NAME, MGRNUM, DEPTNUM} EMP)$
- $EMP2 = \sigma_{DEPTNUM > 7} (\pi_{EMPNUM, NAME, MGRNUM, DEPTNUM} EMP)$
- $EMP3 = \pi_{EMPNUM, NAME, SAL, TAX, DEPTNUM} EMP$
- Điều kiện tái tạo đầy đủ: $EMP = (EMP1 \cup EMP2) \bowtie_{EMPNUM=EMPNUM} EMP3$
- Bảng
2. Quy trình cài đặt 5 bước trên SSMS
Tác giả hệ thống hóa quy trình cấu hình giao diện đồ họa thành 5 bước thực nghiệm rõ ràng:
- Bước 1: Chuẩn bị thư mục: Tạo thư mục
REPLDATA, thiết lập chia sẻ mạng cục bộ (Shared Folder) và phân quyền Read/Write cho tài khoản người dùng. - Bước 2: Cấu hình Distribution: Sử dụng Configure Distribution Wizard để chỉ định Distributor, cấu hình đường dẫn Snapshot Folder và khởi tạo CSDL phân phối lưu metadata.
- Bước 3: Tạo Publication: Kích hoạt SQL Server Agent, tạo mới Merge Publication, tích chọn các bảng và thiết lập biểu thức lọc dữ liệu (
CITY = 'TP HCM'và mở rộng liên kết bằng Add Join Filter). - Bước 4: Tạo Subscriptions: Kết nối máy chủ Subscriber, chọn cơ sở dữ liệu nhận phân mảnh, cấu hình tài khoản chứng thực Merge Agent Security và thiết lập lịch đồng bộ chạy liên tục (Run Continuously).
- Bước 5: Tạo Linked Server: Thiết lập Remote Login (
SC), gán User Mapping và cấu hình liên kết đối xứng giữa hai trạm phân mảnh để cho phép truy vấn dữ liệu chéo trạm.
3. Thực nghiệm kiểm chứng các mức trong suốt
Tác giả xây dựng các tập lệnh T-SQL minh họa cụ thể cho từng cấp độ trong suốt:
- Mức 1 (Trong suốt phân mảnh): Người dùng chỉ định truy vấn toàn cục mà không cần biết dữ liệu nằm ở trạm nào:
DECLARE @CITY varchar(100);
SET @CITY = 'TP HCM';
SELECT * FROM SUPPLIER WHERE CITY = @CITY;
-- Cập nhật dữ liệu mức toàn cục
UPDATE EMP SET DEPTNUM = 8 WHERE EMPNUM = 8;
SELECT * FROM EMP;
- Mức 2 (Trong suốt vị trí): Ứng dụng nhận biết các mảnh nhưng không chỉ định trạm vật lý, sử dụng logic rẽ nhánh để kiểm tra sự tồn tại của dữ liệu theo từng mảnh nghiệp vụ:
DECLARE @CheckSNUM INT;
DECLARE @Result NVARCHAR(100);
SET @CheckSNUM = 123;
IF EXISTS (SELECT * FROM CompanyDB.SUPPLIER WHERE SNUM = @CheckSNUM AND CITY = 'TP HCM')
BEGIN
SELECT @Result = CONCAT(NAME, ', ', CITY) FROM CompanyDB.SUPPLIER WHERE SNUM = @CheckSNUM;
END
ELSE IF EXISTS (SELECT * FROM CompanyDB.SUPPLIER WHERE SNUM = @CheckSNUM AND CITY = 'Ha Noi')
BEGIN
SELECT @Result = CONCAT(NAME, ', ', CITY) FROM CompanyDB.SUPPLIER WHERE SNUM = @CheckSNUM;
END
ELSE
BEGIN
SET @Result = 'Not Found';
END
PRINT @Result;
- Mức 3 (Trong suốt ánh xạ cục bộ): Truy vấn phải chỉ rõ tên trạm vật lý thông qua tên đối tượng Linked Server (
LINK1hoặcLINK2):
DECLARE @SNUM INT;
DECLARE @KQ NVARCHAR(100);
SET @SNUM = 3;
IF EXISTS (SELECT * FROM LINK1.SUPPLIER WHERE SNUM = @SNUM)
BEGIN
SELECT @KQ = CONCAT(NAME, ', ', CITY) FROM LINK1.SUPPLIER WHERE SNUM = @SNUM;
END
ELSE IF EXISTS (SELECT * FROM LINK2.SUPPLIER WHERE SNUM = @SNUM)
BEGIN
SELECT @KQ = CONCAT(NAME, ', ', CITY) FROM LINK2.SUPPLIER WHERE SNUM = @SNUM;
END
ELSE
BEGIN
SET @KQ = 'Not Found';
END
Phần C & D: Di trú dữ liệu sử dụng Talend Studio
Phần này giải thích chi tiết về nền tảng Talend — giải pháp mã nguồn mở phục vụ tích hợp và quản lý quy trình dữ liệu. Các khái niệm cốt lõi bao gồm:
- Job: Đơn vị thực thi logic chứa chuỗi các thành phần kết nối với nhau để thực hiện nhiệm vụ ETL.
- Component: Khối chức năng cơ bản thực hiện đọc, ghi hoặc chuyển đổi dữ liệu.
- Flow: Đường kết nối trực quan biểu diễn luồng luân chuyển dữ liệu giữa các component.
- Talend Studio: Môi trường phát triển tích hợp (IDE) giao diện đồ họa.
- Exchange: Kho lưu trữ trực tuyến chia sẻ các tài nguyên mở rộng.
Quy trình cài đặt môi trường được tác giả ghi chép từng bước: cài đặt JDK từ bộ cài Oracle, thiết lập biến môi trường hệ thống (sysdm.cpl -> Advanced System Settings -> Environment Variables) và kiểm tra qua lệnh java -version; cài đặt Microsoft SQL Server Developer Edition (chế độ Basic); đăng ký tài khoản trên Talend Cloud Management Console để khởi tạo Project, sau đó kết nối dự án về ứng dụng Talend Studio cục bộ.
Tiếp đó, tác giả triển khai kết nối cơ sở dữ liệu trong thẻ Metadata (Db Connections), tải các mô-đun kết nối cần thiết và thiết kế một Standard Job hoàn chỉnh. Luồng dữ liệu cho phép tự động quét toàn bộ danh sách bảng nguồn bằng tDBTableList, sử dụng schema Dynamic để bao quát mọi cấu trúc bảng mà không cần khai báo tĩnh, tự động tạo bảng tương ứng tại MySQL thông qua tDBOutput (Create table if does not exist), và kiểm soát an toàn dữ liệu qua cơ chế tDBCommit/tDBRollback.
Kết quả và đóng góp
Kết quả kỹ thuật chính
- Thiết kế phân mảnh chuẩn tắc: Xây dựng đầy đủ các biểu thức toán học đại số quan hệ cho 4 bảng (
SUPPLIER,DEPT,SUPPLY,EMP), chứng minh được tính đúng đắn qua các điều kiện đầy đủ, tái tạo và tách biệt. - Cài đặt phân tán hoạt động thực tế: Triển khai thành công mô hình Merge Replication trên SQL Server với snapshot folder chia sẻ mạng; cấu hình liên kết máy chủ hai chiều Linked Server giữa các trạm phân mảnh và kiểm tra dữ liệu bảng
employeestừ Server 1 truy xuất sang Server 2 thành công. - Thực nghiệm truy vấn đa cấp độ: Kiểm chứng hoạt động của cả 3 cấp độ trong suốt dữ liệu thông qua các đoạn mã T-SQL với kết quả trả về chính xác theo vị từ định tính.
- Tự động hóa di trú dữ liệu dị thể: Xây dựng thành công Job ETL trên Talend Studio; thực thi luồng chuyển đổi dữ liệu từ Microsoft SQL Server sang MySQL mà không phát sinh lỗi; kiểm tra xác nhận dữ liệu đã được tạo lập đầy đủ trên công cụ MySQL Workbench.
Đóng góp của đề tài
- Hệ thống hóa chi tiết quy trình thực hành cài đặt cơ sở dữ liệu phân tán trên Microsoft SQL Server bằng công cụ giao diện SSMS qua 5 bước trực quan, có tính ứng dụng cao cho việc thực hành môn học.
- Kết hợp giải pháp phân tán cơ sở dữ liệu nội bộ với bài toán tích hợp dữ liệu liên nền tảng, đưa ra phương án sử dụng Talend Studio với schema động (
Dynamic) giúp đơn giản hóa đáng kể quá trình di trú nhiều bảng dữ liệu cùng lúc.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Quy mô thử nghiệm: Đồ án mới chỉ thực nghiệm trên hệ thống mạng cục bộ/máy ảo nội bộ với cơ sở dữ liệu mẫu có dung lượng nhỏ, chưa kiểm thử trên môi trường mạng diện rộng (WAN) hoặc đa đám mây (Multi-Cloud).
- Đánh giá hiệu năng: Văn bản chưa cung cấp các số liệu đo lường định lượng về độ trễ truyền thông (network latency), tốc độ đồng bộ bản sao khi có lưu lượng truy cập lớn hoặc đánh giá chi tiết chi phí tài nguyên phần cứng.
- Xử lý ràng buộc khi di trú: Tiến trình di trú bằng Talend sử dụng truy vấn
select *và cơ chế tạo bảng tự động, chưa đề cập đến việc bảo toàn toàn vẹn các ràng buộc phức tạp như khóa ngoại (Foreign Key), chỉ mục (Index) hoặc các thủ tục lưu trữ (Stored Procedures) giữa SQL Server và MySQL.
Hướng nghiên cứu tiếp
- Mở rộng mô hình phân tán trên môi trường máy chủ vật lý phân tán qua Internet hoặc các nền tảng điện toán đám mây (Microsoft Azure, AWS).
- Nghiên cứu cơ chế giải quyết xung đột dữ liệu (Conflict Resolution) chuyên sâu trong Merge Replication khi có nhiều trạm đồng thời cập nhật trên cùng một bản ghi.
- Nâng cao quy trình ETL trên Talend nhằm tự động ánh xạ kiểu dữ liệu phức tạp, đồng bộ ràng buộc toàn vẹn và tích hợp kỹ thuật bắt dữ liệu thay đổi theo thời gian thực (Change Data Capture - CDC).
Giá trị tham khảo
Đồ án là tài liệu tham khảo thực nghiệm phù hợp cho:
- Sinh viên ngành Công nghệ Thông tin, Hệ thống Thông tin: Tham khảo cách thức áp dụng lý thuyết đại số quan hệ vào bài toán phân mảnh dữ liệu thực tế (ngang chính, ngang dẫn xuất, hỗn hợp); hiểu rõ cách phân biệt và lập trình truy vấn cho từng cấp độ trong suốt.
- Người học và kỹ sư dữ liệu mới bắt đầu: Tham khảo tài liệu hướng dẫn từng bước (step-by-step) về cách cấu hình Merge Replication, Snapshot Folder và Linked Server trên Microsoft SQL Server Management Studio.
- Chuyên viên tích hợp dữ liệu: Tham khảo mô hình thiết kế Job ETL mẫu trên Talend Studio ứng dụng schema động kết hợp các thành phần điều khiển luồng và kiểm soát giao dịch (
tPrejob,tPostjob,tDBTableList,tDBCommit,tDBRollback).
Câu hỏi thường gặp
1. Đồ án áp dụng những loại phân mảnh nào trên các bảng của cơ sở dữ liệu mẫu?
Đồ án áp dụng đầy đủ 3 loại phân mảnh:
- Phân mảnh ngang chính: Áp dụng trên bảng
SUPPLIERtheo vị từ $CITY = \text{'TP HCM'}$ và $CITY = \text{'Ha Noi'}$; bảngDEPTtheo vị từ $AREA = \text{'North'}$ và $AREA = \text{'South'}$. - Phân mảnh ngang dẫn xuất: Áp dụng trên bảng
SUPPLYdẫn xuất qua phép bán kết vớiSUPPLIER(theoSNUM) và vớiDEPT(theoDEPTNUM); bảngEMPdẫn xuất qua phép bán kết vớiDEPT(theoDEPTNUM). - Phân mảnh hỗn hợp: Áp dụng trên bảng
EMP, kết hợp phép chiếu tách các nhóm thuộc tính hành chính và lương thưởng với phép chọn theo điều kiện $DEPTNUM \le 7$ và $DEPTNUM > 7$.
2. Thư mục REPLDATA có vai trò gì trong quá trình cấu hình phân tán trên SQL Server?
Thư mục REPLDATA đóng vai trò là thư mục ảnh chụp (Snapshot Folder). Thư mục này được chia sẻ qua mạng nội bộ với quyền Read/Write cho người dùng nhằm lưu trữ các tệp dữ liệu schema và dữ liệu ban đầu, phục vụ việc khởi tạo và đồng bộ dữ liệu giữa máy chủ xuất bản (Publisher) với các máy chủ thuê bao (Subscriber).
3. Trong suốt ánh xạ cục bộ được kiểm chứng trong đồ án bằng kỹ thuật gì?
Trong suốt ánh xạ cục bộ được kiểm chứng bằng việc viết các câu lệnh T-SQL chỉ định tường minh tên máy chủ vật lý thông qua cơ chế Linked Server (cụ thể là LINK1.SUPPLIER cho Server 1 và LINK2.SUPPLIER cho Server 2), kết hợp cấu trúc rẽ nhánh IF EXISTS để kiểm tra sự tồn tại của bản ghi trực tiếp trên từng trạm lưu trữ vật lý.
4. Thành phần nào trong Job của Talend cho phép di trú nhiều bảng cùng lúc mà không cần định nghĩa schema tĩnh cho từng bảng?
Đó là sự kết hợp giữa thành phần tDBTableList và thuộc tính kiểu dữ liệu Dynamic trong tDBInput. tDBTableList tự động duyệt danh sách tất cả các bảng trong cơ sở dữ liệu SQL Server, sau đó truyền tên bảng hiện tại qua biến hệ thống ((String)globalMap.get("tDBTableList_1_CURRENT_TABLE")) vào câu lệnh truy vấn, trong khi schema dạng Dynamic cho phép tiếp nhận mọi cột và kiểu dữ liệu mà không cần định nghĩa thủ công.
Kết luận
Báo cáo đồ án của nhóm sinh viên Trường Đại học Sài Gòn đã giải quyết trọn vẹn cả hai nội dung lý thuyết và thực hành về quản trị cơ sở dữ liệu phân tán. Nghiên cứu đã mô hình hóa chuẩn xác các kỹ thuật phân mảnh dữ liệu dựa trên đại số quan hệ và cài đặt thành công kiến trúc Merge Replication kèm Linked Server trên Microsoft SQL Server. Đồng thời, đồ án đã mở rộng ứng dụng công cụ mã nguồn mở Talend Studio để xây dựng tiến trình ETL di trú dữ liệu tự động và an toàn từ SQL Server sang MySQL, mang lại tài liệu tham khảo kỹ thuật có giá trị thực tiễn cao cho sinh viên ngành Công nghệ thông tin.