Giới thiệu tổng quan về Data Warehouse (Kho dữ liệu)

Giới thiệu tổng quan về Data Warehouse (Kho dữ liệu)

Data warehouse là gì?

Hãy bắt đầu bằng cách tìm hiểu định nghĩa kho dữ liệu là gì. Kho dữ liệu là một hệ thống thu thập (retrieves) và tổng hợp (consolidates) dữ liệu định kỳ từ các hệ thống nguồn vào kho lưu trữ dữ liệu theo chiều hoặc chuẩn hóa. Nó thường lưu giữ nhiều năm và được truy vấn về thông tin kinh doanh hoặc các hoạt động phân tích khác. Nó thường được cập nhật theo đợt, không phải mỗi khi giao dịch xảy ra trong hệ thống nguồn.

Trong phần tiếp theo của bài viết này, chúng ta sẽ lần lượt thảo luận về từng thuật ngữ xuất hiện trong phần định nghĩa trước. Nhưng bây giờ, hãy xem qua sơ đồ của hệ thống kho dữ liệu, thảo luận về từng thành phần và cách dữ liệu di chuyển qua các thành phần đó. Sau phần trình bày ngắn này, chúng ta thảo luận về từng thuật ngữ trong định nghĩa trước đó, bao gồm sự khác biệt giữa kho dữ liệu thứ nguyên và dữ liệu chuẩn hóa, lý do bạn lưu trữ dữ liệu trong kho dữ liệu và lý do kho dữ liệu được cập nhật theo đợt. Hình 1-1 cho thấy sơ đồ của một hệ thống kho dữ liệu, bao gồm các ứng dụng.

Hãy xem sơ đồ trong Hình 1-1, từng thành phần, từ trái sang phải. Hệ thống nguồn là hệ thống OLTP chứa dữ liệu cần phải đưa vào kho dữ liệu. Xử lý giao dịch trực tuyến (OLTP) là một hệ thống có mục đích chính là ghi nhận và lưu trữ các giao dịch xảy ra trong các hoạt động kinh doanh. Dữ liệu của hệ thống nguồn được kiểm tra bằng trình lược tả dữ liệu (data profiler) để hiểu các đặc điểm của dữ liệu. Trình lược tả dữ liệu là một công cụ có khả năng phân tích dữ liệu, chẳng hạn như tìm xem có bao nhiêu hàng trong mỗi bảng, bao nhiêu hàng chứa giá trị NULL, v.v.

Sau đó, hệ thống trích xuất (extract), biến đổi (transform) và tải (load) - (ETL) sẽ đưa dữ liệu từ các hệ thống nguồn khác nhau vào một khu vực tổ chức (stage). ETL là hệ thống có khả năng kết nối với hệ thống nguồn, đọc dữ liệu, biến đổi dữ liệu và tải dữ liệu đó vào hệ thống đích (hệ thống đích không nhất thiết phải là kho dữ liệu). Sau đó, hệ thống ETL sẽ tích hợp, biến đổi và tải dữ liệu vào kho lưu trữ dữ liệu thứ nguyên (DDS). DDS là cơ sở dữ liệu lưu trữ dữ liệu kho dữ liệu ở định dạng khác với OLTP. Lý do lấy dữ liệu từ hệ thống nguồn vào DDS và sau đó truy vấn DDS thay vì truy vấn trực tiếp hệ thống nguồn là trong DDS, dữ liệu được sắp xếp theo định dạng thứ nguyên phù hợp hơn để phân tích. Lý do thứ hai là vì DDS chứa dữ liệu tích hợp từ một số hệ thống nguồn

Khi hệ thống ETL tải dữ liệu vào DDS, các quy tắc chất lượng dữ liệu sẽ thực hiện các kiểm tra chất lượng dữ liệu khác nhau. Dữ liệu xấu được đưa vào cơ sở dữ liệu chất lượng dữ liệu (DQ) để được báo cáo và sau đó được sửa trong hệ thống nguồn. Dữ liệu xấu cũng có thể được tự động sửa chữa hoặc dung thứ nếu nó nằm trong một giới hạn nhất định. Hệ thống ETL được quản lý và điều phối bởi hệ thống điều khiển, dựa trên trình tự, quy tắc và logic được lưu trữ trong siêu dữ liệu. Siêu dữ liệu là cơ sở dữ liệu chứa thông tin về cấu trúc dữ liệu, ý nghĩa dữ liệu, cách sử dụng dữ liệu, quy tắc chất lượng dữ liệu và thông tin khác về dữ liệu

Hệ thống Audit kiểm tra, ghi nhật ký hoạt động và sử dụng hệ thống vào cơ sở dữ liệu siêu dữ liệu. Hệ thống Audit là một phần của hệ thống ETL giám sát các hoạt động vận hành của các quy trình ETL và ghi nhật ký thống kê hoạt động của chúng. Nó được sử dụng để hiểu những gì đã xảy ra trong quá trình ETL.

Người dùng sử dụng các công cụ giao diện khác nhau như bảng tính, bảng tổng hợp, công cụ báo cáo và công cụ truy vấn SQL để truy xuất và phân tích dữ liệu trong DDS. Một số ứng dụng hoạt động trên định dạng cơ sở dữ liệu đa chiều. Đối với những ứng dụng này, dữ liệu trong DDS được tải vào cơ sở dữ liệu đa chiều (MDB), còn được gọi là khối. Cơ sở dữ liệu đa chiều là một dạng cơ sở dữ liệu trong đó dữ liệu được lưu trữ trong các ô và vị trí của mỗi ô được xác định bởi một số biến được gọi là kích thước. Mỗi ô đại diện cho một sự kiện kinh doanh và các giá trị của thứ nguyên hiển thị thời gian và địa điểm sự kiện này xảy ra

Hình 1-2 cho thấy một khối lập phương có ba chiều (trục): Thời gian, Cửa hàng và Khách hàng. Giả sử rằng mỗi chiều hoặc trục có 100 phân đoạn, do đó có 100 ✕ 100 ✕ 100 = 1 triệu ô trong khối lập phương đó. Mỗi ô đại diện cho một sự kiện trong đó khách hàng mua thứ gì đó từ cửa hàng vào một thời điểm cụ thể. Hãy tưởng tượng rằng trong mỗi ô có ba số: Giá trị bán hàng (tổng giá trị của sản phẩm mà khách hàng đã mua), Chi phí (giá vốn hàng bán + chi phí chung theo tỷ lệ) và Lợi nhuận (chênh lệch giữa giá trị bán hàng và chi phí). Khối lập phương này là một ví dụ về cơ sở dữ liệu đa chiều

Các công cụ như ứng dụng phân tích, khai thác dữ liệu, phiếu ghi điểm, bảng điều khiển, công cụ báo cáo đa chiều và các công cụ BI khác có thể truy xuất dữ liệu từ cơ sở dữ liệu đa chiều. Họ truy xuất dữ liệu để tạo ra các tính năng và kết quả khác nhau trên màn hình giao diện người dùng cho phép người dùng hiểu sâu hơn về doanh nghiệp của họ. Một ví dụ về ứng dụng phân tích là phân tích doanh số bán hàng theo thời gian, khách hàng và sản phẩm. Người dùng có thể phân tích doanh thu và chi phí cho một tháng, khu vực và loại sản phẩm nhất định.

Không phải tất cả các hệ thống kho dữ liệu đều có tất cả các thành phần được mô tả trước đó. Ngay cả khi hệ thống kho dữ liệu không có cơ chế chất lượng dữ liệu, cơ sở dữ liệu đa chiều, bất kỳ ứng dụng phân tích nào, ứng dụng giao diện người dùng, hệ thống kiểm soát hoặc hệ thống audit, siêu dữ liệu,...., bạn vẫn có thể gọi nó là hệ thống kho dữ liệu . Ở dạng đơn giản nhất, nó tương tự như Hình 1-3.

Trong trường hợp này, hệ thống kho dữ liệu chỉ chứa một hệ thống ETL và kho lưu trữ dữ liệu thứ nguyên. Hệ thống nguồn không phải là một phần của hệ thống kho dữ liệu. Đây là mức tối thiểu. Nếu chỉ loại bỏ thêm một thành phần nữa thì không thể gọi nó là hệ thống kho dữ liệu được nữa. Trong Hình 1-3, mặc dù không có ứng dụng ngoại vi như báo cáo hoặc ứng dụng phân tích, người dùng vẫn có thể truy vấn dữ liệu trong DDS bằng cách đưa ra các câu lệnh SQL trực tiếp bằng cách sử dụng các công cụ truy vấn cơ sở dữ liệu chung như công cụ được lưu trữ trong SQL Server Management Studio

Bây giờ bạn đã có ý tưởng về hệ thống kho dữ liệu là gì và các thành phần của nó, hãy xem định nghĩa kho dữ liệu chi tiết hơn. Trong phần tiếp theo, chúng ta sẽ lần lượt thảo luận về từng thuật ngữ in nghiêng trong định nghĩa kho dữ liệu ở đầu bài viết này

Truy xuất dữ liệu

Việc truy xuất dữ liệu được thực hiện bởi một tập hợp các quy trình được biết đến rộng rãi là hệ thống ETL, viết tắt của textract, transform, và load. Hệ thống ETL là một tập hợp các quy trình truy xuất dữ liệu từ hệ thống nguồn, biến đổi dữ liệu và tải dữ liệu đó vào hệ thống đích. Việc chuyển đổi có thể được sử dụng để thay đổi dữ liệu cho phù hợp với định dạng và tiêu chí của hệ thống đích, để lấy các giá trị mới sẽ được tải vào hệ thống đích hoặc để xác thực dữ liệu từ hệ thống nguồn. Các hệ thống ETL không chỉ được sử dụng để tải dữ liệu vào kho dữ liệu. Chúng được sử dụng rộng rãi cho bất kỳ loại chuyển động dữ liệu nào

Hầu hết các hệ thống ETL đều có cơ chế làm sạch dữ liệu khỏi hệ thống nguồn trước khi đưa vào kho. Làm sạch dữ liệu là quá trình xác định và sửa dữ liệu bẩn. Điều này được thực hiện bằng cách sử dụng các quy tắc chất lượng dữ liệu xác định dữ liệu bẩn là gì. Sau khi dữ liệu được trích xuất từ hệ thống nguồn nhưng trước khi dữ liệu được tải vào kho, dữ liệu được kiểm tra bằng các quy tắc này. Nếu quy tắc xác định rằng dữ liệu là chính xác, thì nó sẽ được tải vào kho. Nếu quy tắc xác định rằng dữ liệu không chính xác, thì có ba tùy chọn: dữ liệu đó có thể bị từ chối, sửa chữa hoặc được phép tải vào kho. Hành động nào phù hợp với một phần dữ liệu cụ thể tùy thuộc vào tình huống, mức độ rủi ro, loại quy tắc (lỗi hoặc cảnh báo), v.v.

Có một cách tiếp cận thay thế khác đối với ETL, được gọi là trích xuất, tải và biến đổi (ELT). Theo cách tiếp cận này, trước tiên dữ liệu được tải vào kho dữ liệu ở định dạng thô. Các phép biến đổi, tra cứu, chống trùng lặp, v.v. được thực hiện bên trong kho dữ liệu. Không giống như phương pháp ETL, phương pháp ELT không cần máy chủ ETL. Cách tiếp cận này thường được triển khai để tận dụng các công cụ kho dữ liệu mạnh mẽ, chẳng hạn như các hệ thống xử lý song song lớn (MPP - massively parallel processing)

Tổng hợp dữ liệu

Một công ty có thể có nhiều hệ thống giao dịch. Ví dụ: một ngân hàng có thể sử dụng 15 ứng dụng khác nhau cho các dịch vụ của mình, một ứng dụng xử lý khoản vay, một ứng dụng dịch vụ khách hàng, một ứng dụng giao dịch viên/thủ quỹ, một ứng dụng ATM, một ứng dụng trái phiếu, một ứng dụng ISA, một ứng dụng tiết kiệm, một ứng dụng dành cho ngân hàng tư nhân. , một cho sàn giao dịch, một cho bảo hiểm nhân thọ, một cho bảo hiểm nhà ở, một cho thế chấp, một cho trung tâm cuộc gọi, một cho tài khoản nội bộ và một cho phát hiện gian lận. Việc thực hiện (ví dụ) phân tích lợi nhuận của khách hàng trên các ứng dụng khác nhau này sẽ rất khó khăn.

Một kho dữ liệu hợp nhất nhiều hệ thống giao dịch. Sự khác biệt chính giữa kho dữ liệu và hệ thống giao dịch tại văn phòng chính là dữ liệu trong kho dữ liệu được tích hợp. Việc hợp nhất hoặc tích hợp này phải tính đến tính khả dụng của dữ liệu (một số dữ liệu có sẵn trong một số hệ thống nhưng không có sẵn trong các hệ thống khác), thời gian đồng bộ (dữ liệu trong các hệ thống khác nhau có thời hạn hiệu lực khác nhau), các định nghĩa khác nhau (thuật ngữ tổng doanh thu hàng tuần trong một hệ thống có thể có ý nghĩa khác với tổng doanh thu hàng tuần trong các hệ thống khác), chuyển đổi (các hệ thống khác nhau có thể có đơn vị đo lường hoặc đơn vị tiền tệ khác nhau) và so khớp (tổng hợp dữ liệu dựa trên các mã định danh chung giữa các hệ thống khác nhau).

Hãy lần lượt tìm hiểu qua các khái niệm:

  • Tính khả dụng của dữ liệu (Data availability): Khi hợp nhất dữ liệu từ các hệ thống nguồn khác nhau, có thể một phần dữ liệu có sẵn trong một hệ thống này nhưng không có trong hệ thống kia. Ví dụ: hệ thống A có thể có bảy trường địa chỉ (address1, address2, address3, thành phố, quận, ZIP và quốc gia), nhưng hệ thống B không có trường address3 và trường quốc gia. Trong hệ thống A, một đơn hàng có thể có hai cấp độ—tiêu đề đơn hàng và dòng đơn hàng. Tuy nhiên, trong hệ thống B, một đơn đặt hàng có bốn cấp độ—tiêu đề đơn đặt hàng, gói đơn đặt hàng, mục hàng của đơn đặt hàng và các thành phần tài chính. Vì vậy, khi hợp nhất dữ liệu trên các hệ thống giao dịch khác nhau, bạn cần lưu ý các cột không có sẵn và các cấp bị thiếu trong hệ thống phân cấp. Trong các ví dụ trước, bạn có thể để trống address3 trong mục tiêu và đặt quốc gia thành giá trị mặc định. Trong ví dụ về thứ bậc đơn hàng, bạn có thể hợp nhất thành hai cấp độ, tiêu đề đơn hàng và dòng đơn hàng
  • Khoảng thời gian đồng bộ (time range): Cùng một phần dữ liệu tồn tại trong các hệ thống khác nhau, nhưng chúng có các khoảng thời gian khác nhau. Vì vậy, bạn cần cẩn thận khi tổng hợp chúng. Bạn luôn cần kiểm tra khoảng thời gian nào áp dụng cho dữ liệu nào trước khi tổng hợp dữ liệu. Nếu không, bạn có nguy cơ có dữ liệu không chính xác trong kho dữ liệu vì bạn trộn lẫn các khoảng thời gian khác nhau. Ví dụ: giả sử trong hệ thống A, chi phí quản lý trung bình của nhà cung cấp được tính hàng tuần, nhưng trong hệ thống B, nó được tính hàng tháng. Bạn không thể chỉ hợp nhất chúng. Trong ví dụ này, bạn cần quay lại lịch sử để lấy các thành phần riêng lẻ tạo nên chi phí quản lý chung trung bình của nhà cung cấp trong cả hai hệ thống và cộng chúng trước khi tổng hợp dữ liệu
  • Các định nghĩa khác nhau (definitions): Đôi khi cùng một dữ liệu có thể chứa những thứ khác nhau. Trong hệ thống A, một cột có tên là “Tổng giá trị đơn hàng” có thể chứa thuế, chiết khấu, phí thẻ tín dụng và phí giao hàng, trong khi ở hệ thống B cột này không chứa phí giao hàng. Trong hệ thống A, thuật ngữ lưu lượng truy cập hàng tuần có thể đề cập đến những người truy cập trang web duy nhất, trong khi ở hệ thống B, nó có nghĩa là những người truy cập trang web không phải duy nhất. Trong vấn đề này, bạn luôn cần kiểm tra ý nghĩa của từng phần dữ liệu. Chỉ vì họ có cùng tên không có nghĩa là họ giống nhau. Điều này rất quan trọng vì bạn có thể có dữ liệu không chính xác hoặc dữ liệu vô nghĩa trong kho dữ liệu nếu bạn tổng hợp dữ liệu với các ý nghĩa khác nhau
  • Chuyển đổi (Conversion): Khi hợp nhất dữ liệu trên các hệ thống nguồn khác nhau, đôi khi bạn cần thực hiện chuyển đổi vì dữ liệu trong hệ thống nguồn ở các đơn vị đo lường khác nhau. Nếu bạn thêm chúng mà không chuyển đổi chúng trước, thì bạn sẽ có dữ liệu không chính xác trong kho. Trong một số trường hợp, tỷ lệ chuyển đổi là cố định (luôn có cùng giá trị), nhưng trong các trường hợp khác, tỷ lệ chuyển đổi thay đổi theo thời gian. Nếu nó thay đổi theo thời gian, bạn cần biết khoảng thời gian nào sẽ sử dụng khi chuyển đổi. Ví dụ: việc chuyển đổi giữa thời gian ở một quốc gia sang một quốc gia khác bị ảnh hưởng bởi giờ mùa hè, vì vậy bạn cần biết ngày để có thể thực hiện chuyển đổi. Ngoài ra, tỷ lệ chuyển đổi giữa một loại tiền tệ này và một loại tiền tệ khác dao động hàng ngày, vì vậy khi chuyển đổi, bạn cần biết thời điểm giao dịch xảy ra
  • So khớp (matching): So khớp là một quá trình xác định xem một phần dữ liệu trong một hệ thống có giống với dữ liệu trong một hệ thống khác hay không. Việc so khớp rất quan trọng vì nếu bạn so khớp sai dữ liệu, bạn sẽ có dữ liệu không chính xác trong kho dữ liệu. Ví dụ: giả sử bạn muốn hợp nhất dữ liệu của khách hàng 1 trong hệ thống A với dữ liệu của khách hàng 1 trong hệ thống B. Trong trường hợp này, trước tiên bạn cần xác định xem hai khách hàng đó có phải là cùng một khách hàng hay không. Nếu bạn so sánh sai khách hàng, giao dịch từ một khách hàng có thể bị trộn lẫn với dữ liệu từ một khách hàng khác. Các tiêu chí phù hợp là khác nhau giữa các công ty. Đôi khi tiêu chí rất đơn giản, chẳng hạn như sử dụng ID người dùng, ID khách hàng hoặc ID tài khoản. Nhưng đôi khi nó khá phức tạp, chẳng hạn như tên + địa chỉ e-mail + địa chỉ. Logic của việc xác định một kết quả trùng khớp có thể chỉ đơn giản dựa trên dấu bằng (=) để xác định một kết quả trùng khớp chính xác. Nó cũng có thể dựa trên logic mờ hoặc các quy tắc so khớp

Khi xây dựng kho dữ liệu, bạn phải xử lý tất cả các vấn đề tích hợp dữ liệu này.

Tính định kỳ

Việc truy xuất dữ liệu và hợp nhất không chỉ xảy ra một lần; chúng xảy ra nhiều lần và thường ở những khoảng thời gian mang tính định kỳ, chẳng hạn như hàng ngày hoặc một vài lần trong ngày. Nếu việc truy xuất dữ liệu chỉ diễn ra một lần, thì dữ liệu sẽ trở nên lỗi thời và sau một thời gian, nó sẽ không còn hữu ích.

Bạn có thể xác định khoảng thời gian truy xuất và tổng hợp dữ liệu dựa trên yêu cầu kinh doanh và tần suất cập nhật dữ liệu trong hệ thống nguồn. Khoảng thời gian truy xuất dữ liệu cần phải giống với tần suất cập nhật dữ liệu của hệ thống nguồn. Nếu hệ thống nguồn được cập nhật mỗi ngày một lần, bạn cần đặt truy xuất dữ liệu mỗi ngày một lần. Không có ích gì khi trích xuất dữ liệu từ hệ thống nguồn đó nhiều lần trong ngày.

Mặt khác, bạn cần đảm bảo khoảng thời gian truy xuất dữ liệu thỏa mãn yêu cầu nghiệp vụ. Ví dụ: nếu doanh nghiệp cần báo cáo lợi nhuận của sản phẩm mỗi tuần một lần thì dữ liệu từ nhiều hệ thống nguồn khác nhau cần được tổng hợp ít nhất một lần mỗi tuần. Một ví dụ khác là khi một công ty tuyên bố với khách hàng của mình rằng sẽ mất 24 giờ để hủy đăng ký tiếp thị. Sau đó, dữ liệu trong kho dữ liệu CRM cần được cập nhật một vài lần trong ngày; nếu không, bạn có nguy cơ gửi các chiến dịch tiếp thị đến những khách hàng đã hủy đăng ký của họ

Lưu trữ dữ liệu thứ nguyên

Kho dữ liệu là một hệ thống truy xuất dữ liệu từ các hệ thống nguồn và đặt dữ liệu đó vào kho lưu trữ dữ liệu thứ nguyên hoặc kho lưu trữ dữ liệu chuẩn hóa. Vâng, một số kho dữ liệu ở định dạng thứ nguyên, nhưng một số kho dữ liệu ở định dạng chuẩn hóa. Hãy xem xét cả hai định dạng và sự khác biệt giữa chúng.

DDS là một hoặc một số cơ sở dữ liệu chứa tập hợp các dữ liệu thứ nguyên. Một dữ liệu thứ nguyên là một nhóm các bảng dữ kiện có liên quan và các bảng thứ nguyên tương ứng của chúng chứa phép đo các sự kiện kinh doanh được phân loại theo thứ nguyên của chúng.

Một kho lưu trữ dữ liệu thứ nguyên có thể được triển khai vật lý dưới dạng một số lược đồ khác nhau. Ví dụ về lược đồ lưu trữ dữ liệu là lược đồ sao (hiển thị trong Hình 1-4), lược đồ snowflake và lược đồ galaxy. Trong lược đồ hình sao, một chiều không có bảng phụ (một chiều phụ). Trong lược đồ snowflake, một thứ nguyên có thể có một thứ nguyên con. Mục đích của việc có một thứ nguyên con là để giảm thiểu dữ liệu dư thừa. Lược đồ galaxy còn được gọi là lược đồ chòm sao thực tế. Trong lược đồ thiên hà, bạn có hai hoặc nhiều bảng thực tế liên quan được bao quanh bởi các kích thước chung. Lợi ích của việc có lược đồ sao là nó đơn giản hơn lược đồ snowflake và galaxy, giúp các quy trình ETL tải dữ liệu vào DDS dễ dàng hơn. Lợi ích của lược đồ snowflake là một số ứng dụng phân tích hoạt động tốt hơn so với lược đồ sao hoặc lược đồ galaxy. Lợi ích khác của lược đồ snowflake là ít dư thừa dữ liệu hơn, do đó cần ít dung lượng đĩa hơn. Lợi ích của lược đồ galaxy là khả năng mô hình hóa các sự kiện kinh doanh chính xác hơn bằng cách sử dụng một số bảng thực tế.

Lữu trữ dữ liệu chuẩn hóa

Các loại kho dữ liệu khác đặt dữ liệu không phải trong kho lưu trữ dữ liệu thứ nguyên mà trong kho lưu trữ dữ liệu chuẩn hóa. Kho lưu trữ dữ liệu chuẩn hóa là một hoặc nhiều cơ sở dữ liệu quan hệ có ít hoặc không có dữ liệu dư thừa. Cơ sở dữ liệu quan hệ là cơ sở dữ liệu bao gồm các bảng thực thể với các mối quan hệ cha con giữa chúng.

Chuẩn hóa là một quá trình loại bỏ dư thừa dữ liệu bằng cách thực hiện các quy tắc chuẩn hóa. Có năm mức độ của các dạng chuẩn hóa, từ dạng chuẩn hóa thứ nhất đến dạng chuẩn hóa thứ năm. Kho lưu trữ dữ liệu được chuẩn hóa thường ở dạng chuẩn thứ ba hoặc cao hơn, chẳng hạn như dạng chuẩn thứ tư hoặc thứ năm

Hình 1-5 cho thấy một ví dụ về kho lưu trữ dữ liệu chuẩn hóa. Đây là phiên bản chuẩn hóa của cùng một dữ liệu như được hiển thị trong Hình 1-4.

Kho lưu trữ dữ liệu thứ nguyên là định dạng tốt hơn để lưu trữ dữ liệu trong kho nhằm mục đích truy vấn và phân tích dữ liệu so với kho lưu trữ dữ liệu chuẩn hóa. Điều này là do nó đơn giản hơn và mang lại hiệu suất truy vấn tốt hơn. Kho lưu trữ dữ liệu chuẩn hóa là định dạng tốt hơn để tích hợp dữ liệu từ nhiều hệ thống nguồn khác nhau, đặc biệt ở dạng chuẩn hóa thứ ba trở lên. Điều này là do chỉ có một nơi để cập nhật mà không có dữ liệu dư thừa như trong kho lưu trữ dữ liệu thứ nguyên.

Kho dữ liệu chuẩn hóa thường được sử dụng cho kho dữ liệu doanh nghiệp; từ đó, dữ liệu sau đó được tải vào kho lưu trữ dữ liệu thứ nguyên cho mục đích truy vấn và phân tích. Hình 1-6 cho thấy một hệ thống kho dữ liệu với kho lưu trữ dữ liệu chuẩn hóa được sử dụng cho kho dữ liệu giải thưởng đầu vào (được gắn nhãn là “EDW” trong hình)

Lịch sử

Một trong những điểm khác biệt chính giữa hệ thống giao dịch và hệ thống kho dữ liệu là khả năng và dung lượng lưu trữ lịch sử. Hầu hết các hệ thống giao dịch lưu trữ một số lịch sử, nhưng hệ thống kho dữ liệu lưu trữ lịch sử rất dài. Theo kinh nghiệm, các hệ thống giao dịch chỉ lưu trữ dữ liệu từ một đến ba năm; ngoài ra, dữ liệu bị xóa. Ví dụ: chúng ta hãy xem một hệ thống xử lý đơn đặt hàng bán hàng. Mục đích của hệ thống này là xử lý các đơn đặt hàng của khách hàng. Sau khi một đơn đặt hàng được gửi và thanh toán, nó sẽ bị đóng và sau hai hoặc ba năm, bạn muốn xóa các đơn đặt hàng đã đóng ra khỏi hệ thống đang hoạt động và lưu trữ chúng để duy trì hiệu suất của hệ thống.

Bạn có thể muốn lưu giữ dữ liệu trong hai năm, chẳng hạn, trong trường hợp khách hàng truy vấn đơn đặt hàng của họ, nhưng bạn không muốn giữ dữ liệu có giá trị mười năm trên hệ thống đang hoạt động, vì điều đó làm chậm hệ thống. Một số quy định (khác nhau giữa các quốc gia) yêu cầu bạn lưu giữ dữ liệu trong tối đa 5 hoặc 7 năm, chẳng hạn như cho mục đích thuế hoặc tuân thủ các quy định về giao dịch chứng khoán. Nhưng điều này không có nghĩa là bạn phải giữ dữ liệu trên hệ thống đang hoạt động. Bạn có thể lưu trữ nó vào phương tiện ngoại tuyến. Đó là những gì một hệ thống giao dịch điển hình thực hiện: nó chỉ giữ hai đến ba năm dữ liệu trong hệ thống đang hoạt động và lưu trữ phần còn lại vào phương tiện ngoại tuyến hoặc vào hệ thống/cơ sở dữ liệu chỉ đọc thứ cấp

Mặt khác, một kho dữ liệu lưu trữ hàng năm lịch sử trong hệ thống đang hoạt động. Lượng dữ liệu lịch sử để lưu trữ trong kho dữ liệu phụ thuộc vào yêu cầu kinh doanh. Các bảng kho dữ liệu có thể trở nên rất lớn. Hãy tưởng tượng một chuỗi siêu thị có 100 cửa hàng. Mỗi cửa hàng đón 1.000 lượt khách mỗi ngày, mỗi lượt mua 10 mặt hàng. Điều này có nghĩa là 100 ✕ 1000 ✕ 10 = 1 triệu bản ghi đơn hàng mỗi ngày. Trong một năm, bạn sẽ có 365 triệu bản ghi. Nếu bạn lưu trữ dữ liệu trong 10 năm, bạn sẽ có 3,65 tỷ bản ghi. Khối lượng lớn như thế này cũng xảy ra trong ngành viễn thông và bán lẻ trực tuyến, đặc biệt là khi bạn lưu trữ các lượt truy cập trang web trong kho dữ liệu. Do đó, điều quan trọng đối với một hệ thống kho dữ liệu là có thể cập nhật từng chút một bảng khổng lồ, truy vấn từng chút một và sao lưu từng chút một. Các tính năng cơ sở dữ liệu như phân vùng bảng và truy vấn song song sẽ hữu ích cho hệ thống kho dữ liệu. Phân vùng bảng là phương pháp chia bảng theo hàng thành nhiều phần và lưu trữ từng phần trong một tệp khác nhau để tăng tải dữ liệu và hiệu suất truy vấn. Truy vấn song song là một quá trình trong đó một truy vấn được chia thành các phần nhỏ hơn và mỗi phần được trao cho một mô-đun xử lý truy vấn độc lập. Kết quả truy vấn từ mỗi mô-đun sau đó được kết hợp và gửi lại cho ứng dụng giao diện người dùng

Hầu hết các hệ thống giao dịch lưu trữ lịch sử của các giao dịch nhưng không lưu trữ lịch sử của dữ liệu chính như sản phẩm, khách hàng, chi nhánh và phương tiện. Ví dụ, khi bạn thay đổi mô tả sản phẩm, theo kinh nghiệm của tôi, hầu hết các hệ thống giao dịch đều cập nhật mô tả cũ bằng mô tả mới; họ không lưu trữ mô tả cũ. Có một số trường hợp ngoại lệ, tuy nhiên; ví dụ: một số ứng dụng chuyên biệt như ứng dụng y tế và dịch vụ khách hàng lưu trữ dữ liệu chính lịch sử, chẳng hạn như thuộc tính khách hàng cũ

Mặt khác, trong kho dữ liệu, lưu trữ lịch sử của dữ liệu master là một trong những tính năng chính. Điều này được gọi là kích thước thay đổi chậm (SCD). Thứ nguyên thay đổi chậm là một kỹ thuật được sử dụng trong mô hình thứ nguyên để lưu giữ thông tin lịch sử về dữ liệu thứ nguyên. Trong SCD loại 2, bạn giữ thông tin lịch sử theo hàng; trong khi ở SCD loại 3, bạn giữ thông tin lịch sử trong các cột. Trong SCD loại 1, bạn không giữ thông tin lịch sử

Cũng liên quan đến lịch sử, kho dữ liệu lưu trữ snapshot định kỳ của các hệ thống nguồn vận hành. Snapshot là bản sao của một hoặc nhiều bảng chính được ghi tại một thời điểm nhất định. Snapshot định kỳ được thực hiện đều đặn; ví dụ, ngành ngân hàng snapshot các bảng tài khoản khách hàng mỗi ngày. Sau đó, các ứng dụng kho dữ liệu sẽ so sánh các snapshot hàng ngày để phân tích tình trạng rời bỏ của khách hàng, số dư tài khoản và các điều kiện bất thường. Nếu kích thước của hệ thống nguồn là 100 MB, thì trong một năm bạn sẽ tích lũy được 37 GB. Lưu trữ snapshot hàng ngày của hệ thống nguồn có thể ảnh hưởng nghiêm trọng đến việc lưu trữ kho dữ liệu, vì vậy bạn cần phải cẩn thận

Truy vấn (Query)

Truy vấn là quá trình lấy dữ liệu từ kho lưu trữ dữ liệu, đáp ứng các tiêu chí nhất định. Dưới đây là ví dụ về truy vấn đơn giản: “Hiện tại bạn có bao nhiêu khách hàng?” Dưới đây là ví dụ về truy vấn phức tạp: “Hãy cho tôi biết tên và doanh thu của tất cả các dòng sản phẩm bị lỗ từ 10% trở lên trong Quý 3 Năm tài chính 2006, được phân loại theo cửa hàng.”

Một kho dữ liệu được xây dựng để được truy vấn. Đó là mục đích số một của sự tồn tại của nó. Người dùng không được phép cập nhật kho dữ liệu. Người dùng chỉ có thể truy vấn kho dữ liệu. Chỉ hệ thống ETL mới được phép cập nhật kho dữ liệu. Đây là một trong những điểm khác biệt chính giữa kho dữ liệu và hệ thống giao dịch.

Nếu bạn tham khảo lại Hình 1-1 một lần nữa, bạn có thể tự hỏi mình câu hỏi này: “Tại sao tôi cần lấy dữ liệu từ hệ thống nguồn vào DDS và sau đó truy vấn DDS? Tại sao tôi không truy vấn trực tiếp hệ thống nguồn?”

Với mục đích truy vấn và báo cáo đơn giản, bạn thường truy vấn trực tiếp hệ thống nguồn. Nhưng để tiến hành các phân tích nặng nề như khả năng sinh lợi của khách hàng, phân tích dự đoán, thì “điều gì sẽ xảy ra nếu?” các tình huống, bài tập phân tích xúc xắc, v.v… khó thực hiện được trên hệ thống mã nguồn.

Đây là lý do tại sao: hệ thống nguồn thường là hệ thống giao dịch, được sử dụng bởi nhiều người dùng. Một tính năng quan trọng của hệ thống giao dịch là khả năng cho phép nhiều người dùng cập nhật và select cùng một lúc. Để làm như vậy, nó phải có khả năng thực hiện nhiều giao dịch cơ sở dữ liệu (cập nhật, chèn, xóa và chọn) trong một khoảng thời gian tương đối ngắn. Nói cách khác, nó có thể thực hiện các giao dịch cơ sở dữ liệu rất nhanh. Nếu bạn lưu trữ cùng một phần dữ liệu—ví dụ: đơn giá—ở nhiều nơi khác nhau trong hệ thống, sẽ mất nhiều thời gian để cập nhật dữ liệu và duy trì tính nhất quán của dữ liệu. Nếu bạn chỉ lưu trữ nó ở một nơi, thì việc cập nhật dữ liệu sẽ nhanh hơn và bạn sẽ không phải lo lắng về việc duy trì tính nhất quán của dữ liệu giữa các nơi khác nhau. Ngoài ra, sẽ dễ dàng hơn để duy trì cơ chế đồng thời và khóa để cho phép nhiều người làm việc cùng nhau trong cùng một cơ sở dữ liệu. Do đó, một trong những nguyên tắc cơ bản của hệ thống giao dịch là loại bỏ dư thừa dữ liệu.

Thực hiện truy vấn phức tạp trên cơ sở dữ liệu chuẩn hóa (chẳng hạn như hệ thống giao dịch) chậm hơn so với thực hiện truy vấn phức tạp trên cơ sở dữ liệu không chuẩn hóa (chẳng hạn như kho dữ liệu), vì trong cơ sở dữ liệu chuẩn hóa, bạn cần nối nhiều bảng. Cơ sở dữ liệu được chuẩn hóa không phù hợp để sử dụng để tải dữ liệu vào cơ sở dữ liệu đa chiều nhằm mục đích phân tích cắt lát. Không giống như cơ sở dữ liệu quan hệ chứa các bảng có hai chiều (hàng và cột), cơ sở dữ liệu đa chiều bao gồm các khối chứa các ô có nhiều hơn hai chiều. Sau đó, mỗi ô được ánh xạ tới một thành viên trong mỗi thứ nguyên. Để tải cơ sở dữ liệu đa chiều từ cơ sở dữ liệu đã chuẩn hóa, bạn cần thực hiện truy vấn nhiều JOIN để chuyển đổi dữ liệu sang định dạng chiều. Nó có thể được thực hiện, nhưng nó chậm hơn.

Lý do thứ hai khiến bạn không truy vấn trực tiếp các hệ thống nguồn là vì một công ty có thể có nhiều hệ thống nguồn hoặc hệ thống giao dịch tại văn phòng chính. Vì vậy, bằng cách truy vấn hệ thống nguồn, bạn chỉ nhận được một phần dữ liệu. Mặt khác, kho dữ liệu hợp nhất dữ liệu từ nhiều hệ thống nguồn, do đó, bằng cách truy vấn kho dữ liệu, bạn sẽ có được dữ liệu tích hợp.

Business Intelligence

Business intelligence là tập hợp các hoạt động để hiểu các tình huống kinh doanh bằng cách thực hiện nhiều loại phân tích khác nhau về dữ liệu của công ty cũng như dữ liệu bên ngoài từ các bên thứ ba để giúp đưa ra các quyết định kinh doanh chiến lược, chiến thuật và vận hành cũng như thực hiện các hành động cần thiết để cải thiện hiệu quả kinh doanh. Điều này bao gồm thu thập, phân tích, hiểu và quản lý dữ liệu về hiệu suất hoạt động, hoạt động của khách hàng và nhà cung cấp, hiệu suất tài chính, biến động thị trường, cạnh tranh, tuân thủ quy định và kiểm soát chất lượng.

Ví dụ về một số các hoạt động BI như sau:

  • Quản lý hiệu suất kinh doanh, bao gồm tạo ra các chỉ số hiệu suất chính như doanh số hàng ngày, sử dụng tài nguyên và chi phí hoạt động chính cho từng khu vực, dòng sản phẩm và khoảng thời gian, cũng như tổng hợp của chúng, để cho phép mọi người thực hiện các hành động, chiến thuật để vận hành hiệu suất trên các phân tích mong muốn.
  • Phân tích khả năng sinh lời của khách hàng, tức là để hiểu khách hàng nào sinh lời và đáng để giữ lại và khách hàng nào đang thua lỗ và do đó cần phải hành động. Chìa khóa của bài tập này là phân bổ chi phí càng chính xác càng tốt cho đơn vị giao dịch kinh doanh nhỏ nhất, tương tự như tính chi phí dựa trên hoạt động
  • Phân tích thống kê như khả năng mua hàng hoặc phân tích giỏ hàng. Phân tích giỏ hàng là một quá trình phân tích dữ liệu bán hàng để xác định những sản phẩm nào có khả năng được mua hoặc đặt hàng cùng nhau. Khả năng này được thể hiện dưới dạng các biện pháp thống kê như mức độ hỗ trợ và độ tin cậy. Nó chủ yếu được áp dụng cho ngành bán lẻ và sản xuất nhưng cũng ở một mức độ nhất định cho ngành dịch vụ tài chính.
  • Phân tích dự đoán chẳng hạn như dự báo số liệu bán hàng, doanh thu và chi phí nhằm mục đích lập kế hoạch ngân sách cho năm tới và có tính đến các yếu tố khác như tăng trưởng hữu cơ, tình hình kinh tế và định hướng tương lai của công ty

Theo chiều sâu phân tích và mức độ phức tạp, bạn có thể nhóm các hoạt động BI thành ba loại:

  • Báo cáo, chẳng hạn như các chỉ số hiệu suất chính, số liệu bán hàng toàn cầu theo đơn vị kinh doanh và mã dịch vụ, tài khoản khách hàng trên toàn thế giới, trạng thái giao hàng hợp nhất và tỷ lệ sử dụng tài nguyên giữa các chi nhánh khác nhau ở nhiều quốc gia
  • OLAP, chẳng hạn như tổng hợp, truy sâu, cắt và xác xuất
  • Khai thác dữ liệu, chẳng hạn như đặc tính hóa dữ liệu, phân biệt dữ liệu, phân tích liên kết, phân loại, phân cụm, dự đoán, phân tích xu hướng, phân tích độ lệch và phân tích tương tự

Reporting (Báo cáo)

Trong bối cảnh kho dữ liệu, báo cáo là một chương trình truy xuất dữ liệu từ kho dữ liệu và trình bày dữ liệu đó cho người dùng trên màn hình hoặc trên giấy. Người dùng cũng có thể đăng ký các báo cáo này để chúng có thể được gửi tự động cho người dùng qua e-mail vào những thời điểm nhất định (ví dụ hàng ngày hoặc hàng tuần) hoặc để phản hồi các sự kiện.

Các báo cáo được xây dựng theo các đặc tả chức năng. Chúng hiển thị dữ liệu DDS theo yêu cầu của người dùng doanh nghiệp để phân tích và hiểu các tình huống kinh doanh. Dạng báo cáo phổ biến nhất là dạng bảng chứa các cột đơn giản. Có một dạng báo cáo khác được gọi là crosstab hoặc ma trận. Các báo cáo này giống như bảng tổng hợp Excel, trong đó một thuộc tính dữ liệu trở thành hàng, thuộc tính dữ liệu khác trở thành cột và mỗi ô trên báo cáo chứa giá trị tương ứng với thuộc tính hàng và cột.

Báo cáo kho dữ liệu được sử dụng để trình bày dữ liệu kinh doanh cho người dùng, nhưng chúng cũng được sử dụng cho mục đích quản trị kho dữ liệu. Chúng được sử dụng để giám sát chất lượng dữ liệu, giám sát việc sử dụng các ứng dụng kho dữ liệu và giám sát các hoạt động ETL

Online Analytical Processing (OLAP)

OLAP là hoạt động phân tích tương tác dữ liệu giao dịch kinh doanh được lưu trữ trong kho dữ liệu thứ nguyên để đưa ra các quyết định kinh doanh chiến thuật và chiến lược. Những người điển hình làm công việc OLAP là các nhà phân tích kinh doanh, quản lý kinh doanh và giám đốc điều hành. Chức năng điển hình trong OLAP bao gồm tổng hợp (tính tổng), xem chi tiết (lấy chi tiết) và cắt (cắt khối lập phương và tính tổng các giá trị trong các ô). Chức năng OLAP có thể được phân phối bằng cách sử dụng cơ sở dữ liệu quan hệ hoặc sử dụng cơ sở dữ liệu đa chiều. OLAP sử dụng cơ sở dữ liệu quan hệ được gọi là xử lý phân tích trực tuyến quan hệ (ROLAP). OLAP sử dụng cơ sở dữ liệu đa chiều được gọi là xử lý phân tích trực tuyến đa chiều (MOLAP)

Một ví dụ về OLAP là phân tích hiệu quả của sáng kiến chiến dịch tiếp thị đối với một số sản phẩm nhất định bằng cách đo lường mức tăng trưởng doanh số bán hàng trong một khoảng thời gian nhất định. Một ví dụ khác là phân tích tác động của việc tăng giá đối với doanh số bán sản phẩm ở các khu vực và nhóm sản phẩm khác nhau trong cùng một khoảng thời gian.

Data Mining

Khai thác dữ liệu là một quá trình khám phá dữ liệu để tìm các mẫu và mối quan hệ mô tả dữ liệu và để dự đoán các giá trị chưa biết hoặc tương lai của dữ liệu. Giá trị then chốt trong khai thác dữ liệu là khả năng hiểu tại sao một số điều đã xảy ra trong quá khứ và dự đoán điều gì sẽ xảy ra trong tương lai. Khi khai thác dữ liệu được sử dụng để giải thích tình hình hiện tại hoặc quá khứ, nó được gọi là phân tích mô tả. Khi khai thác dữ liệu được sử dụng để dự đoán tương lai, nó được gọi là phân tích dự đoán.

Trong BI, các ứng dụng phổ biến của khai thác dữ liệu là để phát hiện gian lận (ngành thẻ tín dụng), dự báo và lập ngân sách (tài chính), phát triển gói di động/di động bằng cách phân tích các mẫu cuộc gọi (ngành viễn thông), phân tích giỏ thị trường (ngành bán lẻ), lập hồ sơ rủi ro của khách hàng (ngành bảo hiểm), giám sát việc sử dụng (năng lượng và tiện ích), và thời gian bảo dưỡng máy móc (ngành sản xuất).

Các hoạt động phân tích khác

Ngoài mục đích BI, kho dữ liệu còn được sử dụng cho các hoạt động phân tích ngoài mục đích kinh doanh, chẳng hạn như nghiên cứu khoa học, các cơ quan chính phủ (văn phòng thống kê, văn phòng thời tiết, phân tích và dự đoán kinh tế), tình báo quân sự, quản lý khẩn cấp và thảm họa, các tổ chức từ thiện, giám sát hiệu suất máy chủ và phân tích lưu lượng mạng

Kho dữ liệu cũng được sử dụng để quản lý quan hệ khách hàng (CRM). CRM là một tập hợp các hoạt động được thực hiện bởi một tổ chức (doanh nghiệp và phi kinh doanh) để quản lý và tiến hành phân tích về khách hàng của họ, để giữ liên lạc và giao tiếp với khách hàng của họ, để thu hút và giành được khách hàng mới, tiếp thị sản phẩm và dịch vụ cho khách hàng của họ. khách hàng, để thực hiện các giao dịch với khách hàng của họ (cả giao dịch kinh doanh và phi kinh doanh), để phục vụ và hỗ trợ khách hàng của họ, và để tạo ra những ý tưởng mới và sản phẩm hoặc dịch vụ mới cho khách hàng của họ

Kho dữ liệu cũng được sử dụng trong phân tích trang web. Phân tích trang web là hoạt động tìm hiểu hành vi và đặc điểm của lưu lượng truy cập trang web. Điều này bao gồm tìm hiểu số lượt truy cập, khách truy cập và khách truy cập duy nhất trên mỗi trang cho mỗi ngày/tuần/tháng; các trang web giới thiệu; các route điển hình mà khách truy cập đi trong trang web; đặc điểm kỹ thuật của trình duyệt của khách truy cập; phân tích miền và địa lý; loại robot nào đang truy cập; tỷ lệ thoát của mỗi trang; và tỷ lệ chuyển đổi trong quá trình thanh toán. Phân tích trang web đặc biệt quan trọng đối với các doanh nghiệp trực tuyến.

Cập nhật hàng loạt

Kho dữ liệu thường là một hệ thống chỉ đọc; tức là người dùng không thể cập nhật, xóa dữ liệu trong kho dữ liệu. Dữ liệu kho dữ liệu được cập nhật bằng cách sử dụng một cơ chế tiêu chuẩn gọi là ETL vào những thời điểm nhất định bằng cách đưa dữ liệu từ hệ thống nguồn vận hành. Điều này khác với hệ thống giao dịch hoặc OLTP nơi người dùng có thể cập nhật hệ thống bất cứ lúc nào

Lý do không cho phép người dùng cập nhật hoặc xóa dữ liệu trong kho dữ liệu là để duy trì tính nhất quán của dữ liệu để bạn có thể đảm bảo rằng dữ liệu trong kho dữ liệu sẽ nhất quán với các hệ thống nguồn vận hành, chẳng hạn như nếu kho dữ liệu đang lấy dữ liệu từ hai hệ thống nguồn, A và B. Hệ thống A chứa 11 triệu khách hàng, hệ thống B chứa 8 triệu khách hàng và có 2 triệu khách hàng tồn tại trong cả hai hệ thống. Kho dữ liệu sẽ chứa 17 triệu khách hàng. Nếu người dùng cập nhật dữ liệu trong kho dữ liệu (giả sử xóa 1 triệu khách hàng), thì dữ liệu đó sẽ không nhất quán với hệ thống nguồn. Ngoài ra, khi có bản cập nhật tiếp theo từ ETL, những thay đổi mà người dùng đã thực hiện trong kho sẽ biến mất và bị ghi đè

Sở dĩ kho dữ liệu được cập nhật theo đợt thay vì theo thời gian thực là để tạo sự ổn định cho dữ liệu trong kho dữ liệu. Bạn cần lưu ý rằng các hệ thống nguồn vận hành luôn thay đổi. Một số thay đổi từng phút và một số thay đổi từng giây. Nếu bạn cho phép hệ thống nguồn cập nhật kho dữ liệu theo thời gian thực hoặc bạn cho phép người dùng cập nhật kho dữ liệu mọi lúc, thì sẽ khó thực hiện một số phân tích vì dữ liệu luôn thay đổi. Ví dụ: giả sử bạn đang thực hiện bài tập tìm hiểu sâu về một khối lập phương đa chiều chứa dữ liệu tội phạm. Vào lúc 10:07, bạn nhận thấy rằng tổng số tội phạm trong một khu vực cụ thể trong Q1 năm 2007 là 100. Vì vậy, vào lúc 10:09, bạn xem chi tiết theo thành phố (giả sử khu vực đó bao gồm ba thành phố: A, B và C) và hệ thống hiển thị rằng tội phạm đối với thành phố A là 40, B là 30 và C là 31. Đó là do vào lúc 10:08, người dùng hoặc ETL đã thêm một tội phạm xảy ra ở thành phố C vào kho dữ liệu. Bài tập đi sâu/tổng hợp sẽ cho kết quả không nhất quán vì dữ liệu liên tục thay đổi

Lý do thứ hai để cập nhật kho dữ liệu theo đợt thay vì theo thời gian thực là hiệu suất của hệ thống nguồn. Cập nhật kho dữ liệu theo thời gian thực có nghĩa là ngay khi có bản cập nhật trong hệ thống nguồn, bạn cập nhật kho dữ liệu ngay lập tức, tức là trong vòng vài giây. Để làm điều này, bạn cần phải thực hiện các cài đặt sau:

Nếu hệ thống nguồn là một ứng dụng lớn và bạn cần trích xuất từ nhiều bảng (ví dụ 100 hoặc 1.000 bảng), thì một trong hai cách tiếp cận sẽ tác động đáng kể đến hiệu suất của ứng dụng hệ thống nguồn. Một cách tiếp cận thực dụng là chỉ thực hiện cập nhật theo thời gian thực từ một vài bảng chính, chẳng hạn như năm bảng, trong khi các bảng khác được cập nhật theo lô hàng ngày bình thường. Có thể cập nhật kho dữ liệu theo thời gian thực hoặc gần thời gian thực nhưng chỉ áp dụng cho một số bảng được chọn.

Trong vài năm qua, kho dữ liệu thời gian thực đã trở thành xu hướng và thậm chí là tiêu chuẩn. Các đợt ETL của kho dữ liệu trước đây chạy mỗi ngày một lần thì giờ chạy mỗi giờ, một số đợt cứ sau 5 phút (đây được gọi là đợt nhỏ). Một số trong số họ đang sử dụng phương pháp đẩy; nghĩa là, thay vì kéo dữ liệu vào kho, hệ thống nguồn sẽ đẩy dữ liệu vào kho. Trong cách tiếp cận đẩy, kho dữ liệu được cập nhật ngay lập tức khi dữ liệu trong hệ thống nguồn thay đổi. Các thay đổi trong hệ thống nguồn được phát hiện bằng cách sử dụng trigger. Trong cách tiếp cận kéo, kho dữ liệu được cập nhật theo các khoảng thời gian nhất định. Các thay đổi trong hệ thống nguồn được phát hiện để trích xuất bằng dấu thời gian hoặc cột nhận dạng

Một số phương pháp sử dụng công nghệ messaging và message queue để vận chuyển dữ liệu không đồng bộ từ các hệ thống nguồn khác nhau vào kho dữ liệu. Messaging là một cơ chế vận chuyển dữ liệu trong đó dữ liệu được bọc trong một phong bì chứa các bit điều khiển và được gửi qua mạng vào hàng đợi tin nhắn. Hàng đợi tin nhắn (MQ) là một hệ thống trong đó các tin nhắn được xếp hàng đợi để được xử lý một cách có hệ thống theo thứ tự. Một ứng dụng gửi các tin nhắn chứa dữ liệu vào MQ, và một ứng dụng khác đọc và xóa các tin nhắn khỏi MQ. Có một số cân nhắc bạn cần cẩn thận khi sử dụng ETL không đồng bộ, bởi vì các phần dữ liệu khác nhau đến vào các thời điểm khác nhau mà không biết trạng thái đến của nhau. Lợi ích của việc sử dụng MQ cho ETL là khả năng hệ thống nguồn gửi dữ liệu mà không cần kho dữ liệu trực tuyến để nhận. Lợi ích khác là hệ thống nguồn chỉ cần gửi dữ liệu một lần tới MQ để đảm bảo tính nhất quán của dữ liệu; một số receiver sau đó có thể đọc cùng một tin nhắn từ MQ.

Định nghĩa khác

Tôi sẽ kết thúc phần này với các định nghĩa về kho dữ liệu từ Bill Inmon và từ Ralph Kim ball, cha đẻ của kho dữ liệu

  • Theo Bill Inmon, kho dữ liệu là một bộ sưu tập dữ liệu theo định hướng chủ đề, tích hợp, không thay đổi và thay đổi theo thời gian để hỗ trợ các quyết định của ban quản lý.
  • Theo Ralph Kimball, kho dữ liệu là một hệ thống trích xuất, làm sạch, tuân thủ và cung cấp dữ liệu nguồn vào kho lưu trữ dữ liệu thứ nguyên, sau đó hỗ trợ và thực hiện truy vấn và phân tích cho mục đích ra quyết định.

​​​​​Cả hai đều đồng ý rằng kho dữ liệu tích hợp dữ liệu từ các hệ thống nguồn hoạt động khác nhau. Theo cách tiếp cận của Inmon, kho dữ liệu được triển khai thực tế như một kho lưu trữ dữ liệu chuẩn hóa. Theo cách tiếp cận của Kimball, kho dữ liệu được triển khai thực tế trong kho dữ liệu thứ nguyên

Cảm ơn bạn đã theo dõi bài viết. Chúc bạn may mắn trong công việc và cuộc sống


Bài viết thuộc các danh mục

Bài viết được gắn thẻ



BÌNH LUẬN (0)

Hãy là người đầu tiên để lại bình luận cho bài viết !!

Hãy đăng nhập để tham gia bình luận. Nếu bạn chưa có tài khoản hãy đăng ký để tham gia bình luận với mình