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Ị 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.
Trang 1HỌ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
Trang 2Luậ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
Trang 3MỞ ĐẦ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)
Trang 4Sau 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
Trang 5CHƯƠ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
Trang 66 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
Trang 71.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
Trang 8về 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
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
Trang 91.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
Trang 10đị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
Trang 111.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
Trang 12CHƯƠ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ó
Trang 13- 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: