Frage

ist ein Star-Schema-Design wichtig für einen Data Warehouse? Oder können Sie Daten tun Warehousing mit einem anderen Design-Muster?

War es hilfreich?

Lösung

Mit Sternschema für ein Data-Warehouse-System bekommt man mehrere Vorteile und in den meisten Fällen ist es angebracht, sie für die Deckschicht zu verwenden. Sie können auch einen Betriebsdatenspeicher (ODS) haben - eine normalisierte Struktur, die ‚aktuellen Stand‘ und erleichtert Vorgänge wie Daten Konformation hält. Allerdings gibt es vernünftige Situationen, in denen dies nicht erwünscht ist. Ich habe Gelegenheit gehabt, Systeme mit und ohne ODS Schichten zu bauen, und hatte spezifische Gründe für die Wahl der Architektur in jedem Fall.

Ohne in die subtlties von Data Warehouse-Architektur oder die Gründung einer Kimball gegen Inmon Flamme Krieg die wichtigsten Vorteile eines Sternschema sind:

  • Die meisten Datenbankmanagementsysteme haben Einrichtungen in den Abfrage-Optimierer ‚Star Transformations‘ zu tun, dass verwenden Bitmap Index Strukturen oder Index Überschneidung für schnelle Prädikat Auflösung. Dies bedeutet, dass die Auswahl von einem Stern-Schema kann, ohne auf die Faktentabelle durchgeführt werden (die in der Regel viel größer als die Indizes), bis die Auswahl aufgelöst wird.

  • Partitioning ein Star-Schema als nur die Tatsache Tabelle ist relativ einfach Bedürfnisse partitioniert werden (es sei denn, Sie einige biblisch große Abmessungen haben). Partition Elimination bedeutet, dass die Abfrage-Optimierer patitions ignorieren können, die möglicherweise nicht in den Abfrageergebnissen, die sparen I / O teilnehmen.

  • langsam Dimensionen ändern viel einfacher sind auf einem Stern-Schema als eine Schneeflocke zu implementieren .

  • Das Schema ist leichter zu verstehen und neigt zu beteiligen weniger schließt sich als ein Schneeflocke oder ER-Schema. Ihr Reporting Team wird Ihnen für diese Liebe

  • Star-Schemata viel einfacher zu bedienen ist und (noch wichtiger) machen eine gute Leistung mit Ad-hoc-Abfrage-Tool wie Business Objects oder Report Builder . Als Entwickler haben Sie sehr wenig Kontrolle über die SQL von diesen Tools erzeugt, so dass Sie die Abfrage-Optimierer so viel Hilfe wie möglich zu geben brauchen. Sternschemata geben den Abfrage-Optimierer relativ wenig Gelegenheit, es falsch zu erhalten.

Normalerweise würde Ihr Bericht Schicht verwendet Sternschemata es sei denn, Sie haben einen bestimmten Grund nicht an. Wenn Sie mehrere Quellsysteme haben können Sie einen rel="noreferrer"> mit einem normalisierten oder Snowflake-Schema der Daten zu akkumulieren. Das ist einfacher, weil ein ODS typischerweise keine Geschichte tun. Historischer Zustand ist in Sternschemata verfolgt, wo dies viel einfacher ist, zu tun, als mit normierten Strukturen. Eine normalisierte oder Schneeflocken Operational Data Store ‚aktuellen‘ Zustand reflektiert werden und stellen keine historischen Blick auf und über jeder halten, die in den Daten inhärent ist.

ODS Ladeprozesse beschäftigen sich mit Datenbereinigung und konform, die mit einer normalisierten Struktur leichter zu tun ist. Sobald Sie haben saubere Daten in einer ODS, Dimension und Tatsache Lasten können mit generischen oder relativ einfachen Mechanismen relativ einfach Geschichte (Veränderungen im Laufe der Zeit) verfolgen; das ist viel einfacher, mit einem Star-Schema, viele ETL-Tools (zum Beispiel) zu tun, bietet eingebaute Einrichtungen für langsam charn de Abmessungen und einen allgemeinen Mechanismus zur Implementierung ist relativ einfach.

das System Layering auf diese Weise providies eine Trennung der Verantwortlichkeiten - Geschäfts- und Datenbereinigungslogik behandelt in der ODS und die Star-Schema Lasten beschäftigen sich mit historischen Zustand

.

Andere Tipps

Es gibt eine laufende Debatte in dem Data-Warehousing litterature über mit in der Data-Warehouse-Architektur des Star-Schema Design angewendet werden sollte.

Kurz gesagt Kimball Befürworter sehr hoch für die Verwendung nur mit dem Star-Schema-Design in dem Data-Warehouse, während Inmon will zuerst ein Enterprise Data Warehouse mit normalisiert bauen 3NF Design und später verwenden, um das Stern-Schema-Design in dem Datamarts.

Neben Ihnen hier auch, dass Snowflake-Schema-Design könnte sagen ein weiterer Ansatz ist.

Ein vierte Entwurf des Data Vault Ansatz sein könnte.

Star-Schemata verwendet werden, um Hochgeschwindigkeitszugriff auf große Datenmengen zu ermöglichen. Die hohe Leistung wird durch die Verringerung der Menge des benötigten aktiviert Joins jede Abfrage satsify, die gegen das Fachgebiet vorgenommen werden kann. Dies erfolgt durch Datenredundanz in Maßtabellen ermöglicht.

Sie müssen bedenken, dass das Star-Schema ein Muster für die Deckschicht für das Lager ist. Alle Modelle beinhalten auch Staging-Schemata am unteren Rand des Lagerstapel, und einige von ihnen auch eine persistente fusionierte Staging-Bereich umgewandelt, in dem alle Quellsystemen in ein 3NF modellierten Schema zusammengeführt werden. Die verschiedenen Themenbereiche sitzen darüber.

Alternativen zu Sternschemata auf der obersten Ebene umfassen eine Variation, die ein Snowflake-Schema ist. Eine neue Methode, die auch einige Untersuchungen bestätigen kann, ist Data Vault von Dan Linstedt vorgeschlagen.

Die Sache mit Sternschemata ist sie ein natürliches Modell für die Art von Dingen, ist die meisten Menschen mit einem Data-Warehouse tun mögen. Zum Beispiel ist es einfach, Berichte mit unterschiedlicher Granularität (Monat oder Tag oder Jahr zum Beispiel) zu erzeugen. Es ist auch ein effizientes typische Geschäftsdaten in ein Sternschema einzufügen, wieder ein gemeinsames und wichtiges Merkmal eines Data Warehouse.

Sie können sicher jede Art von Datenbank verwenden Sie wollen, aber es sei denn, Sie Ihr Unternehmen Domain wissen sehr gut, ist es wahrscheinlich, dass Ihre Berichte werden nicht so effizient, wie sie konnten laufen, wenn Sie ein Star-Schema benutzt hatte.

Star-Schemata sind eine natürliche Ergänzung für die letzte Schicht eines Data Warehouse. Wie Sie bekommen dort eine andere Frage. Soweit ich weiß, gibt es zwei große Lager, die von Bill Inmon und Ralph Kimball. Sie könnten an den Theorien dieser beiden Jungs aussehen soll, wenn / wenn Sie mit einem Stern gehen zu entscheiden.

Auch einige Reporting-Tools wirklich wie der Star-Schema-Setup. Wenn Sie in ein bestimmtes Reporting-Tool gesperrt sind, das könnte fahren, was die Berichterstattung Mart wie in Ihrem Lager aussieht.

Star-Schema ist ein logisches Datenmodell für relationale Datenbanken, die die regulären Data Warehousing Bedürfnisse entsprechen; wenn die relationale Umgebung gegeben ist, ein Stern oder ein Snowflake-Schema wird ein gutes Design-Muster sein, fest verdrahtet in vielen DW Design-Methoden.

Es gibt jedoch auch andere als relationale Datenbank-Engines zu, und sie können für eine effiziente Data Warehousing verwendet werden. Mehrdimensionale Speicher-Engines können sehr schnell für OLAP Aufgaben sein (TM1 eg.); wir können nicht Sterne-Schema-Design in diesem Fall keine Anwendung. Andere Beispiele, die besondere logische Modelle umfassen XML-Datenbanken oder spaltenorientierte Datenbanken (z. B. die experimentelle C-store ) ).

Es ist möglich, ohne zu tun. Sie werden jedoch das Leben schwer für sich selbst machen - Ihre Organisation Standard-Tools nutzen wollen, die auf DW-leben, und diese Werkzeuge ein Star-Schema erwarten - viel Aufwand wird verbrachte einen quadratischen Pflock in ein rundes sitz Loch.

Viele Datenbank-Level-Optimierungen gehen davon aus, dass Sie ein Star-Schema haben; Sie werden viel Zeit zu optimieren und die Umstrukturierung auf die DB zu tun zu bekommen „das Richtige“ mit nicht-ganz-Sterne-Layout verbringen.

Stellen Sie sicher, dass die Profis überwiegen die Nachteile ..

(Klingt es wie ich schon dort gewesen?)

D

Es gibt drei Probleme, die wir lösen müssen.

aus dem operativen Quellsystem

1) Wie die Daten zu erhalten, ohne auf sie unangemessenen Druck setzen von Tabellen innerhalb und zwischen ihnen verbinden, Reinigungs Daten wie wir extrahieren, Erstellen von Ableitungen etc.

2) Entfernen von Daten aus unterschiedlichen Quellen verschmelzen - einiges Vermächtnis, eine Datei auf, aus verschiedenen Abteilungen in ein integriertes, präzisen, effizient gespeicherten Ganzen, das Modell des Geschäft, und spiegelt nicht die Strukturen der Quellsysteme. Denken Sie daran, Systeme ändern / relativ schnell ersetzt, aber das Basismodell des Geschäft langsam ändert.

3) Wie die Daten zu strukturieren spezifische Analyse- und Berichtsanforderungen für bestimmte Personen / Abteilungen des Unternehmens gerecht zu werden, so schnell und genau wie möglich.

Die Lösung für diese drei sehr unterschiedlichen Probleme erfordern unterschiedliche Architekturschichten, sich zu lösen

Staging-Schicht Wir wiederholen die Strukturen der Quellen, sondern nur die geänderten Daten aus den Quellen werden jede Nacht geladen. Sobald die Daten von der Zwischenspeicherschicht in die nächste Schicht entnommen wird, werden die Daten fallen gelassen. Abfragen sind Einzeltabellenabfragen mit einem einfachen data_time Filter. Sehr geringe Wirkung auf die Quelle.

Unternehmensebene Dies ist eine Business-orientierte 3. Normalform-Datenbank. Die Daten werden extrahiert (und später fallen gelassen) von der Stufenschicht in die Unternehmensebene, wo es gereinigt wird, integriert und normalisiert.

Präsentation (Star-Schema) Schicht Dabei modellieren wir formspezifischen Anforderungen gerecht zu werden. Die Daten sind absichtlich entnormalisiert die Anzahl von Verknüpfungen zu reduzieren. Hierarchien, die mehrere Tabellen in der Enterprise-Ebene belegen können, werden in einer einzigen Maßtabellen kollabiert und mehrere Transaktionstabellen können in einzelne Faktentabellen zusammengefasst werden.

Sie stehen immer diese drei Probleme. Wenn Sie sich mit der Unternehmensebene zu tun, weg, Sie immer noch das zweite Problem zu lösen, aber Sie müssen es tun, in der Sternschema Schicht, und meiner Meinung nach ist dies der falsche Ort, um es zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top