Chào mừng đến với BIS Đăng nhập | Đăng ký | Trợ giúp
trong Tìm kiếm

OLAP-Kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

Bài cuối 06-17-2018 10:38 AM của pencil91. 21 trả lời.
Trang 1 trong số 1 (22 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 04-28-2011 10:29 PM

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    OLAP-Kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    OLAP (OnLine Analytical Processing) with SQL SERVER

     Nguyễn Văn Chức - chuc1803@gmail.com

     Trong công nghệ kho dữ liệu (Data Warehouse Technology), OLAP là kỹ thuật để truy xuất dữ liệu chủ yếu trong kho dữ liệu. Dữ liệu trong DW được tổ chức dưới dạng các khối dữ liệu đa chiều (Multi Dimensional Cube) và OLAP được dùng để phân tích trên dữ liệu khối (cube).

    Bài viết này trình bày cách triển khai thực hiện kỹ thuật OLAP trên DBMS SQL Server phiên bản 2005 hoặc cao hơn.

    1.Giải thích một số thuật ngữ

    Dưới đây tóm lược các thuật ngữ được sử dụng trong bài viết:

    Data Warehouse (DW): Được xem là tập các cơ sở dữ liệu hướng chủ đề, có tính lịch sử được tích hợp từ nhiều nguồn dữ liệu qua các quá trình trích lọc, hợp nhất, chuyển đổi, làm sạch.

    Dữ liệu khối (Data Cube): Dữ liệu trong kho dữ liệu được thể hiện dưới dạng đa chiều (Multi Dimension) gọi là khối (cube). Mỗi chiều mô tả một đặc trưng nào đó của dữ liệu. Ví dụ với Data Cube bán hàng thì chiều hàng hóa (Item) mô tả chi tiết về hàng hóa, chiều thời gian (time) mô tả về thời gian bán hàng, chiều chi nhánh (Branch) mô tả thông tin về các đại lý bán hàng,…

     Để rõ hơn về Data Cube, hình dưới đây minh họa Data Cube của dữ liệu bán hàng từ bảng dữ liệu (Spreadsheet) sang dữ liệu dạng khối với 3 dimensions là: Location (Cities), Time (Quarters) và Item (Types)


    Lược đồ hình sao (Star Schema): Đây là mô hình biểu diễn dữ liệu của DW, lược đồ hình sao về cơ bản gồm có bảng sự kiện (Fact Table) và các bảng chiều (Dimension table). Fact table đùng để theo dõi các biến động của dữ liệu, cấu trúc của Fact table gồm các khóa ngoại đó là các khóa chính của cả bảng chiều (Dimension table). Dimension Table là các bảng mô tả các đặt trưng của các chiều như chiều thời gian, chiều khách hàng, chiều hàng hóa,…

     Dưới đây minh họa lược đồ hình sao của bài toán bán hàng. Đây cũng là dữ liệu dùng để minh họa trong phần tiếp theo khi thực hiện OLAP trên SQL Server. Trong đó Fact table là Sales và 4 Dimension tables là time (chiều thời gian) , item (chiều hàng hóa) , location (chiều bị trí) và branch (chiều chi nhánh)

     

    Measure (độ đo): Là đại lượng có thể tính toán được trên các thuộc tính của fact table. Đây là mục tiêu của OLAP và phải xác định trước khi tiến hành phân tích. Ví dụ như tổng tiền bán hàng của một chi nhánh, doanh thu của từng mặt hàng theo quí,…

    Phân cấp (Hierarchies): Khái niệm này mô tả sự phân cấp thứ bậc (mức độ chi tiết của dữ liệu). Ví dụ đối với chiều thời gian, ta có thực bậc như sau: day<week<month<quarter<year. Tương tự đối với chiều location ta có thứ bậc street<city<province_or_state<country. Trong khi phân tích dữ liệu chúng ta rất cần khái niệm này để tổng hợp hay chi tiết từng hạng mục dữ liệu trong DW.


     

    2. Mô tả ứng dụng phân tích OLAP

    Bài toán mô tả trong phần này là bài toán bán hàng, gồm có 1 Fact table là Sales và 4 Dimension table là time, item, location và branch (Xem lược đồ hình sao trên).

    Fact Table (Sales): Lưu giữ các biến động về quá trình bán hàng, gồm các khóa ngoại của 4 dimension tables và 2 thuộc tính là giá bán (dollars_ sold) và số lượng bán (units_sold)

    Các dimension table:

    Time: lưu giũ thông tin về thời gian bán hàng.

    Location: Lưu giữ thông tin về vị trí

    Branch: Lưu trữ thông tin về chi nhánh

    Item: Lưu trữ thông tin về hàng hóa

    Mục đích mô tả hoạt động OLAP để phân tích hoạt động bán hàng của một doanh nghiệp.

    3. Triển khai OLAP trong SQL Server

    Lưu ý: Để có công cụ phân tích OLAP, bạn phải cài đặt SQL Server 2005 (2008) phiên bản Developer hoặc phiên bản Enterprise Edition đầy đủ và khi cài đặt nhớ chọn mục “SQLServer Database Services”“Analysis Services”. Công cụ cho phép thực hiện OLAP là “SQL Server Business Intelligence Development Studio - BIDS”. Khi cài SQL Server các phiên bản trên thì BIDS sẻ được tự động cài đặt.

    Các bước thực hiện:

    Khởi động SQL Server Management Studio và tạo CSDL có tên DW như sau và nhập vào các bảng một số records để phân tích.


    Khởi động SQL Server Business Intelligence Development Studio


     

    Tạo một Analysis Services Project mới có tên “OLAP_DW


     

    Trong của sổ Solution Explorer của Project OLAP_DW, bấm phím phải chuột vào Data Source để tạo một bộ kết nối đến dữ liệu dùng cho phân tích.


     

    Xác định các tham số kết nối đến kho dữ liệu có tên “DW” đã tạo ra trong SQL Server Management Studio.


     

     

     Đặt tên cho Data Source vàm bấm Finish để hoàn thành việc kết nối đến cơ sở dữ liệu.

     Tạo Data Source View để lấy các bảng dữ liệu cần thiêt cần cho phân tích. Bấm phím phải chuột vào Data Source View trong của sổ Solution Explorer chọn New Data Source View


     

    Xác định nguồn dữ liệu (Data Source) cần lấy là DW mới vừa tạo ra ở bước trước


    Chọn Next và chọn các bảng cần cho phân tích


    Chú ý: Nếu bạn muốn chọn bảng Fact và các bảng Dimension liên quan đến bảng Fact thì chỉ cần chọn Fact Table đưa qua khung bên phải và bấm nút "Add Related Tables" để tự động lấy các bảng Dimensions liên quan.

    Sau khi hoàn thành, các bảng Fact và Dimension như sau:


    Sau khi tao Data Source và Data Source View ta tạo dữ liệu khối cho phân tích bằng cách bấm chuột phải lên Cube trong Solution Explorer và chọn New Cube

     


     Chọn Next và chọn nguồn dữ liệu cho Khối (DW), hệ thống sẽ tự động dò tìm fact và Dimension Tables


    Kết quả như sau:


    Bấm Next để thiết lập chiều thời gian. Chú ý, thời gian là một chiều rất quan trọng trong kho dữ liệu nói chúng và phân tích OLAP. Vì vậy nếu bạn không xác định chiều thời gian thì hệ thống sẽ tự động tạo ra một chiều thời gian để quản lý.


     

    Bấm Next để xác định các độ đo (Measure) cho phân tích. Nhắc lại rằng độ đo là các đại lượng phản ảnh mục tiêu phân tích, tính toán. Đó là các phép toán trên thuộc tính có thể tính toán trong bảng Fact.


    Bấm Next, hệ thống sẽ tự động phát hiện các cấu trúc phân cấp (Hierarchies) trong các Dimesion Tables


     Xem lại các chiều trong khối


     

    Đặt tên khối (DW)và bấm finish để sinh ra khối. Khối dữ liệu với các chiều được sinh ra


     

    Sau khi tạo ra khối dữ liệu cho phân tích, để thực thi OLAP ta bấm phím phải chuột vào tên project trong Solution Explorer và chọn Deploy


     

    Project được thực thi thành công như sau


     

    Sau khi thực thi xong project, để thực hiện các phân tích OLAP phục vụ cho công tác quản lý, bấm phím phải chuột vào Cube trong Solution Explorer chọn Browse để xuất hiện mà hình phân tích:


     

     Màn hình phân tích OLAP như sau:

    Panel bên trái chứa các Measure và các Dimensions đã định nghĩa khi xây dựng khối.

    Panel bên phải chia làm 2 cửa sổ, cửa sổ phía trên dùng để xác định các điều kiện để phân tích, cửa sổ phía dưới chứa kết quả các measure khi ta kéo thả (drag and drop) các measure từ panel bên trái qua. Tùy theo mục đích phân tích mà chúng ta xác lập các biểu thức phân tích cho phù hợp.        

    Ví dụ với thiết lập như dưới đây có nghĩa là yêu cầu cho biết số lần (Sales Count) và tổng số lượng (Unit Sold) hàng mà chi nhánh Danang đã bán.


    Thiết lập dưới đây cho biết Mặt hàng của hãng Intel đã được bán bao nhiêu lần với tổng số lượng bao nhiêu tại chi nhánh HCM


     

     

    Màn hình thiết kế OLAP rất dễ sử dụng và linh hoạt, bạn có thể kéo thả các Dimension và các Measure từ Panel bên trái sang panel bên phải. Ví dụ ta có thể kéo thả thuộc tính Branch Name trong Dimension Branches sang panel bên phải và hệ thống sẽ cho biết số lượng và số lần bán các sản phẩm theo từng chi nhánh như sau:


     

     Tùy theo nhu cầu phân tích dữ liệu, bạn có thể  tạo ra các lát cắt (slice) dữ liệu trên nhiều chiều khác nhau để sinh ra các tổng hợp dữ liệu cần thiết cho nhu cầu phân tích dữ liệu trong kho rất nhanh chóng và tiện lợi. Hình dưới đây cho biết số lượng và số lần bán các mặt hàng theo từng chi nhánh dựa trên lát cắt 2 chiều Branches và Items

     
    Các tab Dimension Usage, Caculations, KPIs, Actions, Partitions, Perspectives, translations được dùng để mở rộng khả năng phân tích của OLAP. 
    Ngoài kỹ thuật phân tích OLAP, SQL Server Business Intelligence Development Studio còn cung cấp các kỹ thuật để khai phá dữ liệu như Regression, Association, Decision tree, Time Series, Clustering.. trong mục Mining Structure rất mạnh và tiện lợi để xây dựng các mô hình khai phá dữ liệu (sẽ trình bày ở bài viết khác)

      Xem Video minh họa OLAP tại đây

     

    All comments please send to chuc1803@gmail.com. Thank you and Welcome!

    • Điểm chủ đề: 170
  • 05-03-2011 06:33 PM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Cảm ơn đã chỉ dẫn thật cụ thể và dễ hiểu. Hồi trước học về Data Warehoues và OLAP nhưng chưa triển khai thử bao giờ nên cũng khó hình dung. Bài viết rất có ích đối với nhiều người quan tâm đến DW và OLAP.
    Thanks the Author,
     
    • Điểm chủ đề: 35
  • 05-10-2011 09:20 PM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Đọc Data Warehouse và OLAP trên lý thuyết nếu không thực hành thì rất khó hình dung. Cảm ơn tác giả đã Post Tutorial rất chi tiết về phân tích OLAP.
     
    • Điểm chủ đề: 20
  • 06-16-2011 11:12 PM trả lời

    • hungpvp
    • 200 thành viên năng nổ nhất
    • Tham gia 06-16-2011
    • Điểm 40

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Mình đang tìm hiểu về lĩnh vực DW. Bài viết quá hữu ích. Đọc lý thuyết khó mà hình dung được. Thanks again!
    • Điểm chủ đề: 20
  • 10-14-2011 10:13 AM trả lời

    • myhuong
    • 500 thành viên năng nổ nhất
    • Tham gia 10-14-2011
    • Điểm 20

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Bài viết hướng dẫn về OLAP quá tuyệt, cảm ơn tác giả.
    Một diễn đàn rất hữu ích và nhiều bài viết có giá trị về Data Mining. Hy vọng sẽ được học hỏi nhiều hơn nữa từ mọi người.
    Chân thành cảm ơn,
     
    Từ khóa đại diện: , ,
    • Điểm chủ đề: 20
  • 02-08-2012 11:52 PM trả lời

    • huyenrua
    • 200 thành viên năng nổ nhất
    • Tham gia 02-08-2012
    • Điểm 70

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    trường hợp là bh em có csdl ở ms access rồi.em muốn sử dụng cái csdl này như cái DW mình tạo cho dự án này thì phải làm ntn ạ.em đang rất cần câu trả lời? T_____________T .Mong anh chị giúp đỡ@import url(data:text/css,);
    • Điểm chủ đề: 35
  • 02-09-2012 10:38 AM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Chào em,
    Nếu em đã có DL trong Access được thiết kế theo mô hình của DW (Gồm FactTable và các DimensionTable) thì em có thể chuyển dữ liệu đã có vào MS SQL SERVER thông qua chức năng Import. Tuy nhiên khi chuyển qua SQL SERVER em vào Diagram để kiểm tra lại các mối quan hệ giữa FactTable và các DimensionTable có còn đúng hay không. Nếu OK rồi thì em có thể dùng để triển khai OLAP
    Chúc em thành công,
     
    • Điểm chủ đề: 35
  • 02-09-2012 09:51 PM trả lời

    • huyenrua
    • 200 thành viên năng nổ nhất
    • Tham gia 02-08-2012
    • Điểm 70

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Vâng em cảm ơn anh ạ.Nhưng khi thực hiên  Data Source view  đến đoạn lấy các bảng dữ liệu cần dùng  : chọn Fact Table đưa qua khung bên phải và bấm nút "Add Related Tables" để tự động lấy các bảng Dimensions liên quan=> thì em ko thấy xuất hiện các bảng liên quan mặc dù trong access em có tạo relationship cho chúng và cũng chưa chọn những bảng có liên quan đến fact table qua bên phải .Em phải làm gì để có được relationship giữa các bảng khi thực hiện Data Source view  ạ? Mong anh giúp đỡ ngay ạ T________T em đang rất cần!
    @import url(data:text/css,);
    • Điểm chủ đề: 35
  • 02-09-2012 10:20 PM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Sau khi chuyển DL từ Access vào SQL SERVER thì thường có một số thay đổi như Hủy khóa chính (trường hợp này em phải thiết lập lại khóa chính) và không duy trì các mối quan hệ giữa các bảng (Trường hợp này vào Relationship Diagram trong SQL SERVER để thiết lập lại)
    Chúc em thành công,
     
    • Điểm chủ đề: 35
  • 05-29-2012 03:03 PM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Anh chucnv ơi,
    em làm theo hướng dẫn bài viết nhưng khi tiến hành process cube thì bị lỗi như sau. Anh check giúp em với, em đang cần gấp, em dùng sql server 2008. Cám ơn anh!
     
    • Điểm chủ đề: 35
  • 05-29-2012 11:01 PM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Chào em,
    Anh Attach Database của em và thực hiện OLAP trên SQL Server 2008 R2 khi Deploy không thấy báo lỗi gì.
    Em xem lại các tham số của BIDS SERVER bằng cách right click trên Project muốn Deploy, chọn Properties, trong mục Configuration properties chọn mục Deployment xem lại các tham số trong mục Target gồm Server và Database đúng chưa.
    Chúc em thành công
     
    • Điểm chủ đề: 35
  • 05-31-2012 02:36 PM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Cám ơn anh! Em đã khắc phục được rồi ạ. Mong anh sẽ ngày càng có nhiều bài viết hay và bổ ích như thế này nữa.
    • Điểm chủ đề: 20
  • 06-07-2012 05:43 PM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Anh chuvn ơi,
    Anh có thể viết một bài hướng dẫn về cách sử dụng các tab Caculations và KPIs trong cube được không ạ? Rất cám ơn anh! 
    • Điểm chủ đề: 35
  • 07-02-2012 10:42 PM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Em mắc lỗi gần giống bạn hxvampire. Em Deployment Failed khi deploy project. Mong anh giúp đỡ.
    • Điểm chủ đề: 20
  • 10-17-2012 01:47 PM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Thầy ơi , có thể cho em 1 cơ sở dữ liệu mẫu như của thầy để em thực hành ví dụ được không ạ ?
     
    • Điểm chủ đề: 20
  • 03-18-2013 09:05 PM trả lời

    • toduhai
    • Không xếp hạng
    • Tham gia 03-18-2013
    • Điểm 20

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Anh Chucnv ơi em đang nghiên cứu về Data warehouse trên sql server để làm chuyên đề thực tập ra trường anh ạ. A có thể gửi cho em xin tài liệu vể data warehouse trên sql ko ạ? Em cảm ơn anh nhiểu ! 
    Email của em : tongduchaihvnh@gmail.com
    sđt : 01689903854
    Em cảm ơn anh ạ! 
     
     
    • Điểm chủ đề: 20
  • 06-26-2013 11:30 AM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Xin chào anh Chúc,
    Cảm ơn anh vì bài viết rất thực tế và có ích, nhờ bài viết của anh mà mình tạo được cube
    Nhưng mình có một vấn đề nhờ nh chỉ giúp. Vấn đề như sau :
    - Theo hướng dẫn của anh mình đã tạo được cube và đã deploy và browse thành công,
    nhưng chỉ trên một máy thì được, nghĩa là chạy BIDS và SQL Server 2008 R2 trên một máy.
    Còn chạy BIDS trên máy khác thì khi deploy thì báo lỗi không kết nối được Server. Mặt dù vẫn
    tạo được Data source và Data source view.
    - Mình dùng Excel 2007 để browse cube cũng thế, chạy trên máy Server thì tốt, nhưng chạy máy khác
    kết nối đến server thì cũng không được (kết nối From SQL Server thì được). Kết nối From Analysis Service thì không được
    Nhờ anh chỉ giúp. Cảm ơn. 
     
    Từ khóa đại diện: ,
    • Điểm chủ đề: 20
  • 06-26-2013 01:28 PM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Xin chào anh Chúc,
    Cảm ơn anh vì bài viết rất thực tế và có ích, nhờ bài viết của anh mà mình tạo được cube
    Nhưng mình có một vấn đề nhờ nh chỉ giúp. Vấn đề như sau :
    - Theo hướng dẫn của anh mình đã tạo được cube và đã deploy và browse thành công,
    nhưng chỉ trên một máy thì được, nghĩa là chạy BIDS và SQL Server 2008 R2 trên một máy.
    Còn chạy BIDS trên máy khác thì khi deploy thì báo lỗi không kết nối được Server. Mặt dù vẫn
    tạo được Data source và Data source view.
    - Mình dùng Excel 2007 để browse cube cũng thế, chạy trên máy Server thì tốt, nhưng chạy máy khác
    kết nối đến server thì cũng không được (kết nối From SQL Server thì được). Kết nối From Analysis Service thì không được
    Nhờ anh chỉ giúp. Cảm ơn. 
     
    Từ khóa đại diện: ,
    • Điểm chủ đề: 35
  • 05-20-2014 12:54 PM trả lời

    Re: Giới thiệu kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    chào a!a có ví dụ nào về OLAP chạy trên sql server 2008 k gửi cho e xin vớigmail của e: hoaianhy2014@gmail.come cám ơn a ạ
    • Điểm chủ đề: 20
  • 09-21-2017 10:49 PM trả lời

    • banguyen
    • Không xếp hạng
    • Tham gia 09-21-2017
    • Điểm 35

    Re: OLAP-Kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    ad cho e hỏi e dùng sql sever 2008 nhưng ko tìm được cái "SQL Server Business Intelligence Development Studio" trong đó để mở lên ạ. chỉ em với. hay chỉ bản 2005 ms có cái đó thôi ạ
    • Điểm chủ đề: 35
  • 09-22-2017 05:11 PM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: OLAP-Kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    Chào bạn,
    SQL Server 2005 trở về sau  version Enterprise hoặc Develop đều có cộng cụ BIDS. Tuy nhiên khi Setup SQL thì phải chọn Module "Analysis Service". Phiên bản 2012 trở về sau thì Tool BIDS được tách riêng ra thành SQL Server Data tools (gồm SSAS,SSIS, SSRS). Sau khi cài xong SQL Server Database Engine thì mới cài thêm Tool này được.
     
    • Điểm chủ đề: 20
  • 06-17-2018 10:38 AM trả lời

    • pencil91
    • 50 thành viên năng nổ nhất
      Nam
    • Tham gia 06-17-2018
    • Điểm 80

    Re: OLAP-Kỹ thuật xử lý phân tích trực tuyến với SQL SERVER

    bài viết phân tích OLAP cực hay, cám ơn ad nhiều
    • Điểm chủ đề: 20
Trang 1 trong số 1 (22 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems