Các bước mô hình kho dữ liệu
• Độ thô dữ liệu (Data Granularity)
• Lưu trữ dữ liệu
• Các phân cấp thuộc tính
• Truy vấn KDL và OLAP
• Các lỗi thường gặp khi xây dựng 1 KDL
71 trang |
Chia sẻ: haohao89 | Lượt xem: 1832 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Các kỹ thuật mô hình hóa các chiều cơ sở, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 5: Kỹ thuật mô hình hoá
các chiều cơ sở
Giới thiệu
• Các bước mô hình kho dữ liệu
• Độ thô dữ liệu (Data Granularity)
• Lưu trữ dữ liệu
• Các phân cấp thuộc tính
• Truy vấn KDL và OLAP
• Các lỗi thường gặp khi xây dựng 1 KDL
• Ví dụ
Các tầng
• Tầng khái niệm Conceptual layer – dữ
liệu và xử lí dữ liệu
• Tầng logic Logical layer – dữ liệu và xử
lí kinh doanh
• Tầng vật lý Physical layer – cấu trúc
bên trong
• Các chủ thể, dữ kiện và mối quan hệ
Tầng trong hệ thống thông tin
Conceptual Layer
Logical Layer
Physical Layer Physical Layer
Logical Layer
Operational systems Warehouse
Product Dimension
Manufacturer
Brand
Product
Các thành phần chính
• Phân cấp thuộc tính của các chiều
• Mối quan hệ
• Dữ kiện
Account Year
Time Dimension
Account Week
Region
Location Dimension
Store
Product_key
Store_key
Acct_Week_key
Sales Data
District
Các tiến trình mô hình hóa
• Xác định yêu cầu của người dùng
• Hướng dẫn người dùng hiểu về công
nghệ KDL
Các tiến trình mô hình hóa
• Định nghĩa mô hình kinh doanh
• Mô hình hóa các chiều
• Chọn mô hình lưu trữ
Conceptual Model
Physical Model
Logical Model
Các công cụ và phương pháp
• Chọn các công cụ với giao diện đồ họa
– Tạo lập tài liệu
– Định nghĩa các liên kết và ràng buộc
• Phương pháp luận
• Mô hình hoá
• Xây dựng sản phẩm
Tóm lược các lược dồ
–Sao
–Bông tuyết
–Đa sao
Mô hình hóa các chiều
• Mô hình dựa vào nội dung của dữ liệu
• Mô hình với các tổng hợp cần thiết
• Mô hình phải đáp ứng yêu cầu phân
tích sâu, và tổng hợp
• Có thể không chuẩn hóa - star
• Có thể chuẩn hóa - snowflake
• Xây dựng các phân cấp
Mô hình các bảng tóm tắt
• Định nghĩa các bảng tóm tắt trước khi thiết kế
• Dùng các bảng riêng để chứa các tổng hợp/tóm tắt
SALES FACTS
Sales$ Region Month
10,000 North Jan 97
12,000 South Feb 97
11,000 North Jan 97
15,000 West Mar 97
18,000 South Feb 97
20,000 North Jan 97
10,000 East Jan 97
2,000 West Mar 97
SALES BY MONTH/REGION
Month Region Tot_Sales$
Jan 97 North 41,000
Jan 97 East 10,000
Feb 97 South 40,000
Mar 97 West 17,000
SALES BY MONTH
Month Tot_Sales
Jan 97 51,000
Feb 97 40,000
Mar 97 17,000
Khi nào thì tóm tắt dữ liệu
• Phân tích và đưa ra quyết định để truy cập
trực tiếp các tổng hợp có sẵn hay tính toán
tại thời điểm thực hiện câu hỏi.
• Việc tính toán các tỉ số nén cho phép quyết
định nên chọn phương án nào
Queried Rows Displayed Rows Calculation Ratio
1,341 22 22/11341 0.0164
234 22 22/234 0.09
30 22 22/30 0.73
20 22 22/20 1.1
Các công cụ
• Logic Works
• Micro Strategy
• Oracle Designer/2000
Data Mart Designer
• Prism Solutions
• Smart Corporation
Ví dụ Kho dữ liệu: Grocery Store
• Một dây chuyền các cửa hàng tạp phẩm
nằm rãi rác 3 bang ở Mỹ
• Các kho: các siêu thị với các cửa hàng
như tạp phẩm, bơ sữa, thịt, thức ăn
lạnh, bánh mỳ, đồ uống, ..
• Khoảng 60.000 sản phẩm tại mỗi kho
Ví dụ điển hình của KDL trích từ KIM 96
Cơ sở
• Dữ liệu sẵn sàng cho việc xây dựng KDL
– Dữ liệu từ các hệ thống nguồn: OLTP
– Được làm sạch
• Xây dựng kho DL:
– Mô hình các tiến trình kinh doanh nào ?
– Định nghĩa độ thô của dữ liệu để phù hợp với KDL
– Mô hình hoá cấu trúc KDL
– Biến đổi dữ liệu theo cấu trúc Kho DL
– Tính toán các tổng hợp và các dữ kiện suy dẫn
Các tiến trình mô hình
• KDL miêu tả khung nhìn của một tiến
trình kinh doanh
• Sự quyết định mô hình tiến trình kinh
doanh nào có tác động quan trọng
– Nhằm vào các vấn đề gì ?
– Các câu hỏi được đặt ra ?
– Các thông tin cần thiết
– KDL trung tâm hay các chợ dữ liệu
Tiến trình kinh doanh
• Dữ liệu OLTP
– Point of sales (POS) data: Dữ liệu bán hàng
– Dữ liệu nhà cung cấp
– Dữ liệu kế toán
– Dữ liệu khách hàng
– Sự quảng cáo
Mục đích: Xây dựng một CSDL hoạt động
hàng ngày
Ví dụ về độ thô
• Độ thô nào cho dữ liệu POS? Các khả năng ?
– Toàn tác đơn theo từng khách hàng từng sản
phẩm tại từng kho
– Toàn tác nhóm theo từng khách hàng từng sản
phẩm tại từng kho
– Toàn tác nhóm hàng ngày theo từng kho từng sản
phẩm
– Toàn tác nhóm hàng tuần theo từng kho từng sản
phẩm
– Toàn tác nhóm hàng ngày từng sản phẩm tại từng
vùng
Độ thô
• Toàn tác nhóm hàng ngày theo từng kho
từng sản phẩm
– Dữ kiện theo từng khách hàng từng sản phẩm tại
từng kho không phù hợp cho việc phân tích thị
trường
– Dữ kiện theo từng tuần, hay tháng cũng không
phù hợp vì sẽ không phân tích được sự khác
nhau giữa các ngày
• Sự quyết định độ thô nào phụ thuộc vào tiến
trình kinh doanh và các câu hỏi cần trả lời
Tầng 2-Các phương pháp lưu trữ dl
• Dữ liệu được dùng cho việc phân tích
trực tuyến phải được lưu trữ theo một
loại CSDL để có thể truy cập bởi công
cụ OLAP
• Dùng loại nào trong:
– MOLAP
– ROLAP
– HOLAP
– Các chợ dữ liệu
Ví dụ: Kho DL Grocery
• Các CSDL quan hệ
• CSDL quan hệ được sử dụng trong OLTP tại
các công ty
• Các chuyên gia CNTT tại các công ty đã làm
quen nhiều với CSDL quan hệ
• ROLAP được dùng rộng rãI
ROLAP được dùng để lưu trữ KDL Grocery
Các buớc thực hiện
• Chọn các tiến trình kinh doanh cho mô hình
– Sales
• Chọn cấp độ của tiến trình kinh doanh
– SKU by Store by Promotion by Day
– Chọn độ thô
• Chọn các chiều
– Time, Store, Promotion, Product
• Chọn các dữ kiện
– Dollar_sales, unit_sales, dollar_cost,
customer_count
Ước luợng dung luợng
• Time dimension: 2 years = 730 days
• Store dimension: 300 stores reporting each day
• Product dimension: 30,000 products, only 3000 sell
per day
• Promotion dimension: 5000 combinations, but a
product only appears in one combination per day
• Number of fact records: 730*300*3000*1 =
657,000,000
• Number of fields: 4 key + 4 fact = 8 fields
• Total DB size: 657,000,000 * 8 fields * 4 bytes = 21
GB
Dữ kiện (Facts) và Chiều
• Dữ kiện:
– Miêu tả các vùng kinh doanh
– Không thay đổi khi nó đã được sinh ra
– Được lưu tại một cấp thô nào đó
• Chiều:
– Thông tin tham chiếu qua đó cỏc sự kiện
có thể được cấu trúc cho việc phân tích
– Định nghĩa các phân cấp
Ví dụ về dữ kiện và chiều
• Kho Grocery
• Dữ kiện:
– POS: sự kiện bán hàng
• Chiều:
– Thời gian (Time)
– Kho (Store)
– Quảng cáo (Promotion)
– Sản phẩm (Product)
Chọn lược đồ nào cho Grocery ?
• Lược đồ bông tuyết có độ chuẩn hóa
cao
• Sử dụng ít không gian đĩa hơn
• Việc truy cập các bảng phức tạp hơn
bởi phải tham chiếu đến nhiều bảng
• Lược đồ hình sao dễ quản trị hơn, và
đáp ứng yêu cầu trả lời nhanh câu hỏi
Chọn luợc đồ hình sao cho KDL Grocery
Các thuộc tính
• Quyết định chọn các trường nào để đưa
vào bảng dữ kiện và chiều
• Các phân cấp thuộc tính
• Các cấp độ tổng hợp
• Xem xét các khả năng của câu hỏi và
các ràng buộc của các bản
• Các tác động của các toán tử OLAP
Ví dụ của bảng dữ kiện
• Chứa dữ liệu thích hợp cho vùng kinh
doanh
• Bao gồm các khoá của các chiều tham
chiếu
• Dữ liệu được lấy từ hệ thống OLTP: dữ
liệu bán hàng POS
• Độ thô: sản phẩm được bán hàng ngày
tại từng kho
• Định nghĩa nơi lưu trữ các tổng hợp
Ví dụ của bảng dữ kiện
• Các thuộc tính dữ kiện bán hàng:
Keys
Time_key
Product_key
Store_Key
Promotion_key
Facts
Dollars_sales
Units_sales
Dollars_cost
Customer_count
Ví dụ của bảng dữ kiện
• Khoá của bảng dữ kiện được hợp thành
từ bốn khóa ngoài của các bảng chiều
• Các dữ kiện được lấy từ hệ thống bán
hàng POS
• Các thuộc tính suy dẫn dựng cho việc
phân tích
• Dung lượng: ???
Ví dụ của chiều: thời gian
• Chiều thời gian (Time) là một chiều cơ
bản có trong tất cả các KDL
• Các thuộc tính phân cấp tự nhiên:
– Năm->Tháng ->Tuần ->ngày
• Có cấu trúc không đơn giản do:
– Có nhiều loại phân cấp, đa phân cấp (Multi
hierarchies)
Ví dụ của chiều: thời gian
Ví dụ của chiều: thời gian
Dim ension Time
Year
Quarter
Month
Day
Holiday
W eek
Period
Ví dụ của chiều: Sản phẩm
• Nhận dạng mỗi sản phẩm bởi SKU
(Stock Keeping Unit)
• Dựa trên các mã sản phẩm phổ thông
(UPC - Universal Product Code (UPC) )
• Bao gồm các mã đặt biệt cho việc lưu
trữ sản phẩm như thịt tươi,..
• Lưu miêu tả của các sản phẩm
• Dung lượng, các nhóm sản phẩm, các
nhánh,.
Ví dụ của chiều: sản phẩm
Ví dụ của chiều: sản phẩm
Dim ension Product
Department
Category
Subcategory
Product
Diet Type
Ví dụ của chiều: sản phẩm
• Được quản lý bởi tổng kho và được
phân bố đến các kho
• Định nghĩa loại của phân cấp
• Chuẩn hóa và không chuẩn hóa
• Thường có thêm nhiều thuộc tính phụ
có trong chiều sản phẩm
Ví dụ của chiều: kho
• Miêu tả mỗi kho của hệ thống liên kết
các của hàng tạp phẩm
• Chiều địa lí
• Được tạo ra tại tổng kho bởi việc thu
thập thông tin từ các kho
• Có hai loại phân cấp: phân cấp địa lý và
vùng bỏn hàng
• Các thuộc tính miêu tả kho: dung
lượng, vị trí,.
Ví dụ của chiều: kho
Ví dụ của chiều: kho
• Phân cấp địa lí:
– Store->Store_zip->Store_county-
>Store_state
• Phân cấp vùng bán hàng
– Store->sales_district->sales_region
Ví dụ của chiều: kho
Dim ension Store
Region
District
Town
Store
Ví dụ của chiều: Quảng cáo
• Miêu tả điều kiện để một sản phẩm được
bán, ví dụ: giảm giá tạm thời, sự trợ giúp của
báo,..
• Được gọi là chiều nguyên nhân: yếu tố được
nghĩ tới để thay đổi việc bán sản phẩm
• Các điều kiện liên quan mật thiết: giảm giá,
hay phiếu thưởng
• Để phân tích các sản phẩm được bán tăng
lên trong quá trình quảng cáo
• Không dùng để phân tích các sản phẩm nào
không bán được.
Ví dụ của chiều: quảng cáo
Ví dụ của chiều: quảng cáo
• Giành được trong giai đoạn khuyến mãi
• Có hay không các sản phẩm sự tụt
xuống ngay sau khi kết thúc quảng cáo
• Có hay không việc bán các sản phẩm
tăng lên trong quá trình quảng cáo
• Có hay không việc bán các sản phẩm
làm tăng việc buôn bán tổng thể so với
giai đoạn trước
Ví dụ của bảng dữ kiện
• Các thuộc tính dữ kiện bán hàng:
Keys
Time_key
Product_key
Store_Key
Promotion_key
Facts
Dollars_sales
Units_sales
Dollars_cost
Customer_count
Các thuộc tính phụ trợ cho việc phân tích
Ví dụ của bảng dữ kiện
• Thêm vào:
– Dollar_sales, uni_sales, và dollar_cost, và
phụ thuộc vào các chiều
– Có khả năng tính toán các tổng hợp trong
tất cả các chiều, ví dụ: việc bán hàng hay
chi phí từng tuần, từng tháng, từng nhóm
mặt hàng, từng vùng
– Customer_count không phụ thuộc hoàn
toàn vào các chiều
Ví dụ của customer_count:
• Customer_count theo từng tuần từng sản phẩm từng
kho có thể tính toán được
• Customer_count theo từng tuần, từng vùng bán hàng
có thể tính toán được
• Customer_count theo từng tuần, từng nhúm( sản
phẩm hàng theo từng kho không thể tính toán được:
– Lượng hàng hóa cho sản phẩm A tại kho 1 có
customer_count là 20
– Lượng hàng hóa cho sản phẩm B tại kho 1 có
customer_count là 60
– Lượng hàng hóa cho hai sản phẩm A và B tại kho 1 có
customer_count nằm giữa 20 va 80
Thay đổi customer_count:
• Thay đổi độ thô bằng việc lưu lại các
toàn tác đơn theo từng customer->
customer_count có thể tính theo từng
nhóm
• Tính customer_count theo phân cấp
của chiều kho: store brand,
subcategory,…
Các bảng tổng hợp
• Mục đích: trả lời nhanh các câu hỏi thường
gặp
• Các bước:
– Nhận diện các câu hỏi thường gặp
– Nhận diện các chiều và các tổng hợp tương ứng
– Định nghĩa phân cấp của các tổng hợp
– Tạo một cách có chọn lựa các bảng dữ kiện tổng
hợp tính toán trước
– Tạo các bảng chiều tổng hợp
Nhận diện các câu hỏi thường gặp
• Tạo một danh sách các câu hỏi thường gặp
• Tiến hành trong giai đoạn thiết kế KDL
• Căn cứ trên hệ thống OLTP và các báo cáo
• Nhưng: được theo dõi và tiến hành trong quá
trình thao tác của KDL: xem thử các user
đang làm gì !
• Tác động của user với các khả năng
• Thiết lập danh sách
Ví dụ nhận diện các câu hỏi
• Lượng hàng hoá bán được của bánh mì
trong suốt các giai đoạn nghỉ so với các giai
đoạn khác
• Lượng hàng hoá bán được trong các quận
phía tây so sánh với các quận phía đông
• Lượng hàng hoá bán được thức ăn nhanh
trong 24 tháng gần đây
• Sự có lợi của quảng cáo bằng báo chí so với
radio, tv…
Nhận diện các chiều
• Chọn các chiều liên quan thường xuyên
đến các câu hỏi
• Xem xét dung lượng của các bảng tổng
hợp
Ví dụ nhận diện các chiều
• Các chiều:
– Sản phẩm (Product) ?
– Store ?
– Time ?
– Promotion ?
Chọn chiều nào ?
Nhận diện các phân cấp
• Với một chiều, tạo (các) phân cấp căn
cứ trên các thuộc tính sẵn có
• Xem xét các câu hỏi thích hợp
• Xem xét các dữ liệu sẵn có
• Xem xét các thuộc tính của bảng dữ
kiện
Phân cấp Product
Dim ension Product
Departm ent
Category
S ubcategory
P roduct
D iet Type
Phân cấp Store
Dim ension Store
Region
District
Town
Store
Phân cấp Time
Dimension Time
Year
Quarter
Month
Day
Holiday
W eek
Period
Các bảng dữ kiện tổng hợp
• Nhận diện các bảng dữ kiện yêu cầu
• Các tổng hợp ở thứ tự cao có thể được tính
toán từ các tổng hợp thứ tự thấp,
– ví dụ: lượng hàng bán được theo từng tháng có
thể tính được dựa trên lượng hàng bán được từng
ngày trong tháng.
• Ước lượng dung lượng
• Kiểm tra sự sẵn có của dữ liệu
• Kiểm tra các bảng tổng hợp chiều cần thiết
Ví dụ bảng dữ kiện tổng hợp
• Các bảng dữ kiện tổng hợp được yêu
cầu:
– Tổng hợp 1 chiều:
• Từng loại sp theo từng kho theo từng ngày
• Từng loại sp theo từng kho theo từng tháng
• Từng loại sp theo từng kho theo từng năm
– Tổng hợp 2 chiều:
• Từng loại sp theo từng kho theo từng ngày
• Từng loại sp theo từng pho theo từng tháng
• Từng loại sp theo từng quận theo từng năm
Ví dụ bảng dữ kiện tổng hợp
• Các bảng dữ kiện tổng hợp này lấy
được từ bảng dữ kiện cơ sở
• Kiểm tra các thuộc tính phụ:
– Dollar_sales ?
– Unit_sales ?
– Dollar_cost ?
– Customer_count ?
Liên kết giữa dữ kiện và chiều
• Liên kết giữa bảng dữ kiện với các
bảng chiều trong lược đồ hình sao
• Liên kết giữa các bảng dữ kiện tổng
hợp căn cứ trên các phân cấp của các
bảng chiều
• Định nghĩa các thuộc tính phân cấp tại
các bảng chiều
Các bảng dữ kiện tổng hợp
• Các bảng dữ kiện phụ có thể được
thêm vào khi có yêu cầu cần thiết
• Số lượng và dung lượng của các bảng
dữ kiện có thể bùng nổ tổ hợp
• Kiểm tra các bảng dữ kiện nào là cần
thiết và có thể tính toán được
Các bảng dữ kiện tổng hợp
• Tính theo các chiều
• Product: theo category, theo..
• Store: theo district, theo region,
• Time: month, year
Tổng hợp 1 chiều
• Category theo Store theo ngày
• Region theo Product theo ngày
• Theo tháng theo product và theo Store
• Toàn bộ các mặt hàng theo kho theo
ngày
Truy vấn bản dữ kiện tổng hợp
• Các câu hỏi được chuyển sang dạng lệnh
SQL
• Ví dụ:
– Trình bày số lượng hàng bán được theo loại tại
kho A vào ngày đầu năm 2003 dựa vào bảng dữ
kiện co sở:
Select category_description,sum(sales_dollars)
From base_sales_fact,product,store,time
Where base_sales_fact.product_key=product.product_key
And base_sales_fact.store_key=product.store_key
And base_sales_fact.time_key=product.time_key
And store.city=“A” and time.day=“January 1 2003”
Group by category_description
Truy vấn bảng dữ kiện tổng hợp
• Nếu bảng tổng hợp category đã tồn tại
Select category_description,sum(sales_dollars)
From category_sales_fact,product,store,time
Where
category_sales_fact.product_key=product.product_key
And category_sales_fact.store_key=product.store_key
And category_sales_fact.time_key=product.time_key
And store.city=“A” and time.day=“January 1 2003”
Group by category_description
• Category_sales_fact và chiều tương
ứng category_product thay thế cho
base_sales_fact và chiều product
Truy vấn bảng dữ kiện tổng hợp
• Đọc câu hỏi và chuyển sang câu hỏi
tổng hợp sẵn có
• Siêu dữ liệu cung cấp thông tin của các
bảng tổng hợp có sẵn
• Sự tồn tại của các bảng tổng hợp là
trong suốt đối với người dùng
• Có thể xây dựng các câu hỏi thống kê
Truy vấn bảng dữ kiện tổng hợp
• Thay thế bảng và các chiều cơ sở bằng
các mảng và chiều tổng hợp
• Sắp xếp các bảng tổng hợp
• Bắt đầu từ độ thụ chi tiết nhất
Chi phí quản lí các view