2012-11-01 10 views
8

Buduję swoją pierwszą bazę danych w SQL 2008/SSIS i szukam najlepszych praktyk związanych z ładowaniem tabel faktów.SQL/SSIS DataWareHouse Ładowanie tabeli faktów, sprawdzone metody?

Obecnie w moim DW mam około 20 wymiarów (biura, pracownicy, produkty, klient, itp.), Które są typu 1 SCD. W mojej konstrukcji dw, istnieje kilka rzeczy, które zostały już zastosowane:

  • Brak wartości null (zastąpione puste dla tekstu lub 0 dla numeryczne podczas postoju)
  • nieznanych kluczowych członków zaludnionych w każdym wymiarze (SK ID 0)
  • upsert dla SCD Type 1 załadunkiem od etapu do stołu produkcyjnego
  • SELECT DISTINCT dla mojego załadunku wymiarach

W moim projekcie Fact loading SSIS, obecna metoda mam do wymiarów ładowania jest mając wiele wyszukiwań (20+) do każdego z modułów DIM, a następnie wypełniając tabelę FACT danymi.

Dla moich wyszukiwań ustawić:

  • Pełna Cache
  • ignorowanie niepowodzeń "żadne pasujące wpisy"
  • Pochodzące Transformacja "ISNULL (surrogate_idkey) 0: surrogate_idkey" dla każdego SK tak że jeśli wyszukiwania się nie powiodą, domyślnie przyjmą SK ID 0 (nieznany członek).
  • Niektóre z moich wyszukiwań wymiarowych mieć więcej niż jednej firmy kluczowego

Jest to najlepsze podejście? Załączam zdjęcia, aby pomóc w powyższym opisie.

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

Odpowiedz

5

wygląda dobrze. Istnieją opcje, jeśli zaczynasz napotkać problemy z wydajnością, ale jeśli jest to stabilne (kończy się w oknie czasu ładowania danych, systemy źródłowe nie są pozbawione zasobów itp.), To nie widzę powodu do zmiany.

niektórych potencjalnych problemów, aby mieć oko na ...

  1. mając 20+ full-cache-lookup transformacje mogą stanowić problem, jeśli wymiary wzrost wielkości ... ze względu na ograniczenia pamięci na SSIS system ... ale ponieważ są typu 1, nie martwiłbym się.
  2. pełnym cache wyszukiwań „hydrat” pre-wykonanie ... mając 20+ z nich może spowolnić

A wspólne alternatywy (do czego mają powyżej) jest wyodrębnić dane fakt tabelę z system źródłowy i wyląduj go w obszarze przemieszczania przed wykonaniem wyszukiwania kluczy wymiaru za pomocą pojedynczej instrukcji SQL. Niektóre nawet przechowują zestaw tabel odwzorowania kluczy wymiarów w obszarze przemieszczania specjalnie w tym celu. Zmniejsza to blokowanie/blokowanie w systemie źródłowym ... jeśli masz dużo danych przy każdym ładowaniu i musisz zablokować system źródłowy podczas wysysania danych i uruchamiać je przez te ponad 20 transformacji wyszukiwania.

Posiadanie dobrej strategii obszaru przemieszczania staje się ważniejsze, gdy masz dużą ilość danych, duże wymiary, złożone odwzorowania klawiszy (zwykle z powodu wielu systemów źródłowych) i krótkie okna ładowania danych.

+0

Dzięki Banton, aktualnie ładujemy (pełny zrzut) rekordy 4m, które zawierają około 200 kolumn; i około 2k wierszy nowych rekordów każdego dnia; etap ładowania jest dość szybki. Dzięki za opinie. – exxoid

+0

[Proszę PODĄŻAĆ, KORZYSTAĆ I UDOSTĘPNIĆ inicjatywę dedykowanej witryny BI.] (Http://area51.stackexchange.com/proposals/70503/business-intelligence?referrer=EPHSm8-3avvaMxLjdRIeNg2). Po raz pierwszy poruszyłem to pytanie w [Meta, gdy nie było propozycji stron BI.] (Http://meta.stackexchange.com/q/232414/201662) – bonCodigo

Powiązane problemy