Tải bản đầy đủ (.pdf) (26 trang)

NGHIÊN CỨU GIẢI PHÁP KHO DỮ LIỆU THỜI GIAN THỰC ỨNG DỤNG TRONG HỆ THỐNG SIÊU THỊ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.08 MB, 26 trang )


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG







Vương Quang Phương





Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01



TÓM TẮT LUẬN VĂN THẠC SĨ


NGHIÊN CỨU GIẢI PHÁP KHO DỮ LIỆU THỜI GIAN THỰC
ỨNG DỤNG TRONG HỆ THỐNG SIÊU THỊ

HÀ NỘI - 2014

























































Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG




Người hướng dẫn khoa học:
TS. Phạm Văn Cường





Phản biện 1: ……………………………………………………………………………

Phản biện 2: …………………………………………………………………………








Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công
nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm




Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông

1

MỞ ĐẦU
Hiện nay, công nghệ thông tin đã và đang trở thành một bộ phận quan trọng trong
nền kinh tế tri thức, đó là phương tiện trợ giúp đắc lực trong công tác quản lý nói chung và
quản trị doanh nghiệp nói riêng. Việc lưu trữ và khai thác thông tin hiệu quả giúp cho các

doanh nghiệp hoạch định các chiến lược kinh doanh cho mình một cách nhanh chóng và
chính xác hơn. Đi cùng với sự phát triển mạnh mẽ của ngành thương mại, dịch vụ, nhu cầu
áp dụng phần mềm quản lý tại các siêu thị, cửa hàng hay các trung tâm thương mại là điều
tất yếu.
Trong quá trình hoạt động kinh doanh, dữ liệu của các cửa hàng, siêu thị sẽ phát sinh
hàng ngày và tăng lên rất nhanh chóng. Việc lữu trữ, quản lý và khai thác các dữ liệu này ra
sao luôn được đặc biệt quan tâm. Với xu hướng mở nhiều chi nhánh phân tán ở các địa điểm
khác nhau, công nghệ kho dữ liệu (Data Warehouse) được rất nhiều các nhà quản lý và
chuyên gia công nghệ thông tin lựa chọn giải quyết bài toán trên. Công nghệ này là tập các
phương pháp, kỹ thuật và các công cụ có thể kết hợp, hỗ trợ nhau để cung cấp thông tin cho
người sử dụng trên cơ sở tích hợp dữ liệu từ nhiều nguồn, nhiều môi trường khác nhau.
Trong một hệ thống chuỗi siêu thị, sử dụng kho dữ liệu sẽ giúp hệ thống phần mềm
có thể dễ dàng lấy ra các thông tin như báo cáo doanh số, tiền mặt hiện có, công nợ đối tác,
hay hoạt động truy cập của khách hàng, yêu cầu đặt hàng… Tuy nhiên, với các nhà quản lý
ngoài việc cần các báo cáo hoạt động kinh doanh chính xác, họ cũng cũng yêu cầu chúng
phải được tổng hợp một cách nhanh chóng, vì đó là nguồn tài liệu quan trọng giúp đưa ra
những quyết định chính xác kịp thời. Hoặc với nhân viên nghiệp vụ, việc nhận được các
thông tin tổng hợp tức thời từ nhiều chi nhánh về việc đặt hàng của khách hàng sẽ giúp họ
làm việc hiệu quả hơn rất nhiều. Tức là hệ thống kho dữ liệu không chỉ đơn giản là đưa ra
kết quả chính xác mà nó còn phải thực hiện một xử lý trong một thời gian ngắn, người ta gọi
đó là hệ thống kho dữ liệu (thông tin) thời gian thực.
Nhưng kho dữ liệu chứa dữ liệu tích hợp từ nhiều nguồn nên khối lượng thường rất
lớn. Việc tổng hợp dữ liệu trong thời gian thực để xây dựng các báo cáo là không hề dễ
dàng. Thời gian gần đây, một số công nghệ và phương pháp mới đã được giới thiệu để giải
quyết bài toán trên. Trong đó có phương pháp kho dữ liệu thời gian thực (Real-time Data
Warehouse).
2

Sau một thời gian tìm hiểu những vấn đề nêu trên, tôi xin chọn đề tài “Nghiên cứu
giải pháp kho dữ liệu thời gian thực ứng dụng trong hệ thống siêu thị” làm đề tài nghiên

cứu luận văn của mình.
Ngoài phần mở đầu và kết luận, luận văn này gồm 3 chương:
Chương 1: Trình bày tổng quan về kho dữ liệu và kho dữ liệu thời gian thực, trong
đó đưa ra định nghĩa, một số khái niệm cơ bản, đặc điểm và các kỹ thuật lưu trữ, quản lý.
Chương 2: Trình bày về tiến trình ETL với khái niệm và kiến trúc trong kho dữ liệu.
Từ đó, tìm ra các vấn đề và hạn chế, cải tiến và áp dụng vào kho dữ liệu thời gian thực.
Chương 3: Áp dụng các kiến thức trên vào xây dựng mô hình kho dữ liệu thời gian
thực mô phỏng.

3

CHƯƠNG 1 – TỔNG QUAN VỀ KHO DỮ LIỆU VÀ KHO DỮ LIỆU
THỜI GIAN THỰC
1.1 Tổng quan về kho dữ liệu
1.1.1 Định nghĩa kho dữ liệu
Kho dữ liệu (Data Warehouse - DW) là một tập hợp các cơ sở dữ liệu trung tâm được
tạo ra bằng cách kết hợp dữ liệu từ một hoặc nhiều nguồn với nhau. Chúng lưu trữ các dữ
liệu lịch sử và hiện tại của một tổ chức/doanh nghiệp, được sử dụng để phân tích và xây
dựng các báo cáo hỗ trợ ra quyết định cho các nhà quản lý [1].
1.1.2 Mục tiêu của kho dữ liệu
Các mục tiêu cơ bản của kho dữ liệu ([2], tr.10-11)
- Tạo sự truy cập dễ dàng cho thông tin của một tổ chức/doanh nghiệp
- Tạo sự nhất quán cho thông tin
- Trở thành một nguồn thông tin linh hoạt và có tính thích nghi
- Trở thành một nơi an toàn để bảo vệ thông tin
- Nền móng tạo ra các báo cáo hỗ trợ ra quyết định
1.1.3 Đặc điểm của kho dữ liệu
1. Tính tích hợp: Kho dữ liệu là một khung nhìn tổng thể của tổ chức/doanh nghiệp,
thống nhất từ các khung nhìn ở các bộ phận khác nhau. Dữ liệu trong kho được tổ chức theo
nhiều cách.

2. Chỉ đọc: Người dùng cuối chỉ có thể sử dụng kho dữ liệu để đọc, tra cứu, truy vấn
các báo cáo thống kê mà không được phép thực hiện các sửa đổi.
3. Hướng chủ đề: Kho dữ liệu được tổ chức theo các chủ đề để phục vụ việc dễ dàng
xác định được những thông tin cần thiết trong từng mảng hoạt động kinh doanh của mình
như về khách hàng (customer), sản phẩm (product), bán hàng (sale).
4. Gắn thời gian và có tính lịch sử: Một kho dữ liệu bao gồm một khối lượng lớn dữ
liệu lịch sử. Chúng được lưu trữ thành các ảnh chụp (snapshot), mỗi bản ghi phản ánh giá trị
của dữ liệu tại một thời điểm, thể hiện một khung nhìn của một chủ đề trong một giai đoạn.
5. Không biến động: Tính không biến động ở đây được hiểu theo nghĩa dữ liệu được lưu
trữ lâu dài trong kho dữ liệu. Dù có dữ liệu được thêm vào nhưng những bản ghi cũ vẫn
không bị xóa.
4

6. Dữ liệu tổng hợp và chi tiết: Dữ liệu chi tiết là thông tin mức thấp nhất được lưu trữ
trong kho. Dữ liệu tác nghiệp chính là thông tin mức thấp nhất.
1.1.4 Một số khái niệm cơ bản
1.1.4.1 Dữ liệu tác nghiệp (operational data)
Được tạo ra và sử dụng bởi các hệ thống ứng dụng hoạt động sản xuất kinh doanh
(như mua bán hàng, quản lý kho, tài chính) cũng như các hệ thống hỗ trợ ra quyết định.
1.1.4.2 Khu vực tổ chức dữ liệu (Data Staging Area - DSA)
Là nơi diễn ra các quá trình chuyển đổi dữ liệu trước khi chúng được đưa lên kho lưu
trữ. Những công đoạn này nhìn chung đòi hỏi phải xây dựng các bảng tạm để chứa thông tin
đang được xử lý và các bảng điều khiển để chứa metadata về quá trình ETL.
1.1.4.3 Bảng sự kiện (Fact Table)
Là bảng chứa các dữ liệu có tính chất đo lường. Một Fact (hay còn gọi là độ đo) dùng
để minh họa cho một trường chứa những giá trị đo lường được và có một vai trò quan trọng.
Do cấu trúc của bảng sự kiện đơn giản chỉ chứa duy nhất khóa ngoại và Fact, ngoài ra
không có bất cứ thông tin nào khác nên tốc độ truy cập bảng khá nhanh.
1.1.4.4 Bảng chiều (Dimension table)
Bảng chiều chứa các thông tin mô tả nghiệp vụ. Trong không gian của mô hình đa

chiều, các thông tin này được gọi là thuộc tính của chiều. Còn khi được lưu trữ cụ thể trong
một cơ sở dữ liệu quan hệ, các thông tin này chính là các trường/cột của bảng.
Một nguyên tắc trong thiết kế của kho dữ liệu là cố gắng đưa càng nhiều thông tin
vào chiều thì càng tốt.
1.1.4.5 Siêu dữ liệu (Metadata)
Siêu dữ liệu là “dữ liệu của dữ liệu”, lưu trữ thông tin về người dùng, công cụ thao
tác, thời gian sử dụng, thao tác gì trên hệ thống. Những dữ liệu này có thể giúp người dùng
hiểu được ý nghĩa và ngữ cảnh của thông tin, quan trọng hơn là giúp cho việc xây dựng, duy
trì hoạt động, quản lý kho dữ liệu. Siêu dữ liệu được chia thành 3 loại:
- Siêu dữ liệu nghiệp vụ
- Siêu dữ liệu kỹ thuật
- Siêu dữ liệu tác nghiệp
5

1.1.5 Các thành phần cơ bản của hệ thống kho dữ liệu
1.1.5.1 Nguồn dữ liệu (Data Sources)
Là cơ sở dữ liệu hoạt động kinh doanh như mua bán hàng, kế toán, nhân sự, CRM,
hoặc dữ liệu từ bên ngoài hoặc từ Internet. Chúng có thể được lưu trữ dưới nhiều nền tảng
khác nhau. Như Oracle EBS, SAP R/3, Oracle DB, SQL Server, Data Access, Flat file,
XML file,…
Bao gồm một số loại chính: dữ liệu từ các hệ thống tác nghiệp, hệ thống kế thừa, các
nguồn dữ liệu bên ngoài
1.1.5.2 Tiến trình ETL (Extract Transform Load):
Chiết xuất (Extract): Làm thế nào để lấy ra được đúng dữ liệu mong muốn và sắp
xếp thứ tự sao cho không ảnh hưởng đến các giai đoạn tiếp sau. Có 2 phương pháp chính
trong chiết xuất dữ liệu: lấy toàn bộ dữ liệu, chỉ lấy những dữ liệu được gia tăng thêm.
Chuyển đổi (Transform): có nhiệm vụ chuẩn bị dữ liệu cho việc giai đoạn tải phía
sau, sao cho các dữ liệu sau khi chuyển đổi phù hợp với kiến trúc và cách tổ chức của của
kho dữ liệu. Quá trình này có thể bao gồm các công việc: ánh xạ lại (re-mapping), sắp xếp
(sorting), lọc (filtering), làm sạch (cleaning), tổng hợp (aggregation), chuẩn hóa

(standardization).
Tải (Load): Các dữ liệu đã được chuyển đổi để phù hợp sẽ được thực tải lên kho. Tùy
thuộc vào phương pháp chuyển đổi phía trên (đầy đủ hay gia tăng) và các ràng buộc, mà có
thể ghi đè dữ liệu hiện có, được thêm mới hay sẽ pha trộn của cả hai.
1.1.5.3 Kho dữ liệu chủ đề (Data Mart)
Kho dữ liệu thường rất lớn và chứa dữ liệu của nhiều chi nhánh, phòng ban. Muốn
cho từng bộ phận người sử dụng cuối cùng khai thác thông tin dễ dàng thì bản thân chúng
phải được phân ra thành những chủ đề. Data Mart gồm hai loại:
Data Mart phụ thuộc: chứa những dữ liệu được lấy từ kho và những những thứ này
sẽ được trích chọn, tinh chế, tích hợp lại ở mức cao hơn để phục vụ cho một chủ đề.
Data Mart độc lập: loại này được xây dựng trước kho dữ liệu và dữ liệu được lấy ra
trực tiếp từ các nguồn. Phương pháp này đơn giản và chi phí thấp hơn nhưng có thể dẫn tới
dữ liệu trong một vài Data Mart là không đồng nhất với nhau.
1.1.5.4 OLAP (Online Analysis Processing)
Hệ thống phân tích trực tuyến OLAP, là công cụ với cách tiếp cận mới trong việc
phân tích và lập báo cáo đa chiều. OLAP cho phép người điều hành thực hiện các phân tích
6

về xu hướng, so sánh theo thời gian bằng cách khảo sát các dữ liệu nhiều chiều được tổng
hợp và tính toán sơ bộ trước.
1.1.5.5 Các ứng dụng của người dùng cuối
Các ứng dụng này giúp người dùng cuối thực hiện truy vấn, tạo ra các phân tích với
mục tiêu hỗ trợ nhu cầu quản lý tổ chức/doanh nghiệp. Trong đó phổ biến nhất là Business
Intelligence (BI), Key Performance Indicator (KPI).
1.1.6 Một số kỹ thuật lưu trữ kho dữ liệu
1.1.6.1 Mô hình lưu trữ dữ liệu
a. Mô hình liên kết thực thể
Thực thể biểu diễn cho các đối tượng người, địa điểm, sự vật, sự kiện, những thứ
trong thế giới thực liên quan đến tổ chức/doanh nghiệp. Bên trong chúng là các thuộc tính,
mô tả các đặc điểm và tính chất của đối tượng. Có ba loại quan hệ sau: 1-1, 1-nhiều, nhiều-

nhiều.
b. Mô hình dữ liệu đa chiều (Multi Dimension)
Các báo cáo, phân tích được xây dựng từ kho dữ liệu thường phải cung cấp cái nhìn
đa chiều về tình hình hoạt động kinh doanh của tổ chức/doanh nghiệp. Một cách để quan sát
mô hình dữ liệu đa chiều là nhìn nó như một khối.
Một số lược đồ tổ chức dữ liệu trong mô hình đa chiều:
Lược đồ hình sao: cho phép một hệ thống đối tượng có thể kết nối với nhiều đối
tượng khác.
Một số uu điểm của lược đồ hình sao: các sự kiện và chiều được mô tả rõ ràng, dễ
hiểu. Các bảng chiều là dữ liệu tĩnh, dữ liệu được nạp (bằng thao tác) vào bảng sự kiện. Cải
tiến hiệu suất cho các câu truy vấn kho dữ liệu. Dễ sử dụng, trực quan.
Lược đồ bông tuyết
Là sự mở rộng của lược đồ hình sao, tại mỗi cánh sao có thể chứa một hoặc nhiều
bảng chiều. Sơ đồ này cải thiện hiệu năng truy vấn, tối thiểu không gian đĩa cần thiết để lưu
trữ. Ưu điểm của lược đồ bông tuyết: trong lược đồ, một số chiều được phân cấp để thể hiện
rõ ràng dạng chuẩn của bảng chiều.
Lược đồ kết hợp
Là kết hợp của lược đồ hình sao và bông tuyết. Một vài cơ sở dữ liệu và các công cụ
truy vấn của người dùng cuối, nhất là các công cụ xử lý phân tích trực tuyến (OLAP) đòi
hỏi mô hình dữ liệu phải là lược đồ hình sao vì nó hỗ trợ mô hình dữ liệu đa chiều.
7

1.1.6.2 Phân vùng dữ liệu
Nhằm tối ưu hiệu suất truy vấn, bằng cách cho phép người thiết kế phân vùng các
vùng nhớ để chứa dữ liệu thỏa mãn những yêu cầu do người thiết kế đặt ra. Khi thực hiện,
người thiết kế chọn điều kiện để phân vùng, ví dụ như số liệu doanh thu bán hàng, người
thiết kế sẽ phân vùng theo năm.
1.1.6.3 Chỉ mục dữ liệu
Các nhà thiết kế cần chọn các trường dữ liệu phù hợp trong các bảng để đáng chỉ
mục, và các thông tin đó sẽ được lưu vào bảng tham chiếu, được sắp xếp sẵn. Lúc có yêu

cầu truy vấn, các dữ liệu đã sắp xếp giúp giảm thời gian thực hiện một cách đáng kể.
1.2 Tổng quan về kho dữ liệu thời gian thực
1.2.1 Giới thiệu về thời gian thực
1.2.1.1 Xu hướng phát triển BI và KPI
IDC[3] đã khảo sát 693 tổ chức Châu Âu vào tháng 2-2011 về các nền tảng công
nghệ mà họ quan tâm cho tổ chức. Trong đó, 51% phản hồi BI và phân tích là các công
nghệ ưu tiên hàng đầu.
BI cung cấp các con số báo cáo tình hình của doanh nghiệp trong thời điểm hiện tại,
không có đối sánh. KPI giúp cho các nhà quản lý triển khai chiến lược lãnh đạo thành các
mục tiêu quản lý và chương trình hành động cụ thể cho từng bộ phận, từng lĩnh vực và từng
cá nhân
1.2.1.2 Nhu cầu về thời gian thực
“Retail Out-of-Stocks” (không có hàng cho bán lẻ - OSS) [4] chỉ sự vắng mặt của
một sản phẩm trên kệ hàng. Trên toàn cầu, tỷ lệ này chiếm khoảng 8.3%, tức là trong bất kỳ
thời điểm nào, cứ 100 sản phẩm thì có 8 sản phẩm không có hàng để bán. Con số này tăng
gấp đôi, khoảng 16,3% cho các hạng mục thực hiện khuyến mại.
Sự thiếu hụt hàng hóa làm cho hơn một nửa số khách (55%) không tiếp tục việc mua
hàng tại đó. Nguy hại hơn, người tiêu dùng có thể chuyển sang mua những thứ mình muốn
ở các trung tâm khác, làm giảm thị phần và ảnh hưởng đến uy tín của siêu thị. Điều đó xảy
ra phần lớn là do các dữ liệu quản lý hàng hóa từ các chi nhánh của siêu thị cập nhật lên hệ
thống kho trung tâm quá chậm. Từ đó, những người có trách nhiệm không kịp thời phát hiện
tình hình để luân chuyển hàng hóa giữa các khu vực, hoặc tiến hành đặt thêm hàng, đáp ứng
nhu cầu của người tiêu dùng. Hơn nữa, trong một số ngành nghề hoặc mặt hàng đặc biệt cần
có những báo cáo sản xuất kinh doanh mà dữ liệu phải được cập nhật trong thời gian quy
8

định. Đặc biệt là trong những trường hợp khoảng thời gian xem báo cáo ngắn như hàng tuần
hoặc hàng ngày.
Chính vì vậy, làn sóng đầu tư công nghệ thông tin đã dịch chuyển về các hệ thống
phân tích doanh nghiệp và thời gian thực, đó là lý do các hệ thống thời gian thực đang ở giai

đoạn tiềm năng lớn.
1.2.1.3 Hệ thống thời gian thực
Trước tiên, chúng ta phải làm rõ định nghĩa “thời gian thực” và vấn đề liên quan để
có cái nhìn rõ ràng hơn. Với nhiều người, “thời gian thực” đồng nghĩa với “tức thời”. Tuy
nhiên, điều đó không thực sự chính xác trong thực tế.
"Hệ thống thời gian thực là một hệ thống trong đó cần phải xử lý thông tin và tạo ra
một phản ứng trong thời gian quy định, nếu không sẽ có nguy cơ gây ra những hậu quả
nghiêm trọng. Có nghĩa là, trong một hệ thống với ràng buộc thời gian thực, sẽ là không tốt
dù có hành động đúng hoặc câu trả lời đúng nhưng sau thời gian hạn định: nó hoặc là đúng
thời gian hoặc là vô giá trị".[5]
Như vậy, hiểu một cách đơn giản thì “thời gian thực” phụ thuộc vào thực tế của từng
doanh nghiệp cụ thể. Không có chuẩn mực chung nào cho việc xác định ngưỡng thời gian
quy định, miễn sao hệ thống phải có các phản ứng đúng thời gian hạn định.
1.2.2 Định nghĩa kho dữ liệu thời gian thực
Một kho dữ liệu thời gian thực (real time data warehouse - RTDW) là một hệ thống
phản ánh tất cả các thay đổi trong nguồn dữ liệu của nó (hoặc các nguồn) lên kho dữ liệu,
trong thời gian thực hoặc thời gian gần thực. [6]
1.2.3 Kiến trúc của kho dữ liệu thời gian thực

Hình 1.7: Kiến trúc kho dữ liệu thời gian thực
Gần giống như kiến trúc của kho dữ liệu thông thường, kho dữ liệu thời gian thực
bao gồm các thành phần chính hình vẽ. Khác biệt nằm ở chỗ tiến trình ETL và OLAP của
kho dữ liệu thời gian thực được cải tiến để thực hiện công việc của mình trong thời gian
thực.
9

1.2.4 Một số kỹ thuật xây dựng và quản lý kho dữ liệu thời gian thực
1.2.4.1 Kỹ thuật xử lý song song
Xử lý song song là một quá trình xử lý gồm nhiều tiến trình được kích hoạt đồng thời
và cùng tham gia giải quyết một vấn đề trên hệ thống có nhiều bộ xử lý. Áp dụng chúng một

cách hợp lý vào các thành phần ETL hứa hẹn sẽ đem lại hiệu quả cho hệ thống kho dữ liệu
thời gian thực.
1.2.4.2 Kỹ thuật lô dữ liệu nhỏ (Microbatch)
Kho dữ liệu truyền thống thường thực hiện công việc cập nhật dữ liệu vào buổi đêm,
lượng dữ liệu cần cập nhật trong một thời điểm khá lớn, dẫn tới thời gian xử lý lâu và ảnh
hưởng đến giao dịch của cơ sở dữ liệu liên quan.
Chia dữ liệu cần cập nhật thành các lô nhỏ và tiến hành đồng bộ chúng theo chu kỳ
với một khoảng thời gian hạn định sẽ giải quyết được vấn đề trên. Đây có thể coi là kỹ thuật
cơ sở và là sự lựa chọn tuyệt vời cho hệ thống kho dữ liệu thời gian thực. [2].
1.2.4.3 Phân vùng thời gian thực
Không phải dữ liệu nào cũng cần phải đáp ứng tiêu chí thời gian thực. Chúng ta hoàn
toàn có thể tạo ra các phân vùng chứa các dữ liệu cần thời gian thực dựa vào hoạt động thực
tế của tổ chức/doanh nghiệp. Như vậy, lượng dữ liệu cần phải thực hiện sẽ giảm đi đáng kể
so với việc không phân vùng và thực hiện cập nhật dữ liệu cho mọi dữ liệu.
1.2.4.4 Cơ sở dữ liệu bộ nhớ
Cơ sở dữ liệu bộ nhớ đang được tập trung nghiên cứu mạnh mẽ với các sản phẩm của
một số hãng công nghệ lớn, đại diện là Oracle, Microsoft. Chúng sử dụng cơ chế quản lý dữ
liệu mới cung cấp tốc độ đọc/ghi dữ liệu nhanh. Hệ thống kho dữ liệu thời gian thực sẽ có
thể áp dụng công nghệ này trong một số giai đoạn cụ thể để tăng hiệu năng tính toán.
1.2.4.5 Tiến trình ETL thời gian thực
Trong hệ thống kho dữ liệu nói chung và kho dữ liệu thời gian thực nói riêng, ETL là
tiến trình chính chịu trách nhiệm chiết xuất, làm sạch, chuyển đổi khuôn dạng từ dữ liệu của
hệ thống nguồn, sau đó tải dữ liệu đó vào kho dữ liệu đích. Thời gian đồng bộ các bản ghi
nhanh hay chậm phụ thuộc rất nhiều vào cách thức hoạt động của tiến trình này. Với kho dữ
liệu thời gian thực, để đạt được mục tiêu cập nhật dữ liệu nhanh, cần tập trung nghiên cứu
áp dụng các kỹ thuật và phương pháp cải tiến vào tiến trình ETL.


10


CHƯƠNG 2 – NGHIÊN CỨU TIẾN TRÌNH ETL ỨNG DỤNG
TRONG HỆ THỐNG QUẢN LÝ KHO DỮ LIỆU THỜI GIAN
THỰC
2.1 Giới thiệu về ETL
2.1.1 Khái niệm ETL
Tiến trình ETL (Extract-Transform-Load) là một chức năng cốt lõi của hệ thống kho
dữ liệu, thực hiện chiết xuất dữ liệu từ các hệ thống nguồn, chuyển đổi chúng theo một chất
lượng và tiêu chuẩn thống nhất sao cho dữ liệu từ các nguồn riêng biệt có thể tích hợp được
với nhau. Sau đó thực hiện tải lên kho dữ liệu, phục vụ phát triển các ứng dụng và xây dựng
các báo cáo hỗ trợ ra quyết định cho người dùng cuối [2].
2.1.2 Chức năng của tiến trình ETL
- Xác định (identification) các thông tin liên quan ở nguồn dữ liệu.
- Chiết xuất (extraction) các thông tin cần cập nhật.
- Vận chuyển (transportation) những thông tin này tới khu vực tổ chức dữ liệu.
- Chuyển đổi (transformation) như tùy biến - customization và tích hợp - integration
thông tin từ nhiều nguồn khác nhau vào một định dạng phổ biến.
- Làm sạch (cleaning) tập dữ liệu kết quả, dựa trên cấu trúc của cơ sở dữ liệu và các
quy tắc nghiệp vụ.
- Tải (loading) các dữ liệu vào kho dữ liệu.
2.1.3 Các thành phần của tiến trình ETL
2.1.3.1 Chiết xuất
Công việc đầu tiên cần thực hiện trong tiến trình ETL liên quan đến việc chiết xuất
dữ liệu từ các hệ thống nguồn, với mục tiêu là xác định các tập dữ liệu cần xử lý.
1. Các phương pháp chiết xuất
 Mức Logic
- Đầy đủ: Các dữ liệu được chiết xuất hoàn toàn từ hệ thống nguồn.
- Gia tăng: Tại một thời điểm cụ thể, chỉ có các dữ liệu đã thay đổi kể từ lần cuối
cùng chiết xuất.
 Mức vật lý
- Chiết xuất trực tuyến: Dữ liệu được chiết xuất trực tiếp từ hệ thống nguồn của

chính nó.
11

- Chiết xuất ngoại tuyến: Dữ liệu không được chiết xuất trực tiếp từ hệ thống
nguồn nhưng được xử lý một cách rõ ràng bên ngoài, tại khu vực tổ chức dữ liệu.
2. Một số kỹ thuật chiết xuất dữ liệu
Chiết xuất thông qua nhật ký hoạt động (log file): mỗi hệ quản trị CSDL đều có file
nhật ký hoạt động ghi lại các giao dịch đã được thực thi để có thể khôi phục khi gặp sự cố.
Kỹ thuật này sử dụng thông tin trong log file để chiết xuất các dữ liệu tương ứng cần thiết.
Chiết xuất thông qua triggers: khi xuất hiện một trong các hành động cập nhật trên
thì thủ tục trigger sẽ tự động kích hoạt. chúng ta viết nội dung cho các thủ tục tương ứng với
từng bảng để thực hiện việc chiết xuất.
Chiết xuất bằng các công cụ chụp phát hiện thay đổi (bằng cách so sánh file): so
sánh hai ảnh chụp tại hai thời điểm khác nhau và tìm ra các thay đổi trong đó, xác định được
dữ liệu nào là phát sinh thêm, dữ liệu nào bị sửa đổi và dữ liệu nào không có thay đổi gì.
2.1.3.2 Chuyển đổi
1. Các vấn đề xung đột
Nhìn chung, việc chuyển đổi và làm sạch dữ liệu phải đối phó:
- Xung đột mức lược đồ: xung đột đặt tên, xung đột cấu trúc
- Xung đột mức thực thể: bản ghi bị nhân đôi hoặc có mâu thuẫn
2. Các kiểu chuyển đổi chính
Sửa lại định dạng, Giải mã các trường, Tính toán lại và các giá trị dẫn xuất, Chia tách
các trường đơn, Gộp thông tin, Chuyển đổi bộ ký tự, Chuyển đổi đơn vị đo, Chuyển đổi
Ngày/Giờ, Tổng hợp, Tái cấu trúc khóa, Giải quyết bản ghi trùng
2.1.3.3 Tải
Để thực hiện, có thể có một số cách thức và chúng còn phụ thuộc vào một số loại tải
dữ liệu dưới đây:
- Tải lần đầu: tổng hợp dữ liệu cho tất cả các bảng trong kho dữ liệu cho lần đầu tiên.
- Tải gia tăng: cập nhật các bản ghi có thay đổi hoặc thêm mới các bản ghi phát sinh
một cách định kỳ.

- Làm tươi toàn bộ: xóa hoàn toàn nội dung của một hoặc nhiều bảng và tải lại với dữ
liệu mới.
Kỹ thuật tải dữ liệu
Có 4 kỹ thuật tải dữ liệu chính thường được sử dụng:
12

Tải (Load): Nếu bảng mục tiêu đã tồn tại và có dữ liệu, thực hiện tải các bản ghi
chưa có, bỏ qua những bản ghi đã có. Nếu bảng là trống, lấy toàn bộ dữ liệu được chuyển
đổi để cập nhật vào.
Thêm nối (Append): Nếu dữ liệu đã tồn tại, tiến hành thêm nối các bản ghi đã chuyển
đổi vào bảng. Cơ chế xử lý bản ghi trùng sẽ hoạt động, có thể tùy chọn lưu trữ bản ghi đó
như là một bản sao, hoặc cho phép xóa bản ghi trùng lặp.
Trộn phá hủy (Destructive Merge): Sẽ có sự so sánh giữa dữ liệu được gửi tới và dữ
liệu mục tiêu. Nếu khóa chính của chúng giống nhau, cập nhật dữ liệu đó vào bảng. Nếu
khóa chính chưa có tức là bản ghi đó chưa tồn tại và chỉ cần thêm mới.
Trộn xây dựng (Constructive Merge): Chế độ này khác với chế độ trộn phá hủy ở
trên. Nếu khóa chính của một bản ghi gửi đến giống với khóa một bản ghi đã có, bản ghi đã
có đó sẽ được giữ lại, bản ghi gửi đến được thêm mới vào nhưng đánh dấu là không dùng.
2.1.4 Kiến trúc của tiến trình ETL truyền thống
Kiến trúc của tiến trình ETL truyền thống bao 3 lớp chính: nguồn dữ liệu, khu vực tổ
chức dữ liệu và kho dữ liệu.

Hình 2.4: Tiến trình ETL Chiết xuất – Chuyển đổi – Tải
Có 2 loại kiến trúc chính được sử dụng cho hệ thống ETL: kiến trúc đồng nhất
(homogenous) và kiến trúc không đồng nhất (heterogeneous).
Kiến trúc đồng nhất: Chỉ liên quan đến một nguồn và một cơ sở dữ liệu đích đơn lẻ.
Kiến trúc ETL đồng nhất thường được áp dụng cho kho dữ liệu chủ đề, đặc biệt là tập trung
vào một chủ đề duy nhất.
Kiến trúc không đồng nhất: Một hệ thống trong đó dữ liệu được trích xuất từ nhiều
nguồn. Kiến trúc không đồng nhất thường xuyên được sử dụng cho các kho dữ liệu hơn là

kho dữ liệu chủ đề.
13

2.1.5 Những vấn đề và thách thức
2.1.5.1 Một số vấn đề chung
Tiến trình ETL có các vấn đề chung cần phải đối mặt:
Vấn đề địa lý và ràng buộc thời gian: [8] chỉ ra rằng 90% các vấn đề của kho dữ liệu
xuất phát từ chu kỳ tải hàng loạt dữ liệu vào ban đêm. Với nhiều vấn đề như: đồng thời thực
hiện nhiều công việc nhưng lại có tính hỗn hợp và phụ thuộc lẫn nhau, khoảng thời gian
được gọi là “buổi đêm” bị kéo ngắn lại, thứ tự thực hiện của các thao tác nghiệp vụ hoặc bộ
công việc phù hợp.
Khối lượng dữ liệu lớn: Lượng dữ liệu hoạt động hàng ngày từ nhiều chi nhánh là rất
lớn, nếu không làm tốt công việc lọc ra những dữ liệu cần phải xử lý thì hệ thống sẽ hoạt
động hết sức nặng nề.
Chất lượng dữ liệu: dữ liệu sau khi đưa lên kho phải luôn được làm sạch và có giá trị
với người sử dụng.
Sự phát triển của dữ liệu: hệ thống cần được bảo trì thường xuyên, cungf sự mở rộng
về quy mô, vùng địa lý, hoặc kho dữ liệu được cải tiến để đáp ứng các nhu cầu xây dựng các
báo cáo lớn hơn của tổ chức/doanh nghiệp hoàn toàn có thể xảy ra.
Hoạt động tự động: ETL hoạt động có tính định kỳ trong hệ thống kho dữ liệu, vì
vậy chúng cần được lập lịch và tự động hóa hoạt động của mình.
2.1.5.2 Một số vấn đề trong từng thành phần
Ngoài các vấn đề chung nêu trên, trong các giai đoạn của tiến trình ETL còn có các
vấn đề phát sinh, việc làm tươi kho dữ liệu là một nhiệm vụ khó khăn.
Chiết xuất
- Phải đảm bảo không ảnh hưởng đến hiệu suất của hệ thống nguồn.
- Xác định dữ liệu cần chiết xuất có thể không dễ dàng.
- Làm sao để lấy ra được đúng những bản ghi mong muốn và sắp xếp thứ tự để không
ảnh hưởng đến các giai đoạn tiếp sau.
Chuyển đổi

- Dữ liệu từ nhiều nguồn với nhiều cách thiết kế, định dạng, … khác nhau nên cần xác
định được các tiêu chuẩn, công thức cho việc chuyển đổi.
- Do thời gian hạn chế và lượng dữ liệu lớn nên yêu cầu khu vực tổ chức phải luôn đạt
được sự ổn định và hoạt động hiệu quả.
- Xem xét và sử dụng các cơ chế quản lý, cấp phát bộ nhớ sẽ trở nên quan trọng.
14

Tải
- Lựa chọn cơ chế thêm mới, cập nhật bản ghi cần phải được cân nhắc kỹ.
- Chi phí cho việc thực hiện duy trì chỉ mục và các khung nhìn (view) là khá tốn kém.
2.1.6 Hạn chế của ETL truyền thống
Cập nhật dữ liệu liên tục
ETL trong kho dữ liệu truyền thống bị giới hạn khung thời gian hoạt động vào “ban
đêm”. Hệ thống thời gian thực thì yêu cầu các dữ liệu phải được cập nhật đúng thời gian
quy định lên kho dữ liệu.
Chiết xuất
Một số kỹ thuật chiết xuất dữ liệu như chiết xuất thông qua nhật ký hoạt động, chiết
xuất bằng các công cụ chụp phát hiện thay đổi. Tuy các kỹ thuật này có những ưu điểm tốt
nhưng lại không đáp ứng được vấn đề tốc độ và thời gian thực hiện.
Chuyển đổi
Công nghệ quản lý bộ nhớ cũ có tốc độ khá chậm chạp trong đọc/ghi dữ liệu làm quá
trình này sẽ phải mất nhiều thời gian mới có thể hoàn thành. Mỗi đơn vị thời gian cần xử lý
được nhiều dữ liệu hơn, từ đó phát sinh nhiều hoạt động trên bộ nhớ chính. Việc quản lý và
cấp phát bộ nhớ sẽ trở nên quan trọng.
Tải
ETL thông thường thực hiện tải hàng loạt vào ban đêm, dữ liệu vừa cập nhật chậm so
với thời gian mong muốn. Hạn chế này cần phải được giải quyết trong kho dữ liệu thời gian
thực sao cho dữ liệu phải được cập nhật trong thời gian quy định.
2.2 Giải pháp xây dựng tiến trình ETL cho hệ thống kho dữ liệu thời gian thực.
2.2.1 Phân vùng thời gian thực

Một bảng sự kiện thời gian thực riêng biệt được tạo ra, đi kèm với các bảng chiều
tương ứng. Các bảng trong phân vùng thời gian thực được ưu tiên cập nhật dữ liệu liên tục
trong ngày. Các dữ liệu còn lại vẫn được ETL truyền thống đưa lên vào ban đêm như bình
thường. Phương pháp kết hợp này vừa đảm bảo dữ liệu được đưa lên kho theo thời gian thực
vừa yêu cầu không quá phức tạp.
2.2.2 Phân nhóm dữ liệu cho xử lý song song
Xử lý song song là một quá trình xử lý gồm nhiều tiến trình được kích hoạt đồng thời
và cùng tham gia giải quyết một vấn đề trên hệ thống có nhiều bộ xử lý. Nghĩa là nếu áp
15

dụng xử lý song song vào hệ thống thời gian thực, sẽ có nhiều tiến trình ETL hoạt động
đồng thời, giúp dữ liệu được cập nhật lên kho trong một đơn vị thời gian tăng lên đáng kể.
Kỹ thuật phân nhóm dữ liệu
Đối với lượng dữ liệu lớn, nên phân chia các tập dữ liệu thành các tập nhỏ hơn. Ý
tưởng là sau đó mỗi nhóm dữ liệu sẽ sử dụng một tiến trình ETL để thực hiện xử lý. Tức là
sẽ có nhiều tiến trình ETL chạy trên nhiều bộ xử lý trong cùng một thời điểm. Vào cuối quá
trình này, các nhóm dữ liệu cần được sáp nhập lại và tải vào kho mục tiêu.
2.2.3 Lô dữ liệu nhỏ ETL (Microbatch ETL)
Lô dữ liệu nhỏ ETL cũng gần tương tự như ETL thông thường, khác biệt là dữ liệu
được chia nhỏ theo lô, mức độ thường xuyên có thể hàng giờ hay phút tùy thuộc nhu cầu
thực tế của tổ chức/doanh nghiệp. Những lô này được tiến trình ETL thực hiện cập nhật lên
kho một cách thường xuyên, đáp ứng trong thời gian thực.
Việc chia lô được thực hiện dựa trên các dữ liệu đã chiết xuất, có nhiều tiêu chí để
phân chia như phân chia theo khoảng thời gian (ví dụ toàn bộ dữ liệu có thay đổi trong
khoảng thời gian 5 phút/ một lô), theo lượng dữ liệu (ví dụ 100 bản ghi một lô).
2.2.4 Cơ sở dữ liệu bộ nhớ
Cơ sở dữ liệu bộ nhớ (in memory database - IMDB) là một hệ thống quản lý cơ sở dữ
liệu chủ yếu dựa vào bộ nhớ chính để lưu trữ dữ liệu. [10]
Trong các ứng dụng thời gian thực, những lợi ích của cơ sở dữ liệu bộ nhớ đem lại
nhiều hiệu quả về hiệu năng xử lý. Hiện nay, các hãng công nghệ lớn như Oracle, Microsoft

đang nghiên cứu tích hợp luôn công nghệ này lên các hệ quản trị cơ sở dữ liệu truyền thống
của họ như Oracle Database, MS SQL Server. Hoặc cũng có thể sử dụng các công cụ lập
trình như DotNet của Microsoft để thực hiện chức năng này.
2.2.5 Chiết xuất thời gian thực
Sử dụng Trigger
Với cách thức hoạt động đã được xây dựng sẵn trên các hệ quản trị cơ sở dữ liệu,
trigger có thể thực hiện việc chiết xuất dữ liệu gần như ngay tức thì mà không ảnh hưởng
nhiều đến hoạt động của nguồn dữ liệu.
Để sử dụng kỹ thuật này, một bảng chiết xuất chứa các định danh của bản ghi thay
đổi được tạo ra. Sau đó, các thủ tục trigger tương ứng với các hoạt động INSERT,
UPDATE, DELETE được viết cho từng bảng tương ứng.
Truy vấn song song trong hệ quản trị cơ sở dữ liệu
16

Trong các hệ quản trị cơ sở dữ liệu hiện nay, tất cả đều có hỗ trợ truy vấn song song.
Trong SQL Server, có thể bật tính năng song song bằng cách cấu hình trường degree khi tạo
mới bảng.
2.2.6 Chuyển đổi thời gian thực
Sử dụng kỹ thuật song song.
Để tăng số lượng bản ghi từ các chi nhánh được cập nhật lên kho dữ liệu trung tâm
trong một đơn vị thời gian. Chúng ta có thể chạy song song nhiều tiến trình ETL trong cùng
một thời điểm.
Sử dụng Microbath ETL và Cơ sở dữ liệu bộ nhớ
Theo một cách thức chung, việc áp dụng các công nghệ giúp tăng tốc độ tính toán
của các công thức, thuật toán là khả thi nhất. Với lượng dữ liệu theo lô nhỏ, kết hợp với
công nghệ cơ sở dữ liệu thường trú trên bộ nhớ có thể giải quyết được bài toán trên. Lô dữ
liệu nhỏ giúp việc đưa chúng lên bộ nhớ không yêu cầu chi phí quá lớn về thiết bị phần
cứng. Các cơ chế quản lý dữ liệu mới như có các bảng chứa dữ liệu trên bộ nhớ chính giúp
tốc độ đọc/ghi nhanh hơn rất nhiều. Từ việc thao tác với dữ liệu nhanh chóng hơn, các thao
tác chuyển đổi cũng sẽ được cải thiện đáng kể về mặt tốc độ.

2.2.7 Tải thời gian thực
Tải lô dữ liệu nhỏ
Các dữ liệu được chuyển đổi nhanh với lô dữ liệu nhỏ sẽ được chuyển tới quá trình
tải, đồng nghĩa với quá trình này cũng sẽ thực hiện tải với lô dữ liệu tương ứng. Do số lượng
lô dữ liệu được chia nhỏ nên quá trình đưa chúng lên kho cũng nhanh, không chiếm nhiều
thời gian sử dụng hệ thống. Từ đó, đảm bảo độ sẵn sàng của kho dữ liệu.
Kết luận chương
Dựa trên các lý thuyết đã tìm hiểu tại chương 1, chương 2 đi sâu nghiên cứu về tiến
trình ETL, một trong những thành phần quan trọng nhất của kho dữ liệu và kho dữ liệu thời
gian thực. Với việc phân tích chi tiết về các thành phần, kiến trúc cũng như những vấn đề,
hạn chế của hệ thống ETL thông thường, một giải pháp áp dụng các công nghệ và kỹ thuật
tiên tiến được đề xuất giúp cải tiến tốc độ cập nhật dữ liệu theo thời gian thực lên kho dữ
liệu.


17

CHƯƠNG 3 – XÂY DỰNG MÔ HÌNH KHO DỮ LIỆU THỜI GIAN
THỰC
3.1 Bài toán
Công ty TNHH TM & Dịch vụ Văn hoá Phương Bắc (công ty Phương Bắc), địa chỉ
trụ sở chính tại 110D- Ngọc Hà – Ba Đình – Hà Nội, là một công ty có hệ thống nhiều chi
nhánh trải rộng tại khu vực Hà Nội (3 chi nhánh), Vinh (2 chi nhánh), TP HCM (3 chi
nhánh). Các chi nhánh đều sử dụng Internet để kết nối trực tiếp về máy chủ trung tâm đặt tại
Hà Nội. Với đặc điểm là vừa sản xuất, vừa bán buôn bán lẻ hàng hóa nên việc có thông tin
thời gian thực phục vụ việc lên kế hoạch sản xuất và tiêu thụ hàng hóa là rất cần thiết, đặc
biệt là một số sản phẩm theo mùa, hàng hóa độc quyền.
Yêu cầu đặt ra là xây dựng kho dữ liệu đặt tại máy chủ trung tâm ở Hà Nội, tập hợp
dữ liệu của các chi nhánh, phục vụ nhiều loại báo cáo từ chi tiết đến tổng hợp cho nhiều
phòng ban. Trong đó có các báo cáo về số lượng tồn và doanh số bán hàng cần đảm bảo yếu

tố thời gian thực, quy định là trong 5 phút sau khi có giao dịch phát sinh.
3.2 Xây dựng mô hình kho dữ liệu thời gian thực
3.2.1 Khảo sát hệ thống sẵn có
Hệ thống mạng
Hạ tầng mạng của doanh nghiệp với các chi nhánh được mô như hình dưới:
Máy chủ trung tâm
Máy chủ Vinh 1
Máy chủ Hà Nội 1
Máy chủ Hà Nội 2
Máy chủ Vinh 2
Máy chủ TPHCM 1
Máy chủ TPHCM 2
Máy chủ Hà Nội 2
Máy chủ TPHCM 2

Hình 3.1: Mô hình hệ thống mạng của doanh nghiệp
Ứng dụng
Các ứng dụng như kế toán, quản lý mua bán hàng, đặt hàng, báo cáo kinh doanh
thông minh BI - KPI,… đang hoạt động được xây dựng sẵn trên nền tảng .NET
Cơ sở dữ liệu
18

- MS SQL Server 2008 được sử dụng để lưu trữ cơ sở dữ liệu.
- Số bản ghi hiện có: Chi nhánh lớn nhất 2.537.799 - Chi nhánh nhỏ nhất 753.510
- Số bản ghi phát sinh thêm hàng ngày: Chi nhánh lớn nhất 8.171/ngày- Chi nhánh nhỏ
nhất 4.073/ngày
3.2.2 Thiết kế hệ thống
3.2.2.1 Kiến trúc hệ thống

Hình 3.3: Mô hình kiến trúc hệ thống kho dữ liệu thời gian thực

3.2.2.2 Thiết kế dữ liệu
1. Dữ liệu chủ đề mua bán hàng
Bảng sự kiện này có thể cung cấp các thông tin về doanh số mua, bán hàng, tính toán
các giá trị tồn kho theo các chiều.

Hình 3.4: Sơ đồ kho dữ liệu chủ đề mua bán hàng
19

 Chiều cửa hàng: Chiều này cung cấp thông tin cho các báo cáo như doanh số, tồn
kho,… theo từng cửa hàng.
 Chiều hàng hóa: Chiều hàng hóa lưu các dữ liệu về hàng hóa mà doanh nghiệp có
thực hiện các giao dịch mua bán.
 Chiều kho: Chiều kho lưu các dữ liệu về kho hàng mà doanh nghiệp có thực hiện
các giao dịch mua bán
 Chiều nhân viên: Chiều nhân viên lưu các dữ liệu về nhân viên thực hiện các giao
dịch mua bán.
 Chiều đối tác: Chiều đối tác lưu các dữ liệu về các đối tác (khách hàng, nhà cung
cấp) mà doanh nghiệp có thực hiện các giao dịch mua bán.
2. Dữ liệu chủ đề công nợ
Dữ liệu cho báo cáo tổng hợp công nợ là một hệ thống không quá lớn, được thiết kế
từ các bảng dữ liệu danh mục là Store và DoiTac. Bảng FactCongNo đóng thể hiện số liệu
về công nợ của từng đối tác, theo các tài khoản kế toán tại một thời điểm nào đó.

Hình 3.5: Sơ đồ kho dữ liệu chủ đề công nợ
 Chiều tài khoản: Chiều tài khoản lưu các dữ liệu về hệ thống tài khoản mà doanh
nghiệp sử dụng trong nghiệp vụ kế toán.
Các chiều đối tác và chiều cửa hàng tương tự như dữ liệu chủ đề mua bán hàng.
3.2.3 Xây dựng tiến trình ETL thời gian thực
3.2.3.1 Xác định phân vùng thời gian thực
Dựa trên khảo sát các thành phần sẵn có và các tiến trình nghiệp vụ trong hệ thống,

phân vùng thời gian thực sẽ bao gồm bảng sự kiện FactMuaBanHang và các bảng danh mục
liên quan.
Tại hệ thống nguồn, các bảng VatTuHangHoa, NhomVatTuHangHoa, ChungTu,
KhoanMucChungTu, DoiTuongNghiepVu, Kho, Store, User chứa các thông tin về các giao
dịch mua bán cơ bản hàng ngày được lựa chọn để chiết xuất thời gian thực.
20

3.2.3.2 Phân nhóm dữ liệu cho xử lý song song
Dựa vào đặc điểm của phân vùng thời gian thực là lưu lại các thông tin chính của
giao dịch mua bán hàng. Như vậy, mỗi giao dịch có thể phân chia thành một nhóm. Việc
phân nhóm dữ liệu sẽ được thực hiện cùng với công việc với chiết xuất và được trình bày
trong các phần dưới.
Trong thực tế, lượng dữ liệu của doanh nghiệp hiện nay chưa lớn tới mức cần đến
chạy song song nhiều tiến trình ETL đồng thời. Nhưng thiết kế để mở rộng một cách dễ
dàng khi có nhu cầu trong tương lai là cần thiết.
3.2.3.3 Sử dụng kỹ thuật lô dữ liệu nhỏ ETL (Microbatch ETL)
Lô dữ liệu với 10 bản ghi đạt được hiệu quả tốt nhất, gần như không ảnh hưởng đến
hoạt động của các cơ sở dữ liệu và được lựa chọn. Thực tế, các cửa hàng bán lẻ vẫn thực
hiện các giao dịch một cách liên tục và đồng thời, trong khi kho dữ liệu truy vấn các báo cáo
một cách trơn tru.
3.2.3.4 Chiết xuất
Đầu tiên cần tiến hành đặt ký hiệu cho từng chi nhánh. Sau đó, xây dựng một bảng
thông tin đồng bộ chứa các dữ liệu chiết xuất, có khả năng đánh dấu thứ tự các phát sinh dữ
liệu để sau này đồng bộ theo. Bảng có những thông tin cơ bản như: định danh các chi nhánh,
tên bảng có dữ liệu thay đổi, giá trị của chính bản ghi có thay đổi, kiểu thay đổi của bản ghi
tương ứng.


Hình 3.7: Sơ đồ quan hệ bảng chiết xuất
Trigger được sử dụng cho dịch vụ giám sát hoạt động thời gian thực, mỗi lần các dữ

liệu trong cơ sở dữ liệu có thay đổi, thông tin tương ứng sẽ được ghi lại ngay lập tức.
Tính năng xử lý truy vấn song song của SQL Server cũng được kích hoạt tại hệ quản
trị cơ sở dữ liệu của các hệ thống nguồn. Cấu hình thông qua câu lệnh:
EXEC sp_configure 'max degree of parallelism', 5;
GO
RECONFIGURE WITH OVERRIDE;

21

3.2.3.5 Chuyển đổi
1. Tải dữ liệu lên bộ nhớ chính
Với hệ quản trị cơ sở dữ liệu SQL Server 2008 việc đưa dữ liệu lên bộ nhớ chính một
cách trực tiếp chưa được cung cấp. Công việc này sẽ được thực hiện gián tiếp trong công cụ
lập trình. Dữ liệu được truy vấn và lưu trữ trên DataTable và lưu trữ trên bộ nhớ chính. [11]
2. Xử lý chuyển đổi dữ liệu
Hệ thống của doanh nghiệp đang sử dụng chạy trên cùng một nền tảng công nghệ và
có chung cách thức thiết kế, xây dựng cơ sở dữ liệu nên việc chuyển đổi sẽ không cần phải
xử lý các trường hợp: các kiểu, định dạng khác nhau. Phần chuyển đổi này tập trung vào
làm sạch và tổng hợp vào các bảng sự kiện. Dựa trên một số thuật toán sau:
Thuật toán chuyển đổi kiểu thay đổi
Kiểu thay đổi =
Insert
Kiểm tra sự tồn tại
của bản ghi trong
bảng đích
Kiểm tra sự tồn tại
của bản ghi trong
bảng đích
Chuyển kiểu thay
đổi thành Update

Chuyển kiểu thay
đổi thành Insert
Kiểu thay đổi =
Update
Yes
No
Yes
Yes
Yes
No
No
No

Hình 3.8: Sơ đồ thuật toán chuyển đổi kiểu thay đổi
3.2.3.6 Tải
Việc còn lại chỉ là thực hiện cập nhật dữ liệu đã chuyển đổi lên kho. Kỹ thuật tải gia
tăng với lô dữ liệu nhỏ được lựa chọn sử dụng. Thuật toán tải dữ liệu.
Kiểu thay đổi =
Insert
Gọi phương thức
XayDungTruyVanThemMoi
Yes
No
Insert bản ghi vào bảng
đích
Gọi phương thức
XayDungTruyVanCapNhat
Yes
No
Update bản ghi vào bảng

đích
Xóa bản ghi khỏi
bảng chiết xuất
Kiểu thay đổi =
Update
Gọi phương thức
XayDungTruyVanXoa
Yes
No
Xóa bản ghi khỏi bảng
đích
Kiểu thay đổi =
Delete

Hình 3.9: Sơ đồ thuật toán tải dữ liệu
3.2.4 Cài đặt và triển khai
3.2.4.1 Cài đặt
Dự án xây dựng ứng dụng được đặt tên là DongBoDuLieu, kiểu dự án là Windows
Services. Được tổ chức như sau:
22


Hình 3.10: Tổ chức lớp trong dự án DongBoDuLieu
Sau khi dự án được Build thành công , một file chạy “DongBoDuLieu.exe” sẽ được
sinh ra.
3.2.4.2 Triển khai
Các thành phần như trong phần kiến trúc của hệ thống:
- Nguồn dữ liệu: hệ thống sẵn có.
- Máy chủ kho dữ liệu: sử dụng CPU Intel Xeon E5520 2.27 GHZ, bộ nhớ RAM 8GB,
dung lượng ổ cứng 500GB, được cài đặt Windows Server 2008R2 và SQL Server

2008R2. Máy chủ cấu hình mở cổng 1433 và cấu hình quyền truy cập kết nối cơ sở
dữ liệu từ xa.
- Thành phần ETL: cài đặt Windows Service, người sử dụng phải dùng file
InstallUtil.exe trong .Net Framework 4.0 tại thư mục
C:\Windows\Microsoft.NET\Framework\v4.0.30319 và file DongBoDuLieu.exe.
- Máy trạm: các máy trạm có thể là máy tính desktop, laptop, máy tính bảng, điện thoại
thông minh được cài đặt các ứng dụng báo cáo.
3.2.5 Kết quả thử nghiệm
Đảm bảo thời gian thực: Theo thực nghiệm, lượng dữ liệu trung bình được truyền
khoảng 500 bản ghi tại một chi nhánh lên kho dữ liệu trong 1 phút ứng với 1 tiến trình ETL
hoạt động, tương đương với khoảng 33-35 hóa đơn mua bán trung bình. Cơ bản là đã đáp
ứng được thời gian mong muốn của doanh nghiệp.
Tự động hoạt động: Dịch vụ này hoạt động khá ổn định, luôn hoạt động 24/24h, có
khả năng tự kích hoạt khi mở windows và định kỳ kiểm tra và đưa dữ liệu lên kho trong thời
gian thực. Không cần sự can thiệp của con người.
Tự động xử lý khi gặp lỗi: dữ liệu được xử lý theo lô nhỏ nên mỗi lần gặp lỗi, lượng
dữ liệu đó đủ nhỏ để không làm ảnh hưởng nhiều đến hệ thống.
23

KẾT LUẬN
Những vấn đề đã giải quyết được
Luận văn tập trung nghiên cứu, tìm hiểu các khái niệm và kỹ thuật về kho dữ liệu nói
chung và kho dữ liệu thời gian thực nói riêng. Từ đó có áp dụng thử nghiệm trong bài toán
hệ thống dữ liệu siêu thị.
- Tìm hiểu tổng quan về khái niệm, kiến trúc, đặc điểm và một số kỹ thuật chính của
kho dữ liệu và kho dữ liệu thời gian thực, từ đó chỉ ra sự khác biệt giữa chúng.
- Đi sâu nghiên cứu và đề xuất giải pháp cho việc xây dựng tiến trình ETL thời gian
thực, thành phần quan trọng nhất của hệ thống kho dữ liệu thời gian thực.
- Lập trình hiện thực hóa tiến trình ETL thời gian thực dựa trên các công nghệ và mô
hình đề xuất.

- Triển khai áp dụng cho một doanh nghiệp cụ thể với kết quả khả quan.
Những hạn chế của luận văn
Do hạn chế về mặt thời gian nghiên cứu cũng như trình độ học thuật, nên một số vấn
đề được phân tích, nghiên cứu trong luận văn chắc chắn vẫn còn thiếu sót.
Luận văn cũng mới chỉ tập trung giải quyết và hiện thực hóa tiến trình ETL thời gian
thực. Còn các thành phần khác vẫn chưa được tối ưu để hệ thống được hoàn thiện hơn.
Chúng tôi hy vọng những hạn chế, thiếu sót của luận văn này sẽ được khắc phục
trong các nghiên cứu sâu hơn. Rất mong nhận được nhiều ý kiến đóng góp về từ các quý
thầy cô và đồng nghiệp.
Hướng nghiên cứu phát triển
- Tiếp tục nghiên cứu thêm về kho dữ liệu và kho dữ liệu thời gian thực.
- Phát triển thêm các kỹ thuật để ứng dụng cho việc xây dựng các báo cáo nhanh và
báo cáo thời gian thực thông qua tìm kiếm nhanh dữ liệu như Time series, Sequential
Models, Bayesian Models, …

×