Zum Inhalt springen

Mehrtabellen-Join-Schritt

Der Schritt Mehrtabellen-Join verknüpft viele Tabellen in einem einzigen Vorgang. Statt eine Reihe von Zwei-Tabellen-Joins zu verketten – wobei Sie den Überblick verlieren und dieselbe Ausgabezuordnung wiederholen –, legen Sie alle Tabellen in einem visuellen Join-Graph-Designer aus, zeichnen die Joins zwischen ihren Spalten und erzeugen eine einzige Ergebnistabelle.

Er ist für die typische Form analytischer Joins gedacht: eine Faktentabelle, die mit mehreren Dimensions- oder Lookup-Tabellen verknüpft wird. Sie können bis zu 32 Tabellen gleichzeitig verknüpfen.

Fügen Sie ihn wie jeden anderen Schritt hinzu und wählen Sie Mehrtabellen-Join (in der Gruppe Tabellen des Schrittmenüs oder per Drag-and-drop aus der Palette auf der Arbeitsfläche für erweiterte Workflows). Der Editor des Schritts hat drei Registerkarten:

  1. Tables & Joins – der visuelle Designer, in dem Sie Tabellen hinzufügen und Joins zeichnen.
  2. Ausgabespalten – die Spalten, die die Ergebnistabelle enthalten soll.
  3. Post-Join Filter – ein optionaler Filter, der auf das verknüpfte Ergebnis angewendet wird.

Eine Statusanzeige zeigt während der Arbeit Bereit zum Speichern oder Nicht gespeicherte Änderungen an.

Wählen Sie Tabelle hinzufügen, um eine Quelltabelle auf der Arbeitsfläche zu platzieren. Jede Tabelle erscheint als Karte mit ihren Spalten und erhält einen Alias – einen kurzen Namen, über den Sie an anderer Stelle auf ihre Spalten verweisen (als alias.column). Ein Alias muss mit einem Buchstaben oder Unterstrich beginnen und darf kein SQL-Schlüsselwort sein. Fügen Sie so viele hinzu, wie Sie benötigen (bis zu 32), und wählen Sie die Zieltabelle, in die das Ergebnis geschrieben wird.

Wenn sich die Spalten einer Tabelle im Katalog ändern, verwenden Sie Erneut vom Server abrufen, um die Spalten der Karte durch die aktuellen Werte zu ersetzen.

Sowohl die Quelltabellen als auch die Zieltabelle können als Verweis angegeben werden, statt aus der Liste ausgewählt zu werden. Aktivieren Sie Dynamisch in der Tabellenauswahl und geben Sie eines von beidem ein:

  • einen Tabellennamen – FACT_GL
  • einen Projektpfad – /03 Results/FACT_GL

Beide können {variable}-Token enthalten, die beim Ausführen des Workflows ersetzt werden – so schreibt /03 Results/FACT_GL_{year} in jeder Periode in eine andere Tabelle, gesteuert durch eine Projekt- oder Workflow-Variable. Die Zieltabelle wird erstellt, falls sie nicht existiert.

Nicht übereinstimmende geschweifte Klammern werden beim Speichern erkannt, sodass ein falsch geschriebenes FACT_{year am Schritt gemeldet wird, statt mitten in einer Ausführung zu scheitern.

Ziehen Sie von einem Spaltenpunkt einer Tabelle auf eine Spalte einer anderen Tabelle, um einen Join (eine Kante) zu erstellen. Wählen Sie eine Kante aus, um rechts ihren Editor zu öffnen, in dem Sie Folgendes festlegen:

  • Verknüpfungstyp:

    Typ Behält
    INNER nur Übereinstimmungen
    LEFT alle Zeilen der linken Tabelle
    FULL alle Zeilen beider Seiten
    CROSS jede linke Zeile kombiniert mit jeder rechten Zeile (keine Bedingungen)
  • Join-Bedingungen – ein oder mehrere Vergleiche zwischen den Spalten der beiden Tabellen. Fügen Sie weitere mit + Bedingung hinzufügen hinzu, kombinieren Sie sie mit AND / OR und nutzen Sie den vollen Operatorensatz (=, <>, <, <=, >, >=, BETWEEN, IS NULL, IS NOT NULL, IN, NOT IN, LIKE, NOT LIKE).

  • Bezeichnung (optional) – benennen Sie den Join (zum Beispiel customer-to-orders), damit das Diagramm leichter lesbar ist.

Der Designer hält den Join-Graphen als Baum – jede Tabelle ist über genau einen Join mit dem Ergebnis verbunden, sodass es keine Zyklen oder mehrdeutigen Pfade gibt und eine Tabelle nicht mit sich selbst verknüpft werden kann. Um einen Join zu entfernen, wählen Sie die Kante aus und wählen Kante löschen.

Jede Quelltabelle hat einen Eingangsfilter, der vor dem Join angewendet wird – damit reduzieren Sie eine Tabelle auf die Zeilen, die Sie benötigen (verweisen Sie auf ihre Spalten als alias.column). Er ist vom Post-Join Filter zu unterscheiden, der nach allen Joins ausgeführt wird.

  • Layout bereinigen ordnet die Tabellen und Joins automatisch von links nach rechts nach Join-Reihenfolge an.
  • An Ansicht anpassen skaliert und zentriert die Ansicht, sodass der gesamte Graph hineinpasst; Sie können auch manuell verschieben und zoomen.
  • Spalten filtern… schränkt die auf den Karten angezeigten Spalten ein, wenn eine Tabelle viele hat.
  • Rückgängig / Wiederholen gehen in Ihren Änderungen zurück und vor (Strg+Z / Strg+Y), und Verlauf öffnet einen Bereich mit jeder Änderung seit dem Öffnen des Dialogs, mit Wiederherstellen.
  • Exportieren lädt das Join-Diagramm als SVG-Bild herunter – praktisch für Dokumentation oder Prüfung.

Wählen Sie auf der Registerkarte Ausgabespalten die Spalten, die die Ergebnistabelle enthalten soll. Wählen Sie aus beliebigen verknüpften Tabellen – mit Aus Arbeitsfläche auswählen… wählen Sie visuell aus den Spalten aller Quellen, mit Alle Quellspalten hinzufügen übernehmen Sie alle auf einmal. Für jede Spalte können Sie sie umbenennen, ihren Datentyp festlegen und eine Aggregation anwenden. Wenn zwei Quellspalten denselben Namen haben, stellt PlaidCloud ihnen ihren Quellalias voran, damit sie nicht kollidieren.

Jede Ausgabespalte bezieht ihren Wert aus genau einer von drei Quellen:

  • Eine Quellspalte – legen Sie Quellalias auf den Arbeitsflächen-Alias fest, dem sie gehört, und Quelle auf den Verweis alias.column. Beides ist erforderlich; eine Quellspalte nennt immer die Tabelle, aus der sie stammt.
  • Eine Konstante – derselbe feste Wert in jeder Zeile.
  • Ein Ausdruck – wählen Sie Ausdrucksspalte hinzufügen, um eine Zeile anzuhängen und den Ausdruckseditor zu öffnen. Ausdrücke können auf jeden Quellalias der Arbeitsfläche als alias.column verweisen; so erstellen Sie einen Wert, der mehrere verknüpfte Tabellen umspannt (ein CASE über zwei Tabellen, eine Verkettung, einen berechneten Betrag). Lassen Sie Quellalias und Quelle in einer Ausdruckszeile leer.

Mehr als eine davon auszufüllen ist ein Fehler, ebenso, keine auszufüllen.

Die Zelle Ausdruck öffnet den Standard-Ausdruckseditor von PlaidCloud, mit allen Tabellen der Arbeitsfläche im Spaltenbrowser, der Funktionsliste und der automatischen Vervollständigung.

Die Ausgabespalten folgen der Arbeitsfläche: Wenn Sie auf der Registerkarte Tables & Joins eine Quelle umbenennen, wechseln ihre Ausgabespalten zum neuen Alias, und wenn Sie eine Quelle entfernen, werden ihre Ausgabespalten gelöscht – so behalten Sie nie Spalten, die auf eine Tabelle zeigen, die nicht mehr Teil des Joins ist.

Die Registerkarte Post-Join Filter wendet einen optionalen Filter auf das verknüpfte Ergebnis an, bevor es in die Zieltabelle geschrieben wird – das Äquivalent einer SQL-HAVING-Klausel. Klicken Sie in das Feld, um den Ausdruckseditor zu öffnen; die Ausgabespalten sind in seinem Spaltenbrowser aufgelistet, und Sie verweisen auf sie als result.column_name – die Quellaliasse sind hier nicht im Gültigkeitsbereich. Verfügbare Verweise unter dem Feld listet jeden Verweis auf, den Sie verwenden können. Lassen Sie es leer, um die Nachfilterung zu überspringen.

PlaidCloud validiert den Join, während Sie ihn erstellen, und erneut, wenn der Schritt ausgeführt wird. Ist etwas fehlerhaft – eine nicht unterstützte Konfiguration, ein Zyklus, ein doppelter Alias, eine Ausgabespalte, die weder Quelle noch Konstante noch Ausdruck (oder mehr als eines davon) festlegt, oder eine Spalte, die nicht mehr existiert –, erhält die Registerkarte ein ⚠-Symbol mit der Anzahl, der Designer markiert die betroffene Tabelle oder den betroffenen Join, und das Speichern wird mit der Begründung abgelehnt. Beim Speichern mit ungelösten Problemen wechseln Sie zur Registerkarte mit dem ersten Problem; Zum Problem springen tut dasselbe auf Abruf.

Beim Speichern prüft PlaidCloud außerdem jeden Ausdruck der Ausgabespalten anhand der eigenen Eingaben des Joins über den Alias (alias.column), so wie der Schritt ausgeführt wird, und prüft den Post-Join Filter. Ein fehlerhafter Ausdruck wird an seiner Ausgabespalte gemeldet, ein fehlerhafter Post-Join Filter am Filter. Ist der Join auf Auch zur Laufzeit benannte Spalten übernehmen eingestellt und fasst er nicht zusammen, wird die Ausdrucksprüfung beim Speichern übersprungen, weil Spalten erst zur Laufzeit hinzugefügt werden; diese Ausdrücke werden geprüft, wenn der Schritt ausgeführt wird. Filter pro Quelle werden ebenfalls bei der Ausführung des Schritts geprüft.

Der Mehrtabellen-Join wird wie jeder andere Schritt ausgeführt. Er führt alle Joins in einem Vorgang aus und schreibt die zugeordneten Spalten in die Zieltabelle.