Sự hiểu biết của tôi về độ chi tiết của bảng Fact có đúng không?


8

Bản thân tôi và một DBA khác tại công ty chúng tôi có nhiệm vụ xem xét một thiết kế cơ sở dữ liệu mà một nhà cung cấp đã phát triển cho chúng tôi. Nhà cung cấp đã nói rằng họ sử dụng Kimball làm cơ sở cho thiết kế của họ. (LƯU Ý: Tôi không tìm kiếm đối số của Kimball vs Inmon, v.v.) Họ đã thiết kế một siêu thị với nhiều sự kiện và kích thước.

Bây giờ trong tất cả các công bằng, công ty chúng tôi chưa bao giờ thiết kế một mart duy nhất. Chúng tôi đã luôn luôn có các chuyên gia tư vấn làm điều đó. Và chúng tôi chưa bao giờ được gửi đến các lớp học hoặc bất cứ điều gì. Vì vậy, kiến ​​thức của chúng tôi về kho / mô hình / mô hình thứ nguyên, v.v ... dựa trên những kinh nghiệm nhỏ chúng tôi có, những gì chúng tôi có thể tìm thấy trên Internet và tự đọc (chúng tôi có sách của Inmon và Kimball và đang cố gắng tìm ra chúng) .

Bây giờ giai đoạn được đặt cho trình độ kiến ​​thức của tôi, chúng tôi đến với thử thách thiết kế.

Có một bảng Fact gọi là "Yêu cầu thống kê tổn thất" (đây là bảo hiểm). Và họ đang cố gắng nắm bắt cả các khoản thanh toán cho các yêu cầu bồi thường (tăng lên đến mức hàng tháng), và sau đó là tiền trong dự trữ (giống như một tài khoản ngân hàng cho các yêu cầu bồi thường). Họ muốn thấy số tiền hàng tháng để thanh toán (không có vấn đề lớn). Nhưng họ muốn thấy số dư hiện tại của tài khoản dự trữ.

Tôi sẽ đưa ra một ví dụ bằng hình ảnh.

Giả sử chúng tôi thiết lập $ 1000 USD dự trữ cho một yêu cầu bồi thường. Điều này được đặt sang một bên (vì vậy trong một số khía cạnh, nó hoạt động giống như một tài khoản ngân hàng).

Vào tháng 10 năm 2014, chúng tôi chưa thanh toán bất cứ điều gì. Vì vậy, doanh nghiệp muốn xem các khoản thanh toán và số dư dự trữ vào cuối tháng Mười.

-----------------------------------------------
-  MONTH_YEAR  -  PAYMENTS -  RESERVE_BALANCE -
-----------------------------------------------
-      102014  -      0.00 -          1000.00 -
-----------------------------------------------

Rồi tháng 11 cũng đến. Chúng tôi thực hiện thanh toán 100 đô la, 150 đô la và 75 đô la. Họ muốn thấy những khoản tiền đó được tổng hợp và dự trữ ở số dư như sau:

-----------------------------------------------
-  MONTH_YEAR  -  PAYMENTS -  RESERVE_BALANCE -
-----------------------------------------------
-      102014  -      0.00 -          1000.00 -
-----------------------------------------------
-      112014  -    325.00 -           675.00 -
-----------------------------------------------

Và sau đó nói rằng chúng tôi có khoản thanh toán bằng 0 vào tháng 12 và sau đó thêm 200 đô la vào tháng 1 năm sau.

-----------------------------------------------
-  MONTH_YEAR  -  PAYMENTS -  RESERVE_BALANCE -
-----------------------------------------------
-      102014  -      0.00 -          1000.00 -
-----------------------------------------------
-      112014  -    325.00 -           675.00 -
-----------------------------------------------
-      122014  -      0.00 -           675.00 -
-----------------------------------------------
-       12015  -    200.00 -           475.00 -
-----------------------------------------------

Đây là nơi tôi đấu tranh. Hiểu biết của tôi là phần thanh toán là chính xác. Tất cả đều được cuộn lên ở mức hàng tháng trong mỗi hồ sơ. Vì vậy, bạn có thể triển khai thêm nếu bạn muốn cho năm, quý, v.v.

Nhưng số lượng dự trữ là khác nhau. Đó là một sự cân bằng. Và doanh nghiệp muốn xem số dư trong mỗi tháng là bao nhiêu. Nhưng bạn không thể tổng hợp trên lĩnh vực này. Nếu bạn đã làm, bạn sẽ nhận được một số kết quả thắng.

Bằng cách nào đó, điều này đánh tôi là sai. Nhưng tôi không thể nói một cách trung thực rằng tôi đã làm mẫu đủ hoặc biết đủ. Tất cả những gì tôi có thể nói là những gì tôi biết. Và từ những gì tôi biết, tất cả các giá trị trong một Sự thật phải ở cùng mức độ chi tiết.

Cả hai con số đều có cùng mức độ chi tiết của một "tháng", nhưng chúng không nằm trong quan điểm của những gì chúng đại diện. Một là tổng hợp đô la trong vòng một tháng. Cái khác chỉ là sự cân bằng.

Điều này có đúng không? Tôi đã đẩy lùi thiết kế này. Tôi có sai khi làm như vậy không? Có thể làm điều này trong một thực tế? Hay ý thức của tôi về "mùi mã" của một thiết kế xấu là chính xác?

Bất kỳ trợ giúp sẽ được đánh giá cao. LƯU Ý: vui lòng không chỉ nói "Nó phải là cách X", vui lòng giải thích lý do tại sao nó phải như vậy để tôi có thể học hỏi từ điều này.

EDIT : Vâng, tôi đã học được rằng sự hiểu biết ban đầu của tôi về Sự thật là sai. Độ chi tiết KHÔNG hàng tháng. Độ chi tiết là mức độ giao dịch. Vì vậy, điều đó có nghĩa là trong MONTH_YEAR (tức là thực sự là kỳ báo cáo tài chính) sẽ có nhiều giao dịch thanh toán và thu hồi. Những người sẽ được đăng theo ngày hoặc ngày giao dịch. Nhưng vì một báo cáo trước mà doanh nghiệp nhìn thấy và cũng vì cách dữ liệu được lưu trữ trong hệ thống cũ mà họ muốn đặt cả dữ liệu giao dịch (một hàng mỗi) và số dư dự trữ hàng tháng (một hàng mỗi tháng ).

Khi tôi biết điều đó, tôi nhận ra rằng vấn đề không phải là quá nhiều phụ gia so với không phụ gia, hoặc thậm chí là bán phụ gia vì nó là hạt, đó là điều tôi đã nghi ngờ từ đầu. Nhóm DBA của chúng tôi đã thảo luận điều này với nhóm dự án và báo cáo rằng họ đang cố gắng đưa hai loại ngũ cốc khác nhau vào cùng một thực tế, và điều này là không chính xác. Rằng họ nên đóng vai trò giao dịch lên mức hàng tháng, cho phép họ sau đó có các khoản thanh toán, thu hồi và số dư dự trữ hàng tháng (tức là một thực tế bán phụ gia) bởi vì mọi thứ sẽ ở mức hạt hàng tháng. Hoặc họ cần tìm cách chia nhỏ số dư dự trữ thành các giao dịch để duy trì mức hạt giao dịch. Hoặc họ cần chia sự thật thành hai sự thật. Một có thể là mức hàng tháng cho số dư dự trữ. Cái khác có thể ở cấp độ giao dịch cho các khoản thanh toán và thu hồi. (Không có lý do tại sao họ cũng không thể đặt các khoản thanh toán và thu hồi ở mức hàng tháng trong thực tế cấp hàng tháng. Chỉ phụ thuộc vào nhu cầu kinh doanh.)

Cho những gì tôi đã học được, tôi sẽ đánh dấu câu trả lời của Thomas là câu trả lời đúng. Tuy nhiên, tôi cảm thấy cuộc thảo luận mà tôi đã bắt đầu với câu hỏi ban đầu vẫn là một câu hỏi hay để người khác học hỏi, vì vậy tôi sẽ giữ nguyên phần ban đầu của câu hỏi của mình. Tôi cũng có ý định trao tiền thưởng cho câu trả lời của nikadam vì điều đó đã dạy tôi rất nhiều về các sự kiện phụ gia, không phụ gia và bán phụ gia, và sửa chữa rất nhiều hiểu lầm mà tôi có về mô hình hóa chiều.

Câu trả lời:


5

Trực giác của bạn về mùi mã cũng được mài giũa.

Những gì bạn đang giải quyết reserves là cái mà Kimball gọi là "thực tế bán phụ gia". Nó không cuộn lên tốt đẹp đến quý hoặc năm.

Giải pháp điển hình cho vấn đề này là có hai bảng thực tế, một bảng cho thực tế phụ gia ( paymentstrong trường hợp của bạn) và một bảng cho thực tế không phụ gia. Thực tế không phụ gia thực sự không cần phải có hạt ở cấp độ tháng, bạn có thể lưu trữ chúng cho đến ngày và mọi thứ vẫn chỉ hoạt động.

Thực tế không phụ gia reserve, được truy vấn khác với thực tế khác. Có một quyết định kinh doanh bạn cần đưa ra: reserveở cấp năm có nghĩa là gì? Đây có phải là tháng cuối cùng của năm, hoặc có thể là trung bình của các tháng trong năm? Dù lựa chọn của bạn là gì, bạn có thể tìm ra giải pháp để mô hình hóa nó trong sách Kimball theo các chương về các sự kiện không phụ gia.

Xin lưu ý rằng nếu bạn sử dụng một sản phẩm khối như Dịch vụ phân tích, có thể có các tổng hợp "chỉ hoạt động" ngay cả khi bạn lưu trữ tất cả trong một bảng. Tuy nhiên, tôi thích giữ mọi thứ riêng biệt để các truy vấn quan hệ dễ viết hơn (và các sự kiện cũng dễ tải hơn).


Vì vậy, bạn đang đề xuất rằng hai giá trị được chia thành hai sự kiện, một phụ gia và một không phụ gia? (Đây thực sự là những gì tôi đã nghiêng về.) Mặc dù vậy, bạn có thể cung cấp một lý do cho việc này? Kimball thậm chí có nói không trộn lẫn các giá trị phụ gia và không phụ gia trong thực tế không?
Chris Aldrich

4
Ngoài ra, bạn có thể biến thực tế không phụ gia của mình reserve, thành một thực tế phụ gia payment into reserve, sẽ có cùng mức độ chi tiết như payment out of reservebạn có bây giờ.
mustaccio

@ChrisAldrich: Hãy xem xét truy vấn mà bạn muốn kết hợp cả SUM của khoản thanh toán trong một năm và giá trị của Dự trữ trong cùng một năm. Nếu cả hai thực tế được kết hợp vào cùng một bảng, bạn sẽ nhận được một số truy vấn cửa sổ khó chịu. Nếu bạn có hai biện pháp trong các bảng riêng biệt, truy vấn là tầm thường để viết.
Thomas Kejser

7

Bạn đã đúng: " các loại ngũ cốc khác nhau không được trộn trong cùng một bảng thực tế ".

Nhưng số dư dự trữ vào cuối tháng và tổng các khoản thanh toán vào cuối tháng là cùng một hạt. Nó chỉ là một trong những sự thật là bán phụ gia . Loại thực tế (phụ gia hay không) không xác định hạt của bảng.

Từ những gì bạn mô tả, tôi thấy hạt của bạn là "ảnh chụp nhanh yêu cầu hàng tháng", làm cho bảng thực tế của bạn "Bảng thực tế chụp nhanh định kỳ ".

Trong bài viết này, Kimball có một ví dụ về các sự kiện phụ gia và bán phụ gia trong cùng một bảng thực tế.

Dưới đây là ví dụ về ảnh chụp nhanh định kỳ với các sự kiện bán phụ gia từ Bộ công cụ kho dữ liệu (trang 116):

Bộ công cụ kho dữ liệu của Kimball, trang 116

Thực tiễn tốt nhất là có bảng thực tế giao dịch sẽ phản ánh mọi thay đổi về dự trữ (thanh toán và điều chỉnh) ở cấp độ nguyên tử thấp nhất. Khi bạn giải quyết các khiếu nại, thường thì cấp độ nguyên tử không phải là yêu cầu bồi thường mà là yêu cầu phụ (công ty bảo hiểm của bạn có thể có thời hạn riêng cho nó). Nói chung, mỗi yêu cầu phụ sẽ đại diện cho các bên khác nhau đối với yêu cầu bồi thường và thanh toán / dự trữ cho mỗi bên. Ví dụ: có thể không có khoản thanh toán nào cho người được bảo hiểm, nhưng các khoản thanh toán cho người không bị bảo hiểm của công ty bạn bị thương và thanh toán cho bệnh viện và luật sư.

Tùy thuộc vào hiệu suất của công cụ BI của bạn, bạn có thể sử dụng bảng thực tế giao dịch trực tiếp để nhận thanh toán và số dư hàng tháng. Hoặc bạn có thể cập nhật bảng thực tế chụp nhanh định kỳ từ giao dịch hàng ngày hoặc vào cuối tháng.

Khả năng xử lý các sự kiện bán phụ gia sẽ phụ thuộc vào lớp BI bạn đang sử dụng. Một số công cụ có thể xử lý dễ dàng với các sự kiện bán phụ gia và một số thì không.

Cuốn sách chính của Kimball ( Bộ công cụ kho dữ liệu ) có đầy đủ chương (16) về bảo hiểm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.