So speichern und laden Sie eine RDS-Datei in R
Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.
Wir werden unsere Serie zur LuckyTemplates-Projektplanung und -implementierung fortsetzen. Dieses Mal diskutieren wir über Datensatzdesign , Profilerstellung und Modi . Schauen Sie sich den ersten Teil unserer Projektplanungsreihe an, in dem es um Bereitstellungsmodi geht , und den zweiten Teil, in dem es um Erkennung und Aufnahme geht .
Inhaltsverzeichnis
Datensatzdesign für die Implementierung von LuckyTemplates-Projekten
Lassen Sie uns über den Datensatzentwurfsprozess sprechen und die Data Warehouse-Busmatrix besprechen , ein Tool, das es schon seit einiger Zeit gibt.
Das Entwerfen von LuckyTemplates-Datensätzen ähnelt dem Entwerfen von Data Warehouses. Daher verfügen sowohl Datensätze als auch Data Warehouses über ähnliche Konzepte wie Fakten- und Dimensionstabellen, Sternschemata, sich langsam ändernde Dimensionen, Granularität von Faktentabellen und lokale informierte Schlüssel zum Aufbau von Beziehungen zwischen Tabellen.
4 Schritte zum Datensatzdesign
Der Datensatzentwurfsprozess besteht aus vier Schritten: Wählen Sie den Geschäftsprozess aus , deklarieren Sie die Struktur Ihrer Faktentabellen, identifizieren Sie die Dimensionen und definieren Sie dann die Fakten .
Wählen Sie den Geschäftsprozess aus.
Im ersten Schritt wird jeder Geschäftsprozess durch eine Faktentabelle mit einem Sternschema einer Viele-zu-Eins-Beziehung zu den Dimensionen dargestellt.
Während eines Ermittlungs- oder Anforderungserfassungsprozesses ist es schwierig, sich isoliert auf einen einzelnen Geschäftsprozess zu konzentrieren, da Benutzer regelmäßig mehrere Geschäftsprozesse gleichzeitig analysieren.
Das Anti-Pattern, das Sie bei der LuckyTemplates-Implementierung vermeiden sollten
Das übliche Anti-Pattern (das eine Reaktion auf ein wiederkehrendes Problem darstellt, das im Allgemeinen ineffektiv und potenziell kontraproduktiv ist), das Sie in LuckyTemplates-Projekten vermeiden möchten, ist die Entwicklung von Datensätzen für bestimmte Projekte oder Teams und nicht für die Geschäftsprozesse .
Beispielsweise die Entwicklung eines Datensatzes exklusiv für das Marketingteam und eines weiteren Datensatzes für die Vertriebsorganisation. Dieser Ansatz führt natürlich zu einer Verschwendung von Ressourcen, da dieselben Verkaufsdaten in beiden Datensätzen zweimal abgefragt und aktualisiert werden. Diese verbrauchen auch Speicherressourcen im LuckyTemplates-Dienst.
Dies sind einige der Gründe, warum Sie einen guten Prozess für das Datensatzdesign durchlaufen möchten. Ein isolierter Ansatz führt zu Problemen bei der Verwaltbarkeit und Versionskontrolle, da die Datensätze Variationen und Transformationen enthalten können.
Obwohl die analytischen Anforderungen der Benutzer oder Teams bei LuckyTemplates-Projekten im Vordergrund stehen, ist es auch wichtig, nachhaltige Lösungen zu planen, die letztendlich von allen Teams gemeinsam genutzt werden können.
Getreide deklarieren.
Die Körnung von Faktentabellen deckt letztendlich den Detaillierungsgrad ab, der für analytische Abfragen verfügbar ist, sowie die Datenmenge, auf die zugegriffen werden kann.
Eine höhere Körnung bedeutet also mehr Details, während eine geringere Körnung weniger Details bedeutet. Ein Beispiel hierfür ist, wenn Sie die Ebene der Kundenauftragspositionen abrufen möchten oder wenn Sie möchten, dass das Projekt nur die Zusammenfassungsebene jedes Kundenauftrags enthält und nicht auf die spezifischen Produkte eingeht, die im Rahmen dieses Verkaufs bestellt wurden.
Manchmal kann diese Körnung je nach Zeitrahmen variieren. Ich bin auf eine Reihe von Kunden gestoßen, die sehr detaillierte Faktentabellen für das laufende Quartal wünschen, aber für frühere Quartale lediglich wissen mussten, wie hoch der Gesamtumsatz des Quartals war.
In diesem Schritt möchten Sie bestimmen, was jede Zeile der verschiedenen Geschäftsprozesse darstellt . Beispielsweise stellt jede Zeile der Verkaufsfaktentabelle aus unserem Data Warehouse die Zeile eines Kundenauftrags dar.
Umgekehrt werden die Zeilen eines Umsatz- und Margenplans in einem Kalendermonat, einer Produktunterkategorie und einer Vertriebsgebietsregion aggregiert. In diesem Fall haben Sie also zwei verschiedene Faktentabellen und zwei verschiedene Körnungen. Wenn Sie die beiden vergleichen möchten, ist einiges an Datenmodellierungsarbeit erforderlich.
Identifizieren Sie die Abmessungen.
Abmessungen sind lediglich ein natürliches Nebenprodukt der im vorherigen Entwurfsschritt gewählten Maserung.
Daher sollte eine einzelne Beispielzeile aus der Faktentabelle klar die mit dem gegebenen Prozess verbundenen Dimensionen der Geschäftseinheit angeben, z. B. den Kunden, der ein einzelnes Projekt gekauft hat, das Produkt an einem bestimmten Datum und zu einer bestimmten Zeit. Faktentabellen, die niedrigere Körner darstellen, haben weniger Dimensionen.
Beispielsweise kann eine Faktentabelle, die die Kopfebene einer Bestellung darstellt, den Lieferanten identifizieren, nicht jedoch den einzelnen Produktkauf beim Lieferanten. In diesem Fall benötigen Sie also keine Produktkategorie- oder Produktunterkategoriedimension.
Definieren Sie die Fakten.
Die Fakten stellen die numerischen Spalten dar, die in den Faktentabellen enthalten sind. Während also die Dimensionsspalten aus Schritt 3 für Beziehungen verwendet werden, werden die Faktenspalten in Kennzahlen verwendet, die Aggregationslogik enthalten, beispielsweise die Summe einer Mengenspalte oder der Durchschnitt einer Preisspalte.
Datenbusmatrix für die Implementierung von LuckyTemplates-Projekten
Die Data-Warehouse-Busmatrix ist ein Grundbestandteil der Data-Warehouse-Architektur von Ralph Kimball, die einen inkrementellen und integrierten Ansatz für das Data-Warehouse-Design bietet.
Die Architektur, die Sie hier sehen, stammt aus The Data Warehouse Toolkit , 3. Auflage von Ralph Kimball. Es ermöglicht skalierbare Datenmodelle, die häufig mehrere Geschäftsteams oder -funktionen benötigen, um auf dieselben Geschäftsprozesse und -dimensionen zuzugreifen.
Es ist nützlich, eine Data-Warehouse-Busmatrix bei sich zu haben. Wenn Sie es ausfüllen, wissen Sie, ob es andere Datensätze gibt, die ähnliche Internet-Faktentabellen und Dimensionstabellen enthalten. Dies fördert die Wiederverwendbarkeit des Projekts und verbessert die Projektkommunikation.
Jede Zeile spiegelt also einen wichtigen und wiederkehrenden Geschäftsprozess wider, beispielsweise den monatlichen Abschluss des Hauptbuchs. Jede Spalte stellt eine Geschäftseinheit dar, die sich auf einen oder mehrere Geschäftsprozesse beziehen kann, während die schattierten Zeilen den Geschäftsprozess darstellen, der in das Projekt einbezogen wird.
Datenprofilierung für die LuckyTemplates-Implementierung
Sobald Sie die Körnung identifiziert haben und der vierstufige Datensatzentwurfsprozess abgeschlossen ist, sollte sofort eine technische Analyse der Quelldaten der Fakten- und Dimensionstabellen erfolgen .
Technische Metadaten, einschließlich Datenbankdiagrammen und Datenprofilierungsergebnissen, sind für die Projektplanungsphase unerlässlich.
Diese Informationen werden verwendet, um sicherzustellen, dass der LuckyTemplates-Datensatz die beabsichtigten Geschäftsdefinitionen widerspiegelt und auf einer soliden und vertrauenswürdigen Quelle basiert.
Es gibt also drei verschiedene Möglichkeiten, diese Profilierungsinformationen zu sammeln. Dies sollte der allererste Schritt sein, den die Leute unternehmen werden, wenn sie den Designprozess verlassen haben.
SQL Server-Integrationsdienste
Es gibt mehrere Möglichkeiten, dies zu erreichen. Eine Methode besteht darin, eine Datenprofilierungsaufgabe innerhalb eines SQL Server Integration Services (SSIS)-Pakets zu verwenden.
Die Datenprofilierungsaufgabe erfordert eine ADO.NET-Verbindung und kann ihre Ausgabe in eine XML-Datei oder eine SSIS-Variable schreiben.
In diesem Beispiel sind die ADO.NET-Quelldaten ein AdventureWorks-Data-Warehouse, eine Datenbank und ein SQL-Server, und das Ziel ist eine XML-Datei.
Sobald die Aufgabe ausgeführt ist, kann die XML-Datei über einen SQL Server-Datenprofil-Viewer gelesen werden. Sie können die Ergebnisse als Nullanzahl und Nullanzahlprozentsätze sehen.
DAX Studio
Eine weitere Möglichkeit der Datenprofilierung ist DAX Studio. Sie müssen die Daten tatsächlich in einen LuckyTemplates-Datensatz aufnehmen, indem Sie zu DAX Studio gehen, zur Registerkarte „Erweitert“ wechseln und den VertiPaq-Analyzer ausführen .
Es zeigt Ihnen die gleichen Informationen zur Kardinalität Ihrer Spalten an, sodass Sie wissen, welche den meisten Platz in Ihrem Datenmodell beanspruchen. Es enthält alle verschiedenen Statistiken rund um die Daten.
LuckyTemplates-Desktop
Die Datenprofilerstellung ist auch in Power Query innerhalb des LuckyTemplates-Desktops verfügbar. Wenn Sie zur Registerkarte „Ansicht“ wechseln , können Sie Dinge wie Spaltenqualität, Spaltenverteilung und Spaltenprofil aktivieren. Zumindest für die ersten tausend Zeilen können Sie Informationen wie Fehler, Nullen, Durchschnittswerte und Standardabweichungen sehen.
Datensatzplanung für die LuckyTemplates-Implementierung
Nachdem die Quelldaten profiliert und anhand der im vierstufigen Datensatzentwurfsprozess ermittelten Anforderungen bewertet wurden, kann das BI-Team die Implementierungsoptionen für den Datensatz weiter analysieren.
In fast allen LuckyTemplates-Projekten, selbst solchen mit erheblichen Investitionen in Unternehmensdaten, Lager, Architektur und ETL-Tools und -Prozesse, ist ein gewisses Maß an zusätzlicher Logik, Integration oder Transformation erforderlich, um die Qualität und den Wert der Quelldaten zu verbessern.
In der Datensatzplanungsphase wird bestimmt, wie die identifizierten Datentransformationsprobleme angegangen werden, um den Datensatz zu unterstützen. Darüber hinaus muss das Projektteam entscheiden, ob ein Importmodus-Datensatz , ein Direktabfrage-Datensatz oder ein zusammengesetzter Datensatz entwickelt werden soll .
Um den Datensatzplanungsprozess zu verdeutlichen, identifiziert dieses Diagramm die verschiedenen Ebenen des Data Warehouse und des LuckyTemplates-Datensatzes, in denen Transformation und Geschäftslogik implementiert werden können.
In einigen Projekten ist eine minimale Transformation erforderlich und sie kann problemlos in den LuckyTemplates-Datensatz aufgenommen werden. Wenn beispielsweise nur wenige zusätzliche Spalten für eine Dimensionstabelle benötigt werden und es klare Anleitungen zur Berechnung dieser Spalten gibt, kann sich die IT-Organisation dafür entscheiden, diese Transformationen in M-Power-Abfragen zu implementieren, anstatt das Data Warehouse zu überarbeiten.
Wenn die erhebliche Lücke zwischen den BI-Anforderungen und dem Data Warehouse des Unternehmens bestehen bleibt, wird die Erstellung und Pflege der LuckyTemplates-Datensätze komplexer.
Datensatzdesigner sollten die Auswirkungen von Datensätzen bei höherer Komplexität regelmäßig analysieren und kommunizieren.
Wenn die erforderliche Transformationslogik jedoch komplex oder umfangreich ist und mehrere gemeinsame Vorgänge, Zeilenfilter und Datentypänderungen umfasst, kann sich die IT-Organisation dafür entscheiden, wesentliche Änderungen im Data Warehouse zu implementieren, um den neuen Datensatz und zukünftige BI-Projekte zu unterstützen.
Beispielsweise sind möglicherweise eine Staging-Tabelle und eine SQL-Speicherprozedur erforderlich, um den Prozess zu unterstützen, zu überarbeiten und zu aktualisieren, oder die Erstellung eines Index ist möglicherweise erforderlich, um die Abfrageleistung für DirectQuery-Datensätze zu verbessern.
Auswählen eines Datensatzmodus
Ein nachfolgender, aber eng mit der Datensatzplanung verbundener Schritt ist die Wahl zwischen dem Standardimportmodus, dem DirectQuery-/Live-Modus oder dem zusammengesetzten Modus.
Bei manchen Projekten ist dies eine einfache Entscheidung, bei der angesichts der bekannten Anforderungen nur eine Option machbar oder realistisch ist, während bei anderen Projekten eine umfassende Analyse der Vor- und Nachteile jedes Entwurfs erforderlich ist.
Wenn also eine Datenquelle als langsam oder schlecht für die Bewältigung einer großen Menge analytischer Abfragen angesehen wird, ist ein Datensatz im Importmodus höchstwahrscheinlich die bevorzugte Option.
Wenn eine nahezu Echtzeit-Sichtbarkeit einer Datenquelle unerlässlich ist, ist DirectQuery oder der Live-Modus die einzige Möglichkeit, dies zu erreichen. Der DirectQuery- und der Live-Modus sind einander sehr ähnlich. Bei beiden Methoden werden Daten nicht im Datensatz selbst gespeichert, und beide Methoden fragen die Quellsysteme direkt ab, um Daten basierend auf Benutzeraktionen abzurufen. Wir haben jetzt DirectQuery für LuckyTemplates-Datensätze und DirectQuery für Analysis Services.
Einige Fragen, die Sie bei der Auswahl von Datensatzmodi stellen sollten
Hier sind einige Fragen, die Sie bei der Entscheidung für den zu verwendenden Modus stellen sollten. Gibt es eine einzige Quelle für unseren Datensatz? Wenn es keine einzelne Quelle gibt, konnten Sie DirectQuery/Live-Quelle in der Vergangenheit nicht verwenden.
Auch wenn wir jetzt Datensätze im zusammengesetzten Modus haben, ist es immer noch eine gute Frage, sie gleich zu Beginn zu stellen, denn wenn es keine einzelne Quelle gibt, handelt es sich entweder um importierte oder zusammengesetzte Daten.
Wenn DirectQuery/Live-Quelle eine Option ist, ist die Quelle in der Lage, analytische Abfragen zu unterstützen? Wenn Sie mit Milliarden oder Billionen Zeilen arbeiten, ist ein Datensatz im Importmodus möglicherweise nicht möglich und Sie müssen in den DirectQuery- oder Verbundmodus wechseln, um sicherzustellen, dass der Datensatz verwendbar ist.
Wenn die DirectQuery/Live-Quelle die Arbeitslast unterstützen kann, ist die DirectQuery/Live-Verbindung dann wertvoller als die Leistung und Flexibilität, die ein Importmodell bietet?
Abschluss
Dieser Beitrag schließt diese Serie zur Planung von LuckyTemplates-Projekten ab. Dies sind meiner Meinung nach die wesentlichen Schritte für jedes LuckyTemplates-Projekt, an dem Sie arbeiten. Diese Schritte sind bei der Due-Diligence-Prüfung wichtig, insbesondere im Enterprise-Business-Intelligence-Umfeld.
Alles Gute,
Greg Deckler
Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.
Was ist Self in Python: Beispiele aus der Praxis
In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.
In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.
In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.
Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.
Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.
In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.
Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.
Was ist LuckyTemplates Gateway? Alles was du wissen musst