Warum enthält meine Abfrage für sekundäre zusammengeführte Ergebnisse NULL-Werte?

Zusammengeführte Ergebnisse sind eine praktische Funktion, um Daten aus verschiedenen Explores schnell und ohne Entwicklung in LookML zu kombinieren. Bei zusammengeführten Ergebnissen wird effektiv ein Left Join zwischen der primären und sekundären Abfrage ausgeführt. Das bedeutet, dass Feldnamen, übereinstimmende Werte und die Tabelle mit den Endergebnissen davon abhängen, wie Daten aus den sekundären Abfragen mit der primären Abfrage übereinstimmen.

Dies kann zu unerwarteten Ergebnissen führen, wenn Sie Explores zusammenführen. In der Dokumentation zu zusammengeführten Ergebnissen werden einige dieser Bedingungen berücksichtigt,z. B.:

Was tun Sie jedoch, wenn Sie erwarten, dass ein Wert aus einer sekundären Abfrage mit einem Wert in der primären Abfrage übereinstimmt, das Endergebnis jedoch Nullwerte anzeigt?

Auf dieser Seite wird beschrieben, wie Sie dieses unerwartete Ergebnis beheben können.

Anwendungsbeispiel

Der folgende Anwendungsfall basiert auf einem E-Commerce-Beispiel-Dataset, das Nutzer- und Bestellinformationen enthält. In diesem Beispiel möchten Sie eine Abfrage – die Anzahl der Nutzer pro Stadt (Nutzerzahl gruppiert nach Nutzerstadt) – mit einer sekundären Abfrage – der Anzahl der Aufträge (Anzahl der Aufträge) gruppiert nach Ort der Nutzer und Nutzerstatus, zusammenführen:

Primäre Abfrage

Die primäre Abfrage lautet Nutzerzahl gruppiert nach Ort der Nutzer:

Erkunden Sie die Datentabelle mit zusammengeführten Ergebnissen, in der die Ergebnisse der primären Abfrageergebnisse angezeigt werden.

Sekundäre Abfrage

Die sekundäre Abfrage lautet Orders Count (Anzahl der Bestellungen), gruppiert nach Users City (Ort der Nutzer) und Users State (Nutzerstatus):

Sehen Sie sich die Datentabelle mit zusammengeführten Ergebnissen an, in der die sekundären Abfrageergebnisse angezeigt werden.

Die Zusammenführungsregel ist so festgelegt, dass beide Abfragen nach dem gemeinsamen Feld Nutzerstadt zusammengeführt werden. Angesichts der Vertrautheit mit dem Dataset und dem erwarteten Verhalten bei zusammengeführten Ergebnissen, das durch die zuvor verlinkte Dokumentation erläutert wird, wissen Sie, dass in jeder Zeile jeder Stadt ein Bundesland und eine Anzahl von Nutzenden zugeordnet werden sollte. Sie erwarten, dass die zusammengeführten Ergebnisse mit allen Werten übereinstimmen und keine Nullwerte anzeigen.

Die Ergebnisse haben jedoch NULL-Werte. Über die Hälfte der Städte wird nicht mit einem Bundesstaat oder einer Anzahl von Bestellungen abgeglichen:

Datentabelle mit zusammengeführten Ergebnissen mit Nullwerten für sekundäre Abfragefelder.

Lösungen

Keine Panik. Wenn Sie sicher sind, dass Ihre Daten übereinstimmende Werte enthalten (führen Sie eine separate Abfrage aus, um zu bestätigen, dass dies der Fall ist), gibt es mehrere mögliche Lösungen, um dieses Ergebnis zu beheben. Dazu gehören:

  • Sortieren Sie die einzelnen Quellabfragen auf die gleiche Weise.
  • Erhöhen Sie das Zeilenlimit der Quellabfrage.

Quellabfrage auf die gleiche Weise sortieren

Da zusammengeführte Ergebnisse auf Explores basieren, die standardmäßig auf 500 Zeilen begrenzt sind, sind die Abfrageergebnisse, die Sie zusammenführen, manchmal nicht im Endergebnis enthalten.

Um dieses Problem zu beheben, können Sie Ihre einzelnen Quellabfragen bearbeiten und sortieren, um sie besser zueinander zu ergänzen. 

Im Anwendungsbeispiel wird die primäre Abfrage aufsteigend nach Nutzerstadt sortiert. Die sekundäre Abfrage ist es nicht. Um die Ergebnisse der beiden Abfragen besser abzugleichen, können Sie die sekundäre Abfrage auf die gleiche Weise wie die primäre Abfrage sortieren, in diesem Fall nach Ort des Nutzers aufsteigend.

Wenn Sie die sekundäre Abfrage ähnlich wie die primäre Abfrage sortieren, werden die Ergebnisse bei der endgültigen Zusammenführung genauer angezeigt:

Datentabelle mit zusammengeführten Ergebnissen, die Nicht-NULL-Werte für primäre und sekundäre Abfragefelder enthält.

Zeilenlimit der Quellabfrage erhöhen

Ähnlich wie bei der ersten oben beschriebenen Lösung können unerwartete Nullwerte durch die in den Quellabfragen festgelegten Zeilenlimits verursacht werden. Insbesondere in diesem Fall verfügt die sekundäre Abfrage (begrenzt durch den Standardwert von 500 Zeilen) nicht über genügend Zeilen, um mit allen Zeilen zu übereinstimmen, die von der primären Abfrage generiert wurden. Dies führt dazu, dass bei der endgültigen Zusammenführung Nullergebnisse angezeigt werden.

Wenn die Anzahl der Zeilen in der sekundären Abfrage an die primäre Abfrage angepasst werden soll, können Sie das Zeilenlimit der sekundären Abfrage erhöhen. Das führt zu mehr Zeilen für den Abgleich mit der primären Abfrage und weniger Nullwerten in den sekundären Abfragespalten: 

Datentabelle mit zusammengeführten Ergebnissen, die Nicht-NULL-Werte für primäre und sekundäre Abfragefelder enthält.

Fazit

Wenn Sie mit unerwarteten zusammengeführten Ergebnissen konfrontiert sind, können Sie die folgenden Schritte zur Fehlerbehebung ausführen:

  1. Wählen Sie im Zahnradmenü des Explores die Option Cache leeren und aktualisieren aus, damit die Abfrage die aktuellsten Ergebnisse abruft.
  2. Prüfen Sie, ob übereinstimmende Werte zwischen Quellabfragen vorhanden sind, in denen Nullen angezeigt werden, wie im Abschnitt Was passiert, wenn eine Abfrage keinen übereinstimmenden Datenwert hat? der Dokumentation zu zusammengeführten Ergebnissen beschrieben.
  3. Sortieren Sie die Quellabfragen, damit sie besser zueinander passen.
  4. Erhöhen Sie das Zeilenlimit der Quellabfragen über den Standardwert hinaus, um mehr Zeilen anzuzeigen, die abgeglichen und zusammengeführt werden können.
  5. Wenn das Verhalten durch keine der hier beschriebenen Lösungen behoben wird, hartcodieren Sie die join-Logik in LookML, um ein genaueres Ergebnis zu erhalten (falls möglich).