2.8.1. Lƣợc đồ kho dữ liệu
Lược đồ là một tập hợp các đối tượng cơ sở dữ liệu bao gồm bảng, view, index,…Lược đồ kho dữ liệu hay được sử dụng: lược đồ hình sao, lược đồ bông tuyết rơi, lược đồ kết hợp,…
a. Lược đồ hình sao
Trong sơ đồ hình sao, dữ liệu được xác định và phân loại theo 2 kiểu: - Các sự kiện được tổ chức thành bảng Fact.
- Phạm vi, hay các chiều của dữ liệu, được tổ chức thành các bảng Dimension. Ưu điểm của sơ đồ hình sao:
- Hỗ trợ rất đa dạng các câu truy vấn và xử lý khá hiệu quả.
- Phù hợp với cách mà NSD nhận và sử dụng dữ liệu và qua đó làm cho dữ liệu được hiểu trực quan hơn.
- Nguyên lý cơ bản của sơ đồ hình sao là một dạng dư thừa dữ liệu cải thiện sự thực hiện các truy vấn. Sự phi chuẩn hóa có thể coi là sự tiền kết nối các bảng để cho các ứng dụng không phải thực hiện công việc kết nối, làm giảm thời gian thực hiện.
- Khóa của bảng sự kiện được tạo bởi những khóa của các bảng chứa thông tin theo từng phạm vi. Tất cả các khóa đều được xác định với cùng một chuẩn đặt tên.
Hình 6. Lược đồ hình sao
b. Lược đồ bông tuyết rơi
Sơ đồ hình tuyết rơi là một sự mở rộng của sơ đồ hình sao tại đó mỗi cánh sao không phải là một bảng Dimension mà là nhiều bảng.
Sơ đồ hình tuyết rơi cải thiện năng suất truy vấn, tối thiểu không gian đĩa cần thiết để lưu trữ dữ liệu và cải thiện năng suất nhờ việc chỉ phải kết hợp những bảng có kích thước nhỏ hơn thay vì phải kết hợp những bảng có kích thước lớn lại không chuẩn hóa. Nó cũng làm tăng tính linh hoạt của các ứng dụng bởi sự chuẩn hóa và ít mang bản chất theo chiều hơn. Nó làm tăng số lượng các bảng và làm tăng tính phúc tạp của một vài truy vấn cần có sự tham chiếu tới nhiều bảng.
Hình 7. Lược đồ bông tuyết rơi
c. Lược đồ kết hợp
Là kết hợp giữa sơ đồ hình sao và sơ đồ hình tuyết rơi. Một vài cơ sở dữ liệu và các công cụ truy vấn của người sử dụng đầu 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à sơ đồ hình sao bởi vì nó là một mô hình dữ liệu quan hệ nhưng lại được thiết kế để hỗ trợ mô hình dữ liệu đa chiều là điểm cốt lõi của OLAP.
2.8.2. Mô hình dữ liệu đa chiều
Bản chất đa chiều của các câu hỏi trong nghiệp vụ được phản ánh trong thực tế chẳng hạn như những người quản lí thị trường không được thoả mãn với câu hỏi theo một chiều đơn giản, thay vào đó là những câu hỏi phức tạp. Một cách để quan sát một mô hình dữ liệu nhiều chiều là nhìn nó như một hình khối. Hình sau thể hiện câu truy vấn theo bốn chiều: khách hàng, dịch vụ, thời gian.
Thời gian trả lời một truy vấn nhiều chiều phụ thuộc vào số lượng các ô được thêm vào trong quá trình thực hiện. Khi số lượng chiều tăng thì số ô của khối này tăng theo cấp số mũ. Bên cạnh đó, những truy vấn đa chiều đều liên quan tới những dữ liệu ở mức cao và dữ liệu tổng. Vì vậy, giải pháp để xây dựng một cơ sở dữ liệu đa chiều có hiệu quả là phải kết hợp từ trước tất cả các tổng con logic và các tổng theo tất cả các chiều. Sự kết hợp trước này đặc biệt có giá trị khi các chiều mang tính phân cấp.
Sự phân cấp về kích thước, quản lí dữ liệu thưa hơn và sự kết hợp trước là quan trọng vì chúng làm giảm đáng kể kích cỡ của cơ sở dữ liệu và những yêu cầu tính toán các giá trị. Một thiết kế như vậy loại bỏ việc phải kết hợp nhiều bảng và cung cấp sự truy nhập trực tiếp và nhanh tới các câu trả lời vì vậy cải thiện đáng kể tốc độ trong việc thực hiện các truy vấn đa chiều.
Các thành phần chính Các dữ kiện (Facts)
o Miêu tả các vùng kinh doanh
o Không thay đổi khi nó đã được sinh ra
o Được lưu tại một cấp thô nào đó Các chiều (Dimensions)
o Thông tin tham chiếu qua đó các dữ kiện có thể được cấu trúc cho việc phân tích
o Định nghĩa các phân cấp Và các khối đa chiều (Cubes)
o Một khối có thể có nhiều chiều
o Một khối bao gồm nhiều ô dữ liệu
2.8.3. Bảng sự kiện
Bảng sự kiện điển hình có hai kiểu cột, chúng chứa đựng những sự kiện số (thường gọi là thước đo), và chứa khóa của các bảng dimension. Bảng sự kiện chứa đựng những sự kiện mức chi tiết hoặc những sự kiện mà đã được tổng hợp lại. Bảng sự kiện mà chứa sự kiện tổng hợp thường được gọi là những bảng tóm tắt. Bảng sự kiện thông thường chứa đựng những sự kiện với cùng mức của sự tổng hợp. Tuy nhiên hầu hết những sự kiện liên kết tất cả các chiều, nó có thể liên kết với 1 số chiều hoặc không liên kêt.
Bảng sự kiện là bảng chứa dữ liệu chi tiết nên có số lượng bản ghi rất lớn và còn thường xuyên được cập nhật, bổ sung dữ liệu, trong khi đó các bảng dimension thường cố định nói đúng hơn là có sự thay đổi không đáng kể theo thời gian. Bảng theo chiều chứa đựng các thuộc tính có thể được sử dụng như các tiêu chí tìm kiếm và thường có kích thước nhỏ hơn rất nhiều, rất quen thuộc với người sử dụng từ trước.
2.8.4. Bảng chiều
Các chiều là cách mô tả chủng loại mà theo đó các dữ liệu số trong khối được phân chia để phân tích. Khi xác định một chiều, chọn một hoặc nhiều cột của một trong các bảng liên kết (bảng chiều). Nếu ta chọn các cột phức tạp thì tất cả cần có quan hệ với nhau, chẳng hạn các giá trị của chúng có thể được tổ chức theo hệ thống phân cấp đơn. Để xác định hệ thống phân cấp, sắp xếp các cột từ chung nhất tới cụ thể nhất. Ví dụ: một chiều thời gian được tạo ra từ các cột năm, qúy, tháng, ngày.
Mỗi cột trong chiều góp phần vào một cấp độ cho chiều. Các cấp độ được sắp đặt theo nét riêng biệt và được tổ chức trong hệ thống cấp bậc mà nó thừa nhận các con đường hợp logic cho việc đào sâu (drill_down). Ví dụ: chiều thời gian được miêu tả ở trên cho phép người dùng khối đào sâu từ năm tới qúy, từ qúy tới tháng và từ tháng tới ngày.
Chiều có phân cấp:
Phân cấp là cột sống của việc gộp dữ liệu hay nói một cách khác là dựa vào các phân cấp mà việc gộp dữ liệu mới có thể thực hiện được. Phần lớn các chiều đều có một cấu trúc đa mức hay phân cấp. Nếu chúng ta làm những quyết định về giá sản phẩm để tối đa doanh thu thì chúng ta cần quan sát ở những dữ liệu về doanh thu sản phẩm được gộp theo giá sản phẩm, tức là chúng ta đã thực hiện một cách gộp. Khi cần làm những quyết định khác thì chúng ta cần thực hiện những phép gộp tương ứng khác. Như vậy có thể có quá nhiều tiến trình gộp. Thế nên các tiến trình gộp này cần phải được thực hiện một cách rất dễ dàng, linh hoạt để có thể hỗ trợ những phân tích không hoạch định trước. Điều này có thể được giải quyết trên cơ sở có sự trợ giúp của những phân cấp rộng và sâu.
2.8.5. Bảng sự kiện tổng hợp Bảng tổng hợp
Bảng tổng hợp nhằm mục đích trả lời nhanh các câu hỏi thường gặp. Các bước tạo bảng tổng hợp:
– 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.
Bảng sự 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
– Ướ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
2.9. Tổ chức dữ liệu vật lý
2.9.1. Phân vùng
Phân vùng (partition) là kĩ thuật được sử dụng trong kho 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 thoả mãn những yêu cầu do người thiết kế đặt ra. Khi phân vùng, người thiết kế chọn điều kiện phân vùng, ví dụ như ngân sách quyết toán thu số liệu chẳng hạn, người thiết kế sẽ phân vùng theo năm. Khi dữ liệu được đưa và kho sẽ được lưu trên các phân vùng nhớ dành cho từng năm. Khi có truy vấn theo năm, giả sử truy vấn dữ liệu trong ba năm là 1999, 2000, 2001 các truy vấn sẽ chỉ thực hiện trên các vùng nhớ dành cho ba năm này chứ không tiến hành truy vấn trên toàn bộ vùng nhớ lưu dữ liệu quyết toán thu số liệu.
2.9.2. Chỉ mục
Đánh chỉ mục (Index) là kỹ thuật phổ biến nhằm tăng hiệu suất các truy vấn dữ liệu. Chuyên gia thiết kế sẽ chọn trường phù hợp của một bảng để đánh chỉ số, khi đó trường chỉ số đó sẽ được lưu ra một bảng tham chiếu, được sắp xếp sẵn. Khi có truy vấn dữ liệu, thời gian truy vấn sẽ giảm do dữ liệu cần truy vấn đã được sắp xếp từ trước.
Các bảng thông thường trong database đều thuộc loại bảng không phân vùng. Chỉ mục phân vùng dùng cho các bảng lớn, lưu các mục chỉ mục của chỉ mục này có thể nằm trên nhiều segments. Việc phân vùng sẽ cho phép một chỉ mục có thể trải rộng trên nhiều tablespaces, giảm bớt tình trạng quá tải khi chỉ mục được truy xuất và quản lý. Các chỉ mục phân vùng hay được sử dụng cùng với các bảng phân vùng để tăng cường hiệu năng và dễ quản lý. Chỉ mục phân vùng sẽ được tạo ra ứng với mỗi bảng phân vùng.
Đánh chỉ số kiểu Bitmap
Một cách khác để tăng công suất thực hiện các truy vấn là sử dụng kỹ thuật đánh chỉ số theo kiểu Bitmap nhằm tăng tốc độ truy vấn dữ liệu. Mỗi lần dữ liệu được tải vào, tất cả dữ liệu được chuyển đổi thành các chuỗi bitmap, những chuỗi này sau đó được nén lại và được lưu trữ trên đĩa. Khác với việc đánh chỉ số thông thường, những chỉ số không chỉ tới dữ liệu được lưu trữ ở nơi khác mà tất cả dữ liệu được lưu trữ trong cấu trúc chỉ số này. Tuy nhiên phương thức đánh chỉ số vẫn sẽ gặp khó khăn trong việc truy vấn dữ liệu nếu phạm vi dữ liệu là quá lớn.
So sánh giữa B-TREE và Bitmap Index
Bảng trên đây so sánh giữa B-TREE và Bitmap Index, Bitmap index được sử dụng nhiều hơn trong trường hợp các cột có giá trị khác nhau rất ít.
Việc cập nhật các cột làm khoá trong Bitmap index thì sẽ chậm hơn bởi vì Bitmap index sử dụng phương pháp khoá đoạn bitmap (bitmap segment level locking), trong khi đó trong một B-TREE index khoá thực hiện trên các điểm vào tương ứng với từng row riêng lẻ trên table.
Bitmap index có thể thực hiện các hoạt động với các toán hạng logic OR. Khi đó Oracle Server sử dụng hai phân đoạn bitmap để thực hiện việc so sánh từng bit trong toán hạng OR và trả về kết quả là một chuỗi Bitmap. Tính chất này cho phép sử dụng hiệu quả chuỗi Bitmap trong câu lệnh truy vấn có sử dụng toán hạng logic OR.
Nói chung B-TREE index thích hợp hơn trong môi trường OLTP cho việc truy vấn các bảng động. Trong khi đó, Bitmap index thích hợp hơn trong môi trường DSS có sử dụng nhiều câu lệnh truy vấn phức tạp trên các table lớn (large) và tĩnh (static).
Chƣơng 3: PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI KHO DỮ LIỆU KHÁCH HÀNG SỬ DỤNG DỊCH VỤ VIỄN THÔNG
Tóm lược nội dung:
Nội dung chính của chương này bao gồm: Tìm hiểu hệ thống nguồn CCBS; xác định yêu cầu phân tích; thiết kế mô hình dữ liệu dựa trên yêu cầu phân tích và CSDL của hệ thống nguồn CCBS; thiết kế mô hình vật lý; thiết kế trích xuất chuyển đổi và nạp số liệu từ hệ thống CCBS vào DWH; xây dựng công cụ báo cáo, tra cứu động và quản trị hệ thống; cài đặt và triển khai DWH.
3.1. Phân tích
Trong phần phân tích, tác giả sẽ tập trung vào 2 vấn đề chính:
Tìm hiểu hệ thống nguồn CCBS đang được triển khai tại các Viễn thông tỉnh: Tìm hiểu hoạt động và cơ sở dữ liệu của hệ thống nguồn.
Xác định các yêu cầu phần tích: Yêu cầu xuất phát từ nhu cầu cùa Viễn thông tỉnh và yêu cầu cần có của một DWH viễn thông.
3.1.1. Tìm hiểu hệ thống nguồn CCBS
- Hệ thống Tính cước và Chăm sóc khách hàng (CCBS - Customer Care and Billing System) đã và đang triển khai tại các đơn vị trực thuộc của Tổng công ty Bưu Chính Viễn Thông Việt Nam (VNPT) phù hợp với các quy trình nghiệp vụ của các doanh nghiệp viễn thông nhất là quy trình hiện hành của VNPT về nguyên tắc phát triển thuê bao, tính cước, in hóa đơn, quản lý nợ, các dịch vụ về chăm sóc khách hàng và cắt mở thuê bao dịch vụ tự động, điều hành sửa chữa báo hỏng,…
- Hệ thống CCBS thực hiện các chức năng tính cước, chăm sóc khách hàng, phục vụ công tác điều hành sản xuất kinh doanh của các doanh nghiệp viễn thông. - Hệ thống CCBS gồm 4 khối chức năng chính:
o Tính cước, chăm sóc và hỗ trợ khách hàng (BCSS – Billing Customer Support System). Khối này gồm các module:
Quản lý Phát triển thuê bao.
Tính cước
In hóa đơn
Quản lý nợ
Giải quyết khiếu nại
o Cắt mở thuê bao, dịch vụ tự động
o Quản lý điều hành sửa chữa báo hỏng.
Khách hàng Khách hàng Khách hàng
Khách hàng Khách hàngKhách hàngKhách hàng
Call Center
Call Center Điểm giao dịchĐiểm giao dịch WebWeb EmailEmail
Hệ thống tính cước & hỗ trợ khách hàng
Hệ thống Quản lý
mạng ngoại vi thuê bao dịch vụ tựHệ thống Cắt mở động Hệ thống Điều hành sửa chữa báo hỏng Hệ thống CCBS tổng thể Hình 9. Hệ thống CCBS tổng thể
3.1.1.1. Phát triển thuê bao
Tiếp nhận và quản lý các yêu cầu khách hàng, thanh toán tiền hợp đồng, hoàn thiện hồ sơ, quản lý danh bạ của khách hàng liên quan đến việc đăng ký, sử dụng tất cả các loại dịch vụ viễn thông. Bao gồm các chức năng chính:
o Tiếp nhận yêu cầu: Thực hiện việc tiếp nhận và nhập các yêu cầu khách hàng liên quan đến việc đăng ký và sử dụng dịch vụ viễn thông.
o Thanh toán tiền hợp đồng: Thực hiện thanh toán tiền lắp đặt, đăng ký dịch vụ gia tăng,…
o Điều hành thi công: Giao phiếu cho các đơn vị thi công, cập nhật kết quả hoàn công,…
o Hoàn thiện hồ sơ: Thực hiện hoàn thiện các hợp đồng, chuyển vào danh bạ quản lý khách hàng.
o Quản lý danh bạ: Thực hiện quản lý danh bạ khách hàng, thanh toán, danh bạ thuê bao, danh bạ trang vàng, danh bạ nội bộ,…
3.1.1.2. Xử lý dữ liệu cước
Xử lý cước thô CDR để phân hệ Tính cước tính tiền (charging) cho thuê bao, bao gồm các chức năng chính:
o Thu thập dữ liệu từ các nguồn
o Chuyển đổi số liệu
o Chuẩn hóa số liệu
o Kiểm tra tính đúng đắn của dữ liệu (Với dữ liệu phục vụ các hệ thống tính cước các chức năng được thực hiện bao gồm xử lý trùng, xử lý chờm, ghép cuộc và đánh mã cho các cuộc gọi)