Hallo,
ich möchte meine Daten um eine weitere Information anreichern.
Es gibt eine Spalte "Stellplatz" (hier sind Werte von 1 - 9999999 möglich).
Je nach Wert des Stellplatzes soll in einer zusätzlichen Spalte der Bereich ausgegeben werden.
Die Information für den Bereich kommt aus einer zusätzlichen Datenquelle.
Dort ist aber nicht jeder mögliche Stellplatz aufgelistet, sondern nach Wertebereichen gruppiert.
- Spalte 1: Ort
- Spalte 2: von Stellplatz
- Spalte 3: bis Stellplatz
- Spalte 4: Bereich
Joinen könnte ich über den Ort.
Allerdings werden dadurch ja die Daten vervielfältigt.
Wie kann ich hier vorgehen?
Ich könnte mir Vorstellen, dass das join tool nicht die richtige Wahl ist.
Ein Bespiel hänge ich an.
Gelöst! Gehe zu Lösung.
Hi @akku,
aus meiner Sicht gibt es mehrere Optionen, was die beste davon ist, hängt auch von deinen echten Daten ab.
Variante 1: Zeilen der Hilfstabelle erstellen
Mit einem Zeilen generieren (Generate Rows)-Tool könntest du jeweils die Zeile basierend auf "Stellplatz von" und "Stellplatz bis" erstellen, so dass das Verknüpfen (Join) dann eindeutig ist.
Variante 2: Filtern nach dem Verknüpfen (Join)
Als weitere Option gibt es natürlich die Möglichkeit (wie du bereits erkannt hast) die Daten mit dem Verknüpfen (Join)-Tool duplizieren zu lassen und danach zu filtern.
Die große Frage aus meiner Sicht ist: Wie genau sind deine Daten aufgebaut. Auf den ersten Blick mag es relativ langwierig sein alle Zeilen mit Variante 1 zu generieren, aber je nachdem wie groß deine Daten in Satz 1 sind und wie viele "Duplikate" generiert werden würden, macht es sicher Sinn darüber nachzudenken ob es nicht die bessere Option ist.
In deinem minimalen Beispiel gewinnt von der Performance klar die Variante 2 mit ca. 0.7 vs Variante 1 mit 4.9 Sekunden ohne AMP und 2.1 Sekunden mit AMP-Engine.
Man könnte auch noch andere Varianten in Erwägung ziehen wie bspw. das Konkatenieren alle Zeilen pro Ort aus Tabelle zwei und diese dann per Suchen Ersetzen (Find Replace) anzuhängen, dadurch könnte man sie ohne Duplikate verknüpfen (joinen). Jedoch würde die Logik dahinter dann deutlich komplexer werden und vermutlich gewinnt man dadurch auch nicht viel.
Viele Grüße
Alex
Hallo Alex,
danke für die schnelle Hilfe.
Ich habe beide Varianten ausprobiert und werde Variante 2 für mich verwenden.
In Variante 1 habe ich aber ein für mich neues tool (generate rows) kennengelernt, was ja auch ein Erfolg ist.
Der Geschwindigkeitsnachteil kommt m.E. daher, dass erstmal 9.999.999 Zeilen erzeugt werden müssen, die dann abgeprüft werden.
Viele Grüße
Matthias
Hi Matthias,
sofern die Datenmengen in überschaubaren Größenordnungen bleiben, ist das denke ich sowieso 'Kopf wie gsprungen'. Ich hatte letztens nur mal den Fall bei dem hinter dem Verknüpfen (Join) dann Datenmengen im 2-3 stelligen Milliarden-Bereich rauskamen und dann überlegt man doch noch ein zweites Mal, ob und wie das ggf. anders auch gehen könnte. Ansonsten denke ich persönlich aber auch nicht wirklich darüber nach welche Lösung mir ein paar Sekunden sparen könnte.
Viele Grüße und eine schöne Weihnachtszeit!
Alex