Tài liệu Nghiên cứu giải pháp kho dữ liệu thời gian thực ứng dụng trọng hệ thống siêu thị

  • Số trang: 26 |
  • Loại file: PDF |
  • Lượt xem: 103 |
  • Lượt tải: 0
nganguyen

Đã đăng 34345 tài liệu

Mô tả:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- Vương Quang Phương 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Ị Chuyên ngành: Khoa học máy tính Mã số: 60.48.01.01 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2014 Luậ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 1 MỞ ĐẦ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). 2 Sau 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. 3 CHƯƠ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. 4 6. 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 5 1.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 6 về 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 a. Mô hình liên kết thực thể Thực thể biểu diễn cho các đối tượng người, địa điểm, sự vật, sự kiện, những thứ trong thế giới thực liên quan đến tổ chức/doanh nghiệp. Bên trong chúng là các thuộc tính, mô tả các đặc điểm và tính chất của đối tượng. Có ba loại quan hệ sau: 1-1, 1-nhiều, nhiềunhiề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. 7 1.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 8 đị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. 9 1.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. 10 CHƯƠ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ó. 11 - 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: 12 Tải (Load): Nếu bảng mục tiêu đã tồn tại và có dữ liệu, thực hiện tải các bản ghi chưa có, bỏ qua những bản ghi đã có. Nếu bảng là trống, lấy toàn bộ dữ liệu được chuyển đổi để cập nhật vào. Thêm nối (Append): Nếu dữ liệu đã tồn tại, tiến hành thêm nối các bản ghi đã chuyển đổi vào bảng. Cơ chế xử lý bản ghi trùng sẽ hoạt động, có thể tùy chọn lưu trữ bản ghi đó như là một bản sao, hoặc cho phép xóa bản ghi trùng lặp. Trộn phá hủy (Destructive Merge): Sẽ có sự so sánh giữa dữ liệu được gửi tới và dữ liệu mục tiêu. Nếu khóa chính của chúng giống nhau, cập nhật dữ liệu đó vào bảng. Nếu khóa chính chưa có tức là bản ghi đó chưa tồn tại và chỉ cần thêm mới. Trộn xây dựng (Constructive Merge): Chế độ này khác với chế độ trộn phá hủy ở trên. Nếu khóa chính của một bản ghi gửi đến giống với khóa một bản ghi đã có, bản ghi đã có đó sẽ được giữ lại, bản ghi gửi đến được thêm mới vào nhưng đánh dấu là không dùng. 2.1.4 Kiến trúc của tiến trình ETL truyền thống Kiến trúc của tiến trình ETL truyền thống bao 3 lớp chính: nguồn dữ liệu, khu vực tổ chức dữ liệu và kho dữ liệu. Hình 2.4: Tiến trình ETL Chiết xuất – Chuyển đổi – Tải Có 2 loại kiến trúc chính được sử dụng cho hệ thống ETL: kiến trúc đồng nhất (homogenous) và kiến trúc không đồng nhất (heterogeneous). Kiến trúc đồng nhất: Chỉ liên quan đến một nguồn và một cơ sở dữ liệu đích đơn lẻ. Kiến trúc ETL đồng nhất thường được áp dụng cho kho dữ liệu chủ đề, đặc biệt là tập trung vào một chủ đề duy nhất. Kiến trúc không đồng nhất: Một hệ thống trong đó dữ liệu được trích xuất từ nhiều nguồn. Kiến trúc không đồng nhất thường xuyên được sử dụng cho các kho dữ liệu hơn là kho dữ liệu chủ đề. 13 2.1.5 Những vấn đề và thách thức 2.1.5.1 Một số vấn đề chung Tiến trình ETL có các vấn đề chung cần phải đối mặt: Vấn đề địa lý và ràng buộc thời gian: [8] chỉ ra rằng 90% các vấn đề của kho dữ liệu xuất phát từ chu kỳ tải hàng loạt dữ liệu vào ban đêm. Với nhiều vấn đề như: đồng thời thực hiện nhiều công việc nhưng lại có tính hỗn hợp và phụ thuộc lẫn nhau, khoảng thời gian được gọi là “buổi đêm” bị kéo ngắn lại, thứ tự thực hiện của các thao tác nghiệp vụ hoặc bộ công việc phù hợp. Khối lượng dữ liệu lớn: Lượng dữ liệu hoạt động hàng ngày từ nhiều chi nhánh là rất lớn, nếu không làm tốt công việc lọc ra những dữ liệu cần phải xử lý thì hệ thống sẽ hoạt động hết sức nặng nề. Chất lượng dữ liệu: dữ liệu sau khi đưa lên kho phải luôn được làm sạch và có giá trị với người sử dụng. Sự phát triển của dữ liệu: hệ thống cần được bảo trì thường xuyên, cungf sự mở rộng về quy mô, vùng địa lý, hoặc kho dữ liệu được cải tiến để đáp ứng các nhu cầu xây dựng các báo cáo lớn hơn của tổ chức/doanh nghiệp hoàn toàn có thể xảy ra. Hoạt động tự động: ETL hoạt động có tính định kỳ trong hệ thống kho dữ liệu, vì vậy chúng cần được lập lịch và tự động hóa hoạt động của mình. 2.1.5.2 Một số vấn đề trong từng thành phần Ngoài các vấn đề chung nêu trên, trong các giai đoạn của tiến trình ETL còn có các vấn đề phát sinh, việc làm tươi kho dữ liệu là một nhiệm vụ khó khăn. Chiết xuất - Phải đảm bảo không ảnh hưởng đến hiệu suất của hệ thống nguồn. - Xác định dữ liệu cần chiết xuất có thể không dễ dàng. - Làm sao để lấy ra được đúng những bản ghi mong muốn và sắp xếp thứ tự để không ảnh hưởng đến các giai đoạn tiếp sau. Chuyển đổi - Dữ liệu từ nhiều nguồn với nhiều cách thiết kế, định dạng, … khác nhau nên cần xác định được các tiêu chuẩn, công thức cho việc chuyển đổi. - Do thời gian hạn chế và lượng dữ liệu lớn nên yêu cầu khu vực tổ chức phải luôn đạt được sự ổn định và hoạt động hiệu quả. - Xem xét và sử dụng các cơ chế quản lý, cấp phát bộ nhớ sẽ trở nên quan trọng. 14 Tải - Lựa chọn cơ chế thêm mới, cập nhật bản ghi cần phải được cân nhắc kỹ. - Chi phí cho việc thực hiện duy trì chỉ mục và các khung nhìn (view) là khá tốn kém. 2.1.6 Hạn chế của ETL truyền thống Cập nhật dữ liệu liên tục ETL trong kho dữ liệu truyền thống bị giới hạn khung thời gian hoạt động vào “ban đêm”. Hệ thống thời gian thực thì yêu cầu các dữ liệu phải được cập nhật đúng thời gian quy định lên kho dữ liệu. Chiết xuất Một số kỹ thuật chiết xuất dữ liệu như chiết xuất thông qua nhật ký hoạt động, chiết xuất bằng các công cụ chụp phát hiện thay đổi. Tuy các kỹ thuật này có những ưu điểm tốt nhưng lại không đáp ứng được vấn đề tốc độ và thời gian thực hiện. Chuyển đổi Công nghệ quản lý bộ nhớ cũ có tốc độ khá chậm chạp trong đọc/ghi dữ liệu làm quá trình này sẽ phải mất nhiều thời gian mới có thể hoàn thành. Mỗi đơn vị thời gian cần xử lý được nhiều dữ liệu hơn, từ đó phát sinh nhiều hoạt động trên bộ nhớ chính. Việc quản lý và cấp phát bộ nhớ sẽ trở nên quan trọng. Tải ETL thông thường thực hiện tải hàng loạt vào ban đêm, dữ liệu vừa cập nhật chậm so với thời gian mong muốn. Hạn chế này cần phải được giải quyết trong kho dữ liệu thời gian thực sao cho dữ liệu phải được cập nhật trong thời gian quy định. 2.2 Giải pháp xây dựng tiến trình ETL cho hệ thống kho dữ liệu thời gian thực. 2.2.1 Phân vùng thời gian thực Một bảng sự kiện thời gian thực riêng biệt được tạo ra, đi kèm với các bảng chiều tương ứng. Các bảng trong phân vùng thời gian thực được ưu tiên cập nhật dữ liệu liên tục trong ngày. Các dữ liệu còn lại vẫn được ETL truyền thống đưa lên vào ban đêm như bình thường. Phương pháp kết hợp này vừa đảm bảo dữ liệu được đưa lên kho theo thời gian thực vừa yêu cầu không quá phức tạp. 2.2.2 Phân nhóm dữ liệu cho 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ý. Nghĩa là nếu áp 15 dụng xử lý song song vào hệ thống thời gian thực, sẽ có nhiều tiến trình ETL hoạt động đồng thời, giúp dữ liệu được cập nhật lên kho trong một đơn vị thời gian tăng lên đáng kể. Kỹ thuật phân nhóm dữ liệu Đối với lượng dữ liệu lớn, nên phân chia các tập dữ liệu thành các tập nhỏ hơn. Ý tưởng là sau đó mỗi nhóm dữ liệu sẽ sử dụng một tiến trình ETL để thực hiện xử lý. Tức là sẽ có nhiều tiến trình ETL chạy trên nhiều bộ xử lý trong cùng một thời điểm. Vào cuối quá trình này, các nhóm dữ liệu cần được sáp nhập lại và tải vào kho mục tiêu. 2.2.3 Lô dữ liệu nhỏ ETL (Microbatch ETL) Lô dữ liệu nhỏ ETL cũng gần tương tự như ETL thông thường, khác biệt là dữ liệu được chia nhỏ theo lô, mức độ thường xuyên có thể hàng giờ hay phút tùy thuộc nhu cầu thực tế của tổ chức/doanh nghiệp. Những lô này được tiến trình ETL thực hiện cập nhật lên kho một cách thường xuyên, đáp ứng trong thời gian thực. Việc chia lô được thực hiện dựa trên các dữ liệu đã chiết xuất, có nhiều tiêu chí để phân chia như phân chia theo khoảng thời gian (ví dụ toàn bộ dữ liệu có thay đổi trong khoảng thời gian 5 phút/ một lô), theo lượng dữ liệu (ví dụ 100 bản ghi một lô). 2.2.4 Cơ sở dữ liệu bộ nhớ Cơ sở dữ liệu bộ nhớ (in memory database - IMDB) là một hệ thống quản lý cơ sở dữ liệu chủ yếu dựa vào bộ nhớ chính để lưu trữ dữ liệu. [10] Trong các ứng dụng thời gian thực, những lợi ích của cơ sở dữ liệu bộ nhớ đem lại nhiều hiệu quả về hiệu năng xử lý. Hiện nay, các hãng công nghệ lớn như Oracle, Microsoft đang nghiên cứu tích hợp luôn công nghệ này lên các hệ quản trị cơ sở dữ liệu truyền thống của họ như Oracle Database, MS SQL Server. Hoặc cũng có thể sử dụng các công cụ lập trình như DotNet của Microsoft để thực hiện chức năng này. 2.2.5 Chiết xuất thời gian thực Sử dụng Trigger Với cách thức hoạt động đã được xây dựng sẵn trên các hệ quản trị cơ sở dữ liệu, trigger có thể thực hiện việc chiết xuất dữ liệu gần như ngay tức thì mà không ảnh hưởng nhiều đến hoạt động của nguồn dữ liệu. Để sử dụng kỹ thuật này, một bảng chiết xuất chứa các định danh của bản ghi thay đổi được tạo ra. Sau đó, các thủ tục trigger tương ứng với các hoạt động INSERT, UPDATE, DELETE được viết cho từng bảng tương ứng. Truy vấn song song trong hệ quản trị cơ sở dữ liệu 16 Trong các hệ quản trị cơ sở dữ liệu hiện nay, tất cả đều có hỗ trợ truy vấn song song. Trong SQL Server, có thể bật tính năng song song bằng cách cấu hình trường degree khi tạo mới bảng. 2.2.6 Chuyển đổi thời gian thực Sử dụng kỹ thuật song song. Để tăng số lượng bản ghi từ các chi nhánh được cập nhật lên kho dữ liệu trung tâm trong một đơn vị thời gian. Chúng ta có thể chạy song song nhiều tiến trình ETL trong cùng một thời điểm. Sử dụng Microbath ETL và Cơ sở dữ liệu bộ nhớ Theo một cách thức chung, việc áp dụng các công nghệ giúp tăng tốc độ tính toán của các công thức, thuật toán là khả thi nhất. Với lượng dữ liệu theo lô nhỏ, kết hợp với công nghệ cơ sở dữ liệu thường trú trên bộ nhớ có thể giải quyết được bài toán trên. Lô dữ liệu nhỏ giúp việc đưa chúng lên bộ nhớ không yêu cầu chi phí quá lớn về thiết bị phần cứng. Các cơ chế quản lý dữ liệu mới như có các bảng chứa dữ liệu trên bộ nhớ chính giúp tốc độ đọc/ghi nhanh hơn rất nhiều. Từ việc thao tác với dữ liệu nhanh chóng hơn, các thao tác chuyển đổi cũng sẽ được cải thiện đáng kể về mặt tốc độ. 2.2.7 Tải thời gian thực Tải lô dữ liệu nhỏ Các dữ liệu được chuyển đổi nhanh với lô dữ liệu nhỏ sẽ được chuyển tới quá trình tải, đồng nghĩa với quá trình này cũng sẽ thực hiện tải với lô dữ liệu tương ứng. Do số lượng lô dữ liệu được chia nhỏ nên quá trình đưa chúng lên kho cũng nhanh, không chiếm nhiều thời gian sử dụng hệ thống. Từ đó, đảm bảo độ sẵn sàng của kho dữ liệu. Kết luận chương Dựa trên các lý thuyết đã tìm hiểu tại chương 1, chương 2 đi sâu nghiên cứu về tiến trình ETL, một trong những thành phần quan trọng nhất của kho dữ liệu và kho dữ liệu thời gian thực. Với việc phân tích chi tiết về các thành phần, kiến trúc cũng như những vấn đề, hạn chế của hệ thống ETL thông thường, một giải pháp áp dụng các công nghệ và kỹ thuật tiên tiến được đề xuất giúp cải tiến tốc độ cập nhật dữ liệu theo thời gian thực lên kho dữ liệu. 17 CHƯƠNG 3 – XÂY DỰNG MÔ HÌNH KHO DỮ LIỆU THỜI GIAN THỰC 3.1 Bài toán Công ty TNHH TM & Dịch vụ Văn hoá Phương Bắc (công ty Phương Bắc), địa chỉ trụ sở chính tại 110D- Ngọc Hà – Ba Đình – Hà Nội, là một công ty có hệ thống nhiều chi nhánh trải rộng tại khu vực Hà Nội (3 chi nhánh), Vinh (2 chi nhánh), TP HCM (3 chi nhánh). Các chi nhánh đều sử dụng Internet để kết nối trực tiếp về máy chủ trung tâm đặt tại Hà Nội. Với đặc điểm là vừa sản xuất, vừa bán buôn bán lẻ hàng hóa nên việc có thông tin thời gian thực phục vụ việc lên kế hoạch sản xuất và tiêu thụ hàng hóa là rất cần thiết, đặc biệt là một số sản phẩm theo mùa, hàng hóa độc quyền. Yêu cầu đặt ra là xây dựng kho dữ liệu đặt tại máy chủ trung tâm ở Hà Nội, tập hợp dữ liệu của các chi nhánh, phục vụ nhiều loại báo cáo từ chi tiết đến tổng hợp cho nhiều phòng ban. Trong đó có các báo cáo về số lượng tồn và doanh số bán hàng cần đảm bảo yếu tố thời gian thực, quy định là trong 5 phút sau khi có giao dịch phát sinh. 3.2 Xây dựng mô hình kho dữ liệu thời gian thực 3.2.1 Khảo sát hệ thống sẵn có Hệ thống mạng Hạ tầng mạng của doanh nghiệp với các chi nhánh được mô như hình dưới: Máy chủ TPHCM 1 Máy chủ Hà Nội 1 Máy chủ TPHCM 2 Máy chủ Hà Nội 2 Máy chủ trung tâm Máy chủ TPHCM 2 Máy chủ Hà Nội 2 Máy chủ Vinh 1 Máy chủ Vinh 2 Hình 3.1: Mô hình hệ thống mạng của doanh nghiệp Ứng dụng Các ứng dụng như kế toán, quản lý mua bán hàng, đặt hàng, báo cáo kinh doanh thông minh BI - KPI,… đang hoạt động được xây dựng sẵn trên nền tảng .NET Cơ sở dữ liệu 18 - MS SQL Server 2008 được sử dụng để lưu trữ cơ sở dữ liệu. - Số bản ghi hiện có: Chi nhánh lớn nhất 2.537.799 - Chi nhánh nhỏ nhất 753.510 - Số bản ghi phát sinh thêm hàng ngày: Chi nhánh lớn nhất 8.171/ngày- Chi nhánh nhỏ nhất 4.073/ngày 3.2.2 Thiết kế hệ thống 3.2.2.1 Kiến trúc hệ thống Hình 3.3: Mô hình kiến trúc hệ thống kho dữ liệu thời gian thực 3.2.2.2 Thiết kế dữ liệu 1. Dữ liệu chủ đề mua bán hàng Bảng sự kiện này có thể cung cấp các thông tin về doanh số mua, bán hàng, tính toán các giá trị tồn kho theo các chiều. Hình 3.4: Sơ đồ kho dữ liệu chủ đề mua bán hàng
- Xem thêm -