Synthetischer Schlüssel
Bevor wir über synthetische Schlüssel sprechen, Schauen wir uns ein typisches QV-Datenmodell an (im Diagramm rechts). Hier, wir sehen drei Tabellen "Sales", „Zweigzuweisung“ und „$ Syn 1 ". Aber, Ich hatte nur zwei Tische geladen (Vertriebs- und Filialzuordnung) in QlikView. Eine weitere Überraschung ergibt sich, wenn ich mir die Tabellen von . genau ansehe „Der Umsatz“ Ja „Filialzuordnung“. Es gibt eine VariableIn Statistik und Mathematik, ein "Variable" ist ein Symbol, das einen Wert darstellt, der sich ändern oder variieren kann. Es gibt verschiedene Arten von Variablen, und qualitativ, die nicht-numerische Eigenschaften beschreiben, und quantitative, numerische Größen darstellen. Variablen sind grundlegend in Experimenten und Studien, da sie die Analyse von Beziehungen und Mustern zwischen verschiedenen Elementen ermöglichen, das Verständnis komplexer Phänomene zu erleichtern.... zusätzlich „$ Syn 1“ in beiden Tabellen.
Als ich zum ersten Mal auf diesen Effekt im Datenmodell gestoßen bin, Ich konnte nicht erkennen, warum das passierte. Bis zu einem bestimmten Punkt, Das hat mich nicht gestört, da die Dash-Ausgabe einwandfrei funktioniert. Aber, als mein Mentor sich dieses Modell ansah, Ich wusste, dass „$ Syn 1“ ist ein synthetischer Schlüssel und „$ Syn 1 Tisch“ es ist ein synthetisches Brett.
Was sind synthetische Schlüssel oder Tabellen??
Wenn wir zwei Tabellen mit einem gemeinsamen Feldnamen in beiden Tabellen laden, Tabellen werden basierend auf gemeinsamen Feldern automatisch verknüpft. Dies ist die assoziative Funktionalität von QlikView.
Trotz dieses, wenn wir mehr als ein gemeinsames Feld zwischen zwei oder mehr Tabellen haben, QlikView erstellt "SYNTHETISCHE SCHLÜSSEL" und "SYNTHETISCHE TABELLE". QlikView fügt eine synthetische Tabelle hinzu (als Tisch $ Syn) und ein synthetischer Schlüssel (Als Symbol $ Syn) zum Datenmodell. Schlüssel werden zu vom Benutzer geladenen Tabellen hinzugefügt und verwendet, um sie mit der synthetischen Tabelle zu verknüpfen.
Der synthetische Schlüssel ist die Methode von QlikView zum Umgang mit zusammengesetzten Schlüsseln. Die synthetische Tabelle enthält einen synthetischen Schlüssel, der aus allen Kombinationen der mehreren Schlüsselfelder zusammengesetzt ist, die die Tabellen verbinden. In unserem Datenmodell, wir hatten zwei gemeinsame felder, „Rama“ Ja „Region“, also hat QlikView den synthetischen Schlüssel und die synthetische Tabelle selbst erstellt. Wenn wir uns die Quelltabellenansicht des Tabellenviewers ansehen, zeigt, dass zwischen diesen beiden Tabellen zwei Felder verbunden sind.

Sind synthetische Schlüssel gut oder schlecht??
Gemäß QlikView-Referenzhandbuch:
Wenn die Anzahl der zusammengesetzten Schlüssel zunimmt / Synthetik, je nach Datenmenge, die Struktur der Tabelle und andere Faktoren, QlikView verarbeitet sie möglicherweise nicht richtig. QlikView kann zu viel Zeit in Anspruch nehmen und / oder Erinnerung. Leider, tatsächliche Einschränkungen sind kaum vorhersehbar, was nur Versuch und Irrtum als praktische Methode übrig lässt, um sie zu bestimmen.
- Dies ist einer der Gründe, warum viele Leute synthetische Schlüssel löschen. Diese Aussage ist jedoch anwendbar, wenn Sie mehrere synthetische Schlüssel in Ihrem Datenmodell haben. Trotz dieses, wenn Ihr Datenmodell mehrere synthetische Schlüssel hat, Es besteht wahrscheinlich ein ernsthafter Engpass bei Ihrem Datenmodell und nicht bei synthetischen Schlüsseln.
- Wenn Sie zwei oder mehr Tabellen haben und diese mehrere gemeinsame Felder haben, synthetische Schlüssel schaffen die richtige Lösung, kompakt und effizient. Synthetische Schlüssel sind nicht der Grund für Leistungs- und Speicherprobleme. Wie gewöhnlich, die funktionieren etwas besser oder ähnlich, im Vergleich zu manuellen zusammengesetzten Tasten, die im Allgemeinen verwendet werden, um synthetische Schlüssel zu löschen.
- In einem der Fälle, Ich erinnerte mich, dass einer meiner Kollegen das wegen des synthetischen Schlüssels erwähnte, die Datenmodellausgabe wird nicht richtig angezeigt oder es gibt ein Leistungshindernis, aber wenn Sie die synthetischen Schlüssel entfernt haben, es funktioniert gut. Hier waren nicht die synthetischen Schlüssel das eigentliche Problem, es war ein schlechtes Datenmodell und, beim Löschen von synthetischen Schlüsseln, es hat sich verbessert. Derzeit liegen mir keine Leistungs- und Speichervergleichsdetails für mit oder ohne synthetischen Schlüssel vor (Wenn Sie haben, bitte teilen).
Warum sollten wir synthetische Schlüssel löschen??
Wie zuvor genannt, synthetische Schlüssel können aufgrund schlechter Datenmodellierung erstellt werden. Wann immer a unerwarteter synthetischer Schlüssel es ist erstellt, wir sollten uns das Datenmodell noch einmal ansehen, die notwendigen Änderungen vornehmen und, während, Am Ende haben wir ein gutes Datenmodell. Beachten Sie, dass das wichtige Schlüsselwort in der letzten Anweisung ist UNERWARTET. Gegenteiliger Fall, Synthetische Tasten schaden nicht.
Der zweite Grund, Was mir im Laufe der Zeit aufgefallen ist, ist, dass ich jedes Mal, wenn ich meine eigenen zusammengesetzten Schlüssel anstelle von synthetischen Schlüsseln erstelle, Ich habe viel mehr Klarheit über das Datenmodell.
Gegenteiliger Fall, Ich kann sagen, dass synthetische Schlüssel gut sind und die Handhabung von zusammengesetzten Schlüsseln erleichtern, wenn Sie an einem guten Datenmodell arbeiten.
So löschen Sie synthetische Schlüssel?
Synthetische Schlüssel löschen, wir schauen uns zuerst unser Datenmodell an und nehmen die notwendigen Änderungen vor, Falls erforderlich. Wir haben mehrere Methoden, um synthetische Schlüssel zu löschen, aber es kommt auf die anforderung an.
- Felder entfernen: Wenn die allgemeinen Felder, die synthetische Schlüssel generieren, im Datenmodell nicht benötigt werden und dies keinen Einfluss auf die Verknüpfung zwischen zwei Tabellen hat. Das Entfernen von Feldern kann durch Auskommentieren oder Entfernen des Felds aus dem Ladeskript erfolgen.

- Felder umbenennen (mit RATE): Wenn die gemeinsamen Felder, die synthetische Schlüssel generieren, nicht dieselben Felder sind (enthalten keine ähnlichen Werte), das sind eigentlich unterschiedliche Felder mit dem gleichen Namen. Die Namensänderung kann durch die Klausel „WIE“. Dies können wir auch durch die Verwendung der RATE-Anweisung erreichen.. Mit qualifizierter Aussage, die Feldnamen werden in das Format konvertiert „Tabellenname.Feldname“
Verwenden von QUALIFY
- Automatische Nummerntasten / Verbindung: Wenn wir wissen, dass die gemeinsamen Felder, die synthetische Schlüssel generieren, für das Datenmodell wichtig sind, Wir können unseren eigenen Schlüssel erstellen, um zusammengesetzte Schlüssel zu verarbeiten. Wir können auch die Autonumber-Funktionen verwenden / Autonumberhash128 / Autonumberhash256 zum Erstellen von zusammengesetzten Schlüsseln. Diese erzeugen einen eindeutigen Bitwert für jede unterschiedliche Kombination der verketteten Spalten. Autonumberhash128 und Autonumberhash256 erzeugen Werte von 128 Bits du 256 Bits bzw. Beachten Sie, dass die automatische Nummerierung in Anwendungen problematisch sein kann, die QVD-Dateien zur Verwendung in anderen QlikView-Anwendungen generieren..

- Wir haben auch andere Methoden, um synthetische Schlüssel zu löschen, wie z „Erstellen Sie eine Linktabelle„,“Explizite Joins erstellen “ Ja „Ähnliche Tabellen verketten“. Diese Themen müssen im Detail diskutiert werden und wir werden sie in Zukunft untersuchen..
Schlussbemerkung:
Allgemein, Entwickler möchten synthetische Schlüssel löschen, da davon ausgegangen wird, dass sie sich negativ auf die Leistung und die Speicherauslastung auswirken. Trotz dieses, Das ist nicht wahr. Sie handhaben zusammengesetzte Schlüssel effizienter als manuelle Schlüssel, wenn wir ein gutes Datenmodell haben. Wenn Sie den Unterschied in Leistung und Speicherauslastung mit oder ohne Kunststoffe erlebt haben, teile deine Gedanken in den Kommentaren unten, da es der Gemeinschaft zugute kommt.



