Data Warehousing - Optimierung

Ein Data Warehouse entwickelt sich ständig weiter und es ist unvorhersehbar, welche Abfrage der Benutzer in Zukunft veröffentlichen wird. Daher wird es schwieriger, ein Data Warehouse-System zu optimieren. In diesem Kapitel wird erläutert, wie Sie die verschiedenen Aspekte eines Data Warehouse wie Leistung, Datenlast, Abfragen usw. optimieren.

Schwierigkeiten bei der Optimierung von Data Warehouse

Das Optimieren eines Data Warehouse ist aus folgenden Gründen schwierig:

  • Data Warehouse ist dynamisch. es bleibt niemals konstant.

  • Es ist sehr schwierig vorherzusagen, welche Abfrage der Benutzer in Zukunft veröffentlichen wird.

  • Die Geschäftsanforderungen ändern sich mit der Zeit.

  • Benutzer und ihre Profile ändern sich ständig.

  • Der Benutzer kann von einer Gruppe zur anderen wechseln.

  • Die Datenlast im Lager ändert sich ebenfalls mit der Zeit.

Note - Es ist sehr wichtig, über umfassende Kenntnisse des Data Warehouse zu verfügen.

Leistungsbewertung

Hier ist eine Liste objektiver Leistungsmaßstäbe -

  • Durchschnittliche Antwortzeit für Abfragen
  • Scan-Raten
  • Zeit pro Tag Abfrage verwendet
  • Speichernutzung pro Prozess
  • E / A-Durchsatzraten

Im Folgenden sind die Punkte aufgeführt, an die Sie sich erinnern sollten.

  • Die Maßnahmen müssen im Service Level Agreement (SLA) angegeben werden.

  • Es nützt nichts, die Reaktionszeit zu optimieren, wenn sie bereits besser als die erforderlichen sind.

  • Es ist wichtig, realistische Erwartungen bei der Leistungsbewertung zu haben.

  • Es ist auch wichtig, dass die Benutzer realisierbare Erwartungen haben.

  • Um die Komplexität des Systems vor dem Benutzer zu verbergen, sollten Aggregationen und Ansichten verwendet werden.

  • Es ist auch möglich, dass der Benutzer eine Abfrage schreiben kann, auf die Sie nicht abgestimmt haben.

Optimierung des Datenladens

Das Laden von Daten ist ein kritischer Bestandteil der Verarbeitung über Nacht. Nichts anderes kann ausgeführt werden, bis das Laden der Daten abgeschlossen ist. Dies ist der Einstiegspunkt in das System.

Note- Wenn sich die Übertragung der Daten oder das Eintreffen der Daten verzögert, ist das gesamte System stark betroffen. Daher ist es sehr wichtig, zuerst die Datenlast zu optimieren.

Es gibt verschiedene Ansätze zum Optimieren der Datenlast, die im Folgenden erläutert werden:

  • Der sehr gebräuchliche Ansatz ist das Einfügen von Daten mit dem SQL Layer. Bei diesem Ansatz müssen normale Überprüfungen und Einschränkungen durchgeführt werden. Wenn die Daten in die Tabelle eingefügt werden, wird der Code ausgeführt, um zu prüfen, ob genügend Platz zum Einfügen der Daten vorhanden ist. Wenn nicht genügend Speicherplatz verfügbar ist, muss diesen Tabellen möglicherweise mehr Speicherplatz zugewiesen werden. Diese Überprüfungen dauern einige Zeit und sind für die CPU kostspielig.

  • Der zweite Ansatz besteht darin, alle diese Überprüfungen und Einschränkungen zu umgehen und die Daten direkt in die vorformatierten Blöcke zu platzieren. Diese Blöcke werden später in die Datenbank geschrieben. Es ist schneller als der erste Ansatz, kann jedoch nur mit ganzen Datenblöcken arbeiten. Dies kann zu Platzverschwendung führen.

  • Der dritte Ansatz besteht darin, dass beim Laden der Daten in die Tabelle, die die Tabelle bereits enthält, Indizes verwaltet werden können.

  • Der vierte Ansatz besagt, dass zum Laden der Daten in Tabellen, die bereits Daten enthalten, drop the indexes & recreate themwenn das Laden der Daten abgeschlossen ist. Die Wahl zwischen dem dritten und dem vierten Ansatz hängt davon ab, wie viele Daten bereits geladen sind und wie viele Indizes neu erstellt werden müssen.

Integritätsprüfungen

Die Integritätsprüfung wirkt sich stark auf die Leistung der Last aus. Im Folgenden sind die Punkte aufgeführt, an die Sie sich erinnern sollten:

  • Integritätsprüfungen müssen begrenzt werden, da sie viel Rechenleistung erfordern.

  • Integritätsprüfungen sollten auf das Quellsystem angewendet werden, um eine Leistungsverschlechterung der Datenlast zu vermeiden.

Abfragen optimieren

Wir haben zwei Arten von Abfragen im Data Warehouse -

  • Abfragen behoben
  • Ad-hoc-Anfragen

Behobene Abfragen

Feste Abfragen sind gut definiert. Es folgen Beispiele für feste Abfragen -

  • regelmäßige Berichte
  • Eingemachte Abfragen
  • Gemeinsame Aggregationen

Das Optimieren der festen Abfragen in einem Data Warehouse erfolgt wie in einem relationalen Datenbanksystem. Der einzige Unterschied besteht darin, dass die abzufragende Datenmenge unterschiedlich sein kann. Es ist gut, den erfolgreichsten Ausführungsplan zu speichern, während feste Abfragen getestet werden. Durch Speichern dieses Ausführungsplans können wir die sich ändernde Datengröße und den Datenversatz erkennen, da sich der Ausführungsplan ändert.

Note - Wir können nicht mehr für Faktentabellen tun, aber während wir uns mit Dimensionstabellen oder Aggregationen befassen, können diese Abfragen mithilfe der üblichen Sammlung von SQL-Optimierungen, Speichermechanismen und Zugriffsmethoden optimiert werden.

Ad-hoc-Abfragen

Um Ad-hoc-Abfragen zu verstehen, ist es wichtig, die Ad-hoc-Benutzer des Data Warehouse zu kennen. Für jeden Benutzer oder jede Benutzergruppe müssen Sie Folgendes wissen:

  • Die Anzahl der Benutzer in der Gruppe
  • Ob sie in regelmäßigen Abständen Ad-hoc-Abfragen verwenden
  • Ob sie häufig Ad-hoc-Abfragen verwenden
  • Ob sie gelegentlich Ad-hoc-Abfragen in unbekannten Intervallen verwenden.
  • Die maximale Größe der Abfrage, die sie normalerweise ausführen
  • Die durchschnittliche Größe der Abfrage, die sie normalerweise ausführen
  • Gibt an, ob ein Drilldown-Zugriff auf die Basisdaten erforderlich ist
  • Die verstrichene Anmeldezeit pro Tag
  • Die Spitzenzeit des täglichen Gebrauchs
  • Die Anzahl der Abfragen, die pro Spitzenstunde ausgeführt werden

Points to Note

  • Es ist wichtig, die Benutzerprofile zu verfolgen und die Abfragen zu identifizieren, die regelmäßig ausgeführt werden.

  • Es ist auch wichtig, dass die durchgeführte Abstimmung die Leistung nicht beeinträchtigt.

  • Identifizieren Sie ähnliche und Ad-hoc-Abfragen, die häufig ausgeführt werden.

  • Wenn diese Abfragen identifiziert werden, ändert sich die Datenbank und es können neue Indizes für diese Abfragen hinzugefügt werden.

  • Wenn diese Abfragen identifiziert werden, können neue Aggregationen speziell für diejenigen Abfragen erstellt werden, die zu ihrer effizienten Ausführung führen würden.