2009-05-14 52 views
13

Chúng tôi đang làm việc trên một kho dữ liệu cho một ngân hàng và đã theo dõi mô hình Kimball chuẩn của các bảng dàn dựng, một lược đồ sao và một ETL để kéo dữ liệu qua quy trình.Cấu trúc trong khu vực dàn dựng kho dữ liệu

Kimball nói về việc sử dụng khu vực dàn dựng để nhập, làm sạch, xử lý và mọi thứ cho đến khi bạn sẵn sàng đưa dữ liệu vào lược đồ hình sao. Trong thực tế, điều này thường có nghĩa là tải lên dữ liệu từ các nguồn vào một tập hợp các bảng có ít hoặc không có sửa đổi, tiếp theo là lấy dữ liệu tùy chọn thông qua các bảng trung gian cho đến khi nó sẵn sàng đi vào lược đồ sao. Đó là rất nhiều công việc cho một thực thể duy nhất, không có trách nhiệm duy nhất ở đây.

hệ thống

trước tôi đã làm việc trên đã thực hiện một sự phân biệt giữa các bộ khác nhau của bảng, trong phạm vi của việc có:

  • bảng Tải lên: hệ thống dữ liệu nguồn nguyên, chưa sửa đổi
  • Bàn dàn xếp: xử lý trung gian, đã nhập và được làm sạch
  • Bảng kho

Bạn có thể dính vào những trong lược đồ riêng biệt và sau đó áp dụng các chính sách khác nhau để lưu trữ/sao lưu/an ninh vv Một trong những kẻ khác đã làm việc trên một nhà kho, nơi có một StagingInputStagingOutput, câu chuyện tương tự . Nhóm nghiên cứu như một toàn thể có rất nhiều kinh nghiệm, cả hai datawarehouse và nếu không.

Tuy nhiên, mặc dù tất cả điều này, tìm kiếm thông qua Kimball và web dường như hoàn toàn không có gì bằng văn bản về việc cung cấp bất kỳ loại cấu trúc nào cho cơ sở dữ liệu dàn dựng. Người ta sẽ được tha thứ vì tin rằng ông Kimball sẽ khiến tất cả chúng tôi làm việc với dàn dựng như một hồ sơ dữ liệu không có cấu trúc sâu lớn.

Trong khi tất nhiên nó là khá rõ ràng làm thế nào để đi về nó nếu chúng ta muốn thêm một số cấu trúc nhiều hơn để các khu vực dàn dựng, nó có vẻ rất kỳ lạ mà dường như không có gì được viết về nó.

Vì vậy, những người khác đang làm gì ở đó? Được dàn dựng chỉ là mớ hỗn độn không có cấu trúc lớn này hay dân gian có một số thiết kế thú vị trên đó?

Trả lời

4

Tôi đã gặp phải sự cố tương tự. Chúng tôi có một DataWarehouse nhân sự lớn và tôi đang lấy dữ liệu từ các hệ thống trên toàn doanh nghiệp. Tôi có một bộ sưu tập các bảng Sự thật và Kích thước, nhưng khu vực dàn dựng là một mớ hỗn độn.Tôi không biết bất kỳ tiêu chuẩn nào về thiết kế này. Tôi sẽ đi theo cùng một con đường bạn đang ở trên và đưa ra một bộ tên chuẩn để giữ mọi thứ theo thứ tự. Đề xuất của bạn khá tốt cho việc đặt tên. Tôi sẽ tiếp tục làm việc với điều đó.

+0

Tò mò, một khu vực mà dường như không ai quan tâm đến, mà là một khu vực ảnh hưởng đến mọi dự án BI ở mọi quy mô. Tôi đoán rằng sự khác biệt về Tải lên và Dàn dựng sẽ cho chúng ta một số cấu trúc ít nhất. – NeedHack

-2

Cá nhân, tôi không tìm kiếm sự cố, trong Kimball hoặc ở nơi khác.

Bạn đang tìm loại "cấu trúc" nào? Bạn cảm thấy loại cấu trúc nào là cần thiết? Bạn thấy vấn đề gì từ việc thiếu "cấu trúc" bạn có ngày hôm nay?

Tôi có thể để lại cho bạn ấn tượng rằng tôi không nghĩ nhiều về Kimball. Không phải vậy - tôi chưa đọc Kimball. Tôi chỉ không nghĩ nhiều về việc thay đổi mọi thứ mà không có lý do gì ngoài việc phù hợp với một số mẫu. Thay đổi để giải quyết một số vấn đề trong thế giới thực sẽ ổn thôi. Ví dụ, nếu bạn thấy bạn đang sao lưu các bảng dàn vì thiếu cấu trúc khiến bảng dàn dựng và kho lưu trữ được xử lý giống nhau, thì đây sẽ là lý do để thay đổi cấu trúc. Nhưng nếu đó là loại điều bạn có trong tâm trí, thì bạn nên chỉnh sửa câu hỏi của bạn để chỉ ra nó.

+0

Trình điều khiển cho chúng tôi xem xét điều này ngay bây giờ là chúng tôi cần có thể tách quá trình "tải lên" khỏi quy trình "dàn dựng" khi nguồn cấp dữ liệu trở nên khả dụng vào các thời điểm khác nhau. Chúng tôi có yêu cầu tải lên nguồn cấp dữ liệu khi chúng có sẵn và sau đó chạy quá trình còn lại của ETL. Tại thời điểm này toàn bộ quá trình dàn dựng được trộn lẫn trong một loạt các nhiệm vụ lớn. Khá ngoài điều đó, có yêu cầu viết phần mềm có cấu trúc để đáp ứng các yêu cầu kiểm toán của chúng tôi. – NeedHack

+0

@ Chris: Bạn nên làm rõ câu hỏi của bạn, sau đó. Tôi đọc nó để nói về các bảng bên trong cơ sở dữ liệu và không phải về cấu trúc quy trình. Đó là một câu hỏi hoàn toàn khác. –

+0

Tôi không nghĩ rằng chúng ta hoàn toàn có thể tách biệt cấu trúc của ETL khỏi các bảng. Vâng, câu hỏi của tôi chủ yếu là về cấu trúc bảng (nó đi ngược lại với ngũ cốc để có một số lượng lớn các bảng không có RI, ràng buộc hoặc bất kỳ thứ gì), nhưng cấu trúc ETL dựa trên cách sắp xếp các bảng. – NeedHack

2

Có thể có các khu vực phụ trong Dàn dựng. Được gọi là staging1, staging2, chẳng hạn.

Dàn xếp 1 có thể là trực tiếp kéo từ các nguồn dữ liệu mà không cần chuyển đổi. Và Staging1 chỉ giữ dữ liệu mới nhất.

Staging2 giữ dữ liệu được chuyển đổi và sẵn sàng để chuyển đến kho. Staging2 giữ tất cả dữ liệu lịch sử.

+0

Cảm ơn Ken, vâng, điều này cũng tương tự như thiết kế mà tôi đã từng làm việc trong quá khứ. Điều tôi thấy lạ là không có gì được công bố về nó. – NeedHack

+0

Cá nhân tôi không khuyến khích tacking một số ở cuối tên bảng để biểu thị sự khác biệt trong cơ sở dữ liệu.Nếu tôi hít vào giản đồ đó, suy nghĩ đầu tiên của tôi sẽ giống như, 'ồ, đây phải là những bảng bị bỏ rơi mà nhóm không bao giờ xóa'. – Droogans

4

Chỉ cần một lưu ý, có một cuốn sách được gọi là "Bộ công cụ ETL Kho dữ liệu" của Raph Kimball và Joe Caserta, vì vậy ông Kimball đã nỗ lực vào việc này. :)

+0

Không có trong cuốn sách này – NeedHack

+0

có, tôi cũng đã kiểm tra. Bạn không chắc chắn lý do tại sao bạn tham chiếu chúng mà không cần tham khảo trang - trừ khi tôi không thể tìm thấy trang/phần. – LearnByReading

0

Hãy xem bài đăng này here. Nó đưa ra một cái nhìn tổng quan tốt về trách nhiệm của một khu vực dàn dựng trong một DW.

3

Hiện tại, chúng tôi đang thực hiện dự án DWH bảo hiểm lớn, nhưng mỗi bảng hệ thống nguồn được đưa vào một lược đồ riêng biệt trong cơ sở dữ liệu STAGING, sau đó chúng tôi có ETL di chuyển/làm sạch/tuân thủ (MDM) dữ liệu từ cơ sở dữ liệu dàn dựng vào cơ sở dữ liệu STAGINGCLEAN, sau đó thêm ETL để chuyển dữ liệu vào một DWG Kimball.

Việc tách cơ sở dữ liệu Staging và StagingClean chúng tôi thấy rất hữu ích trong việc chẩn đoán các vấn đề đặc biệt về chất lượng dữ liệu, vì chúng tôi có dữ liệu được phân tích bẩn cũng như phiên bản đã được làm sạch trước khi được chuyển đổi thành DWH phù hợp.

+0

Chúng tôi làm điều này với việc nhập khẩu thường xuyên vào cơ sở dữ liệu sản xuất (không phải là một kho dữ liệu). Không thể nói cho bạn biết dễ dàng hơn bao nhiêu khi thấy hàng triệu hồ sơ bị ô uế khi cố gắng cho thấy rằng vấn đề là dữ liệu của họ không phải là quá trình của chúng tôi. – HLGEM

0

Thật là một câu hỏi hay.

Trước đây chúng tôi đã sử dụng hậu tố _MIRR (đối với gương) cho dữ liệu chưa được chuyển đổi được đưa vào cơ sở dữ liệu, ví dụ: nó phản chiếu nguồn. Sau đó, chúng tôi sử dụng _STG cho dữ liệu được chuyển đổi từ nguồn, sau đó _DW cho lược đồ hình sao.

Bảng dàn tại đây sẽ ở trong 3NF. Tôi nghĩ đây là điểm mấu chốt. Dữ liệu được hạ cánh không được chuyển đổi và giữ riêng biệt với bước tiếp theo, nơi chúng tôi hoàn toàn bình thường hóa dữ liệu, trước khi làm phẳng tất cả nó vào lược đồ sao của chúng tôi để báo cáo.

Các vấn đề liên quan