TẠO BẢNG SỰ KIỆN

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xử lý phân tích trực tuyến OLAP và ứng dụng trong khai thác kho dữ liệu Luận văn ThS Công nghệ thông tin 1 01 10 (Trang 85 - 89)

4.4. CÀI ĐẶT MINH HOẠ

4.4.1 TẠO KHO DỮ LIỆU THƯƠNG MẠI ĐIỆN TỬ

4.4.1.2 TẠO BẢNG SỰ KIỆN

Sau khi những bản ghi của bảng chiều được tải và cập nhật, bảng sự kiện sẽ được nạp dữ liệu mới. Bảng sự kiện chứa tất cả các khoá chính của các bảng chiều và được sử dụng như là khoá ngoại trong bảng sự kiện để tạo mối liên kết với các bảng chiều. Bảng sự kiện không có khoá chính của nó mà lấy tập khoá chính của các bảng chiều làm khóa chính để phân biệt các bản ghi trong nó.

(LUAN.VAN.THAC.SI).Xu.ly.phan.tich.truc.tuyen.OLAP.va.ung.dung.trong.khai.thac.kho.du.lieu.Luan.van.ThS.Cong.nghe.thong.tin.1.01.10(LUAN.VAN.THAC.SI).Xu.ly.phan.tich.truc.tuyen.OLAP.va.ung.dung.trong.khai.thac.kho.du.lieu.Luan.van.ThS.Cong.nghe.thong.tin.1.01.10(LUAN.VAN.THAC.SI).Xu.ly.phan.tich.truc.tuyen.OLAP.va.ung.dung.trong.khai.thac.kho.du.lieu.Luan.van.ThS.Cong.nghe.thong.tin.1.01.10(LUAN.VAN.THAC.SI).Xu.ly.phan.tich.truc.tuyen.OLAP.va.ung.dung.trong.khai.thac.kho.du.lieu.Luan.van.ThS.Cong.nghe.thong.tin.1.01.10

Bảng BANHANG_FACT được lấy dữ liệu chủ yếu từ các bảng nguồn Order, OderDetail và một số bảng khác. Việc tạo lập dữ liệu cho bảng BANHANG_FACT được thực hiện nhờ một số bảng trung gian để chuyển đổi dữ liệu và cập nhật dữ liệu mới. Các bảng được sử dụng bao gồm:

BanHang_Source Tạo bảng dữ liệu nguồn giả định. Dữ liệu của bảng này được lấy từ các bảng Order, OderDetail và một số bảng khác trong CSDL của hệ tác nghiệp.

BanHang_Temp Bảng lưu dữ liệu của bảng Source lần cập nhật trước, dùng để so sánh phát hiện ra những bản ghi mới.

BanHang_Staging Bảng chứa dữ liệu mới được cập nhật từ hệ thống tác nghiệp sau đó thực hiện quá trình chuyển hoá dữ liệu và thao tác khoá đại diện. Dữ liệu được chuyển tới DW sau khi mọi thao tác được thực hiện.

BANHANG_FACT Bảng sự kiện về bán hàng trong kho dữ liệu

Bảng 4.3 Các bảng được sử dụng để tải dữ liệu cho bảng BANHANG_FACT Ngoài ra để minh hoạ cho một số thao tác chuyển đổi và tải dữ liệu vào trong bảng sự kiện, cần sử dụng một số bảng chiều sau:

DMSANPHAM Bảng chiều danh mục các sản phẩm DIM_TIME Bảng chiều thời gian

DMPTTT Bảng chiều phương thức thanh toán

Bảng 4.4 Một số bảng chiều minh hoạ việc cập nhật dữ liệu cho bảng FACT Nhận xét về cấu trúc các bảng trung gian:

Không có sự khác nhau giữa cấu trúc của các bảng BanHang_Source, BanHang_Temp. Vì vậy, đây là một phương pháp để trích chọn dữ liệu từ hệ thống nguồn chuyển hoá thành dữ liệu không làm ảnh hưởng tới hệ thống nguồn. Bảng BanHang_Staging được sử dụng để chèn thêm chiều khoá đại diện tới những bản ghi trong bảng sự kiện. Do đó, bảng BanHang_Staging có

thêm một số trường khoá đại diện, sau khi thực hiện các thao tác chuyển đổi thì các trường khóa đại diện này sẽ được chuyển vào kho.

Quá trình chuyển dữ liệu vào bảng BANHANG_FACT được thực hiện như sau:

- Chuyển dữ liệu của các hệ tác nghiệp vào bảng BanHang_Source:

Insert into [DW_TMDT].dbo.[BanHang_Source] (MaDonHang, MaKH, MaSP, MaNCC, NgayThang, TenPTTT, MaNganHang, SoLuong,

DonGia,ThanhTien)

Select a.OrderNo, a.CustomerID, b.ProductID, b.CompanyID, a.OrderDate, a.SettleMode, a.BankCode, b.Quantity, b.UnitPrice, b.SubTotal

From [TMDT].dbo.[Order] a, [TMDT].dbo.[OrderDetail] b Where a.OrderNo=b.OrderNo

- So sánh dữ liệu trong bảng BanHang_Source và BanHang_Temp để tìm ra những bản ghi mới và đưa vào bảng BanHang_Staging:

Insert into BanHang_Staging (MaDonHang, MaKH, MaSP, MaNCC, NgayThang, TenPTTT, MaNganHang, SoLuong, DonGia,ThanhTien) Select MaDonHang, MaKH, MaSP, MaNCC, NgayThang, TenPTTT, MaNganHang, SoLuong, DonGia,ThanhTien

From BanHang_Source Where MaDonHangNot In (Select MaDonHang From BanHang_Temp)

Tại bảng BanHang_Staging, ta sẽ thực hiện các thao tác biến đổi và chuyển hoá dữ liệu cho phù hợp cấu trúc dữ liệu trong kho, cập nhật khoá đại diện cho các bảng chiều. Dữ liệu được chuyển tới DW sau khi mọi thao tác đã được thực hiện.

- Cập nhật khoá đại diện cho bảng BanHang_Staging, ví dụ với chiều thời gian và chiều phương thức thanh toán:

+ Cập nhật khoá đại diện cho chiều thời gian:

(LUAN.VAN.THAC.SI).Xu.ly.phan.tich.truc.tuyen.OLAP.va.ung.dung.trong.khai.thac.kho.du.lieu.Luan.van.ThS.Cong.nghe.thong.tin.1.01.10(LUAN.VAN.THAC.SI).Xu.ly.phan.tich.truc.tuyen.OLAP.va.ung.dung.trong.khai.thac.kho.du.lieu.Luan.van.ThS.Cong.nghe.thong.tin.1.01.10(LUAN.VAN.THAC.SI).Xu.ly.phan.tich.truc.tuyen.OLAP.va.ung.dung.trong.khai.thac.kho.du.lieu.Luan.van.ThS.Cong.nghe.thong.tin.1.01.10(LUAN.VAN.THAC.SI).Xu.ly.phan.tich.truc.tuyen.OLAP.va.ung.dung.trong.khai.thac.kho.du.lieu.Luan.van.ThS.Cong.nghe.thong.tin.1.01.10

Update BanHang_Staging Set TimeID=B.TimeID From BanHang_Staging A INNER JOIN Time_Dim B ON A.NgayThang=B.NgayThang

+ Cập nhật khoá đại diện cho chiều phương thức thanh toán:

Update BanHang_Staging Set MaPTTT=B.MaPTTT From BanHang_Staging A INNER JOIN DMPTTT B ON

B.TenPTTT=A.SettleMode And B.MaNganHang=A.BankCode

- Chuyển dữ liệu từ bảng BanHang_Staging vào bảng BANHANG_FACT trong kho:

Insert into BANHANG_FACT ( MaKH, MaSP, MaNCC, TimeID, MaPTTT, SoLuong, DonGia, ThanhTien)

Select MaKH, MaSP, MaNCC, TimeID, MaPTTT, SoLuong, DonGia, ThanhTien

From BanHang_Staging

- Chuyển các bản ghi mới trong bảng BanHang_Staging vào bảng BanHang_Temp:

Insert into BanHang_Temp (MaDonHang, MaKH, MaSP, MaNCC, NgayThang, TenPTTT, MaNganHang, SoLuong, DonGia,ThanhTien) Select MaDonHang, MaKH, MaSP, MaNCC, NgayThang, TenPTTT, MaNganHang, SoLuong, DonGia,ThanhTien

From BanHang_Staging

- Xoá dữ liệu trong bảng BanHang_Staging:

TRUNCATE TABLE SanPham_Staging

- Xoá dữ liệu trong bảng BanHang_Source để chuẩn bị cho lần cập nhật tiếp theo:

TRUNCATE TABLE SanPham_Source

Quá trình cập nhật dữ liệu vào kho được thực hiện theo định kỳ bằng cách lập lịch trong hệ thống.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xử lý phân tích trực tuyến OLAP và ứng dụng trong khai thác kho dữ liệu Luận văn ThS Công nghệ thông tin 1 01 10 (Trang 85 - 89)

Tải bản đầy đủ (PDF)

(107 trang)