2012-11-01 25 views
8

Tôi đang xây dựng kho dữ liệu đầu tiên của mình trong SQL 2008/SSIS và tôi đang tìm kiếm một số phương pháp hay nhất xung quanh việc tải các bảng thực tế.SQL/SSIS DataWareHouse Tải bảng thực tế, thực tiễn tốt nhất?

Hiện tại trong DW của tôi, tôi có khoảng 20 Kích thước (Văn phòng, Nhân viên, Sản phẩm, Khách hàng, v.v.) thuộc loại SCD Loại 1. Trong cấu trúc dw của tôi, có một vài điều tôi đã áp dụng:

  • Không Nulls (thay thế bằng trống cho văn bản hoặc 0 cho số trong dàn)
  • thành viên chủ chốt chưa biết dân cư ở mỗi chiều (SK ID 0)
  • UPSERT cho Loại SCD 1 tải từ sân khấu để bàn sản xuất
  • SELECT DISTINCT để tải của tôi về kích thước

trong dự án bốc SSIS Fact của tôi, phương pháp hiện tại tôi đã cho kích thước tải là có nhiều lần tra cứu (20+) cho mỗi DIM, sau đó điền bảng FACT với dữ liệu.

Đối tra cứu của tôi, tôi thiết lập:

  • Full cache
  • Bỏ qua thất bại cho "không có bài phù hợp với"
  • Transformation Xuất phát với "ISNULL (surrogate_idkey) 0: surrogate_idkey" cho mỗi SK để nếu tra cứu thất bại họ sẽ mặc định SK ID 0 (thành viên không xác định).
  • Một số tra cứu không gian của tôi có nhiều hơn một doanh nghiệp chủ chốt

Đây có phải là phương pháp tốt nhất? Hình ảnh được đính kèm để trợ giúp với mô tả của tôi ở trên.

enter image description here enter image description here enter image description here

Trả lời

5

Trông tốt. Có các tùy chọn nếu bạn bắt đầu chạy vào các vấn đề hiệu suất, nhưng nếu điều này ổn định (kết thúc trong cửa sổ thời gian tải dữ liệu, hệ thống nguồn không bị cạn kiệt tài nguyên, vv), thì tôi không thấy lý do gì để thay đổi.

Một số vấn đề tiềm năng để giữ một mắt trên ...

  1. có 20+ full-cache tra cứu-biến đổi có thể gây ra một vấn đề nếu kích thước của bạn tăng kích thước ... do hạn chế về bộ nhớ trên SSIS hệ thống ... nhưng vì chúng là loại 1, tôi sẽ không lo lắng.
  2. tra cứu toàn bộ nhớ cache "hydrat" trước thực hiện ... có hơn 20 trong số họ có thể làm chậm bạn xuống

Một lựa chọn phổ biến (với những gì bạn có ở trên) là để trích xuất các dữ liệu bảng thực tế từ hệ thống nguồn và đưa nó vào một khu vực dàn dựng trước khi thực hiện tra cứu khóa kích thước thông qua một câu lệnh SQL đơn. Một số thậm chí giữ một tập hợp các bảng ánh xạ khóa thứ nguyên trong khu vực dàn dựng đặc biệt cho mục đích này. Điều này làm giảm khóa/chặn trên hệ thống nguồn ... nếu bạn có nhiều dữ liệu mỗi lần tải và phải chặn hệ thống nguồn trong khi bạn hút dữ liệu ra và chạy nó thông qua các biến đổi tra cứu 20+ đó.

Có chiến lược vùng dàn dựng tốt trở nên quan trọng hơn khi bạn có một lượng lớn dữ liệu, kích thước lớn, ánh xạ khóa phức tạp (thường do nhiều hệ thống nguồn) và thời gian tải dữ liệu ngắn.

+0

Cảm ơn Banton, hiện tại chúng tôi đang tải (đầy đủ bãi) bản ghi 4m chứa khoảng 200 cột; và khoảng 2k hàng hồ sơ mới mỗi ngày; giai đoạn tải khá nhanh. Cảm ơn vì bạn đã phản hồi. – exxoid

+0

[Vui lòng THEO D ,I, SỬ DỤNG VÀ CHIA SẺ sáng kiến ​​dành cho trang web BI chuyên dụng.] (Http://area51.stackexchange.com/proposals/70503/business-intelligence?referrer=EPHSm8-3avvaMxLjdRIeNg2). Lần đầu tiên tôi đưa ra câu hỏi này trong [Meta khi không có đề xuất trang web BI.] (Http://meta.stackexchange.com/q/232414/201662) – bonCodigo

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