Skip to main content

Expect_Equals_ico.png Expect Equal-Tool

Verwenden Sie Expect Equal, um zu testen, ob zwei Datenströme identisch sind, und Fehler zu melden, falls nicht.

Das Tool meldet nur die ersten vier gefundenen Fehler und gibt die Anzahl weiterer Fehler an.

Das Expect Equal-Tool kann Folgendes erkennen:

  • Ob Feldnamen unterschiedlich sind oder nicht in der richtigen Reihenfolge sind.

  • Ob Feldtypen unterschiedlich sind.

  • Ob numerische Werte, Zeichenfolgenwerte oder Datum/Uhrzeit-Werte nicht übereinstimmen.

  • Ob Blob- oder Geo-Werte nicht übereinstimmen.

  • Ob die Anzahl der Zeilen unterschiedlich ist (mehr oder weniger als erwartet).

Tool-Komponenten

Das Expect Equal-Tool hat zwei Anker:

  • Erwartet-Anker – Verbinden Sie die Daten, die Sie erwarten, mit diesem Anker.

  • Tatsächlich-Anker – Verbinden Sie die Daten, die Sie validieren möchten, mit diesem Anker.

Die Bedeutung der beiden Anker bezieht sich nur auf die Meldungen, die das Tool ausgibt. Das Tool kann Folgendes berichten:

Fehler: Expect Equal (1): Datensatz 1 Feld Feld1: „a“ erwartet, tatsächlich „A“

Der erwartete Wert ist einfach derjenige, der am erwarteten Anker eingegangen ist.

Tool-Konfiguration

Dieses Tool hat keine Konfigurationsoptionen.

Tool-Beispiele

Alle Beispiele lassen sich anhand des folgenden Workflows demonstrieren:

Expect_Equals_ex1.png

1. Beispiel: Felder unterscheiden sich

Wenn die verfügbaren Felder in den erwarteten und tatsächlichen Eingaben unterschiedlich sind, erhalten Sie folgende Meldungen:

  • Fehler: Expect Equal (1): Erwartetes Feld fehlte: F1

  • Fehler: Expect Equal (1): Tatsächliches Feld wurde nicht erwartet: Feld1

Anhand der beiden Meldungen können Sie feststellen, ob Sie den falschen Feldnamen erwartet haben oder ob die Daten den falschen Feldnamen erzeugt haben.

Beachten Sie, dass – wie bei allen Alteryx-Tools – beim Vergleich von Feldnamen keine Groß-/Kleinschreibung beachtet wird, sodass „F1“ mit „f1“ übereinstimmt.

2. Beispiel: Felder haben eine andere Reihenfolge

Wenn die beiden Ströme dieselben Feldnamen haben, aber eine andere Reihenfolge haben, zeigt das Tool eine Teilmenge aller Felder an, um den Unterschied zu verdeutlichen:

Fehler: Expect Equal (1): andere Feldreihenfolge. Erwartet: …, b, c; tatsächlich: …, c, b

Wenn die Felder in einer anderen Reihenfolge angezeigt werden, werden die Daten anhand des Feldnamens und nicht anhand der Position verglichen. Wenn also Feld B in beiden Strömen den Wert 2 hat, meldet das Tool keinen zusätzlichen Fehler. Wenn jedoch das erwartete Feld B den Wert 2 und das tatsächliche Feld B den Wert 3 hat, würde ein zusätzlicher Fehler gemeldet werden.

3. Beispiel: Felder haben unterschiedliche Typen

Der Typabgleich ist umfangreich. Alle Ganzzahltypen stimmen mit allen anderen Ganzzahltypen überein, Float stimmt mit Double überein und alle Zeichenfolgentypen stimmen mit allen anderen Zeichenfolgentypen überein. Festkommazahl stimmt nur mit Festkommazahl überein, um die Genauigkeit beim Vergleich von Werten zu erhalten. Größen von Typen werden im Typabgleich nicht gezählt.

  • Wenn ein Float-Typ erwartet wird, es aber ein Ganzzahltyp ist, wird ein Fehler bei der Typprüfung gemeldet und die Werte werden nicht verglichen.

  • Wenn sich die Typen unterscheiden, wird die folgende Fehlermeldung angezeigt:

    Fehler: Expect Equal (1): Es wird erwartet, dass Feld A den Typ Double hat, es hat aber tatsächlich Typ V_String 2147483647

    Beachten Sie, dass die Typbeschreibungen den genauen Typnamen und einige Größeninformationen enthalten, die Größe jedoch keine Abweichung verursacht.

4. Beispiel: Datenwerte unterscheiden sich

  • Ganzzahlige Werte werden ohne Genauigkeitsverlust verglichen. Es kann die Differenz zwischen 9.223.372.036.854.775. 807 (der größten möglichen 64-Bit-Ganzzahl) und 9.223.372.036.854.775. 806 erkennen.

    Fehler: Expect Equal (1): Datensatz 1 Feld F1: 9223372036854775807 erwartet, tatsächlich 9223372036854775806

  • Floats und Doubles werden auf exakte Gleichheit verglichen, ohne Option „fast gleich“.

    Beispiel: Der Wert 5124095575370702,5 stimmt mit 5124095575370701,6 überein, denn die Darstellung von Doubles hat nicht genügend Genauigkeit, um zwischen diesen Werten zu unterscheiden. Sie werden als identisch im Computer gespeichert. Wenn Zahlen nicht übereinstimmen, werden sie mit 17 feststehenden Nachkommastellen ausgegeben.

    Fehler: Expect Equal (1): Datensatz 1 Feld D: 5124095575370702,00000000000000000 erwartet, tatsächlich 5124095575370701,00000000000000000

  • Zeichenfolgentypen werden unter Beachtung der Groß-/Kleinschreibung verglichen. Die Werte werden angezeigt, wenn sie nicht mit den erwarteten Werten übereinstimmen. Tatsächliche Zeichenfolgen können gekürzt werden, um nur ein wenig Kontext vor und nach dem ersten Unterschied anzuzeigen:

    Fehler: Expect Equal (1): Datensatz 1 Feld A: „…ar like the present peri…“ erwartet, tatsächlich „…ar like the Present Peri…“

  • Datum/Uhrzeit-Werte werden mit der exakten Genauigkeit des genauesten der beiden Werte verglichen und die Werte werden angezeigt, wenn sie sich unterscheiden:

    Fehler: Expect Equal (1): Datensatz 1 Feld c: 14.03.2024, 11:07:00 erwartet, tatsächlich 14.03.2024, 11:07:00,001

    Fehler: Expect Equal (1): Datensatz 1 Feld c: 11:07:00,002 erwartet, tatsächlich 11:07:00,001

  • Wenn sich die Blob-Felder unterscheiden, meldet das Tool einfach, dass sie sich unterscheiden:

    Fehler: Expect Equal (1): Datensatz 1 Feld a: Erwarteter Blob stimmt nicht mit tatsächlichem Blob überein

  • Geo-Objekte werden in GeoJSON konvertiert und wie Zeichenfolgen verglichen:

    Fehler: Expect Equal (1): Datensatz 1 Feld d: „…inates“:[1,2] }“ erwartet, tatsächlich „…inates“:[1,2,000001]}“

5. Beispiel: Unterschiedliche Zeilenanzahl

Das Tool kann Folgendes melden:

Fehler: Expect Equal (1): Tatsächlich weniger Datensätze als erwartet: 2

Fehler: Expect Equal (1): Tatsächlich mehr Datensätze als erwartet: 3

Die gemeldete Zahl (hier 2 oder 3) ist die Zahl, die sich von der erwarteten Zahl unterscheidet.

6. Beispiel: Zu viele Meldungen

Das Tool meldet nur die ersten vier Meldungen. Wenn es mehr gibt, wird folgende Fehlermeldung angezeigt:

Fehler: Expect Equal (1): Gesamte Fehler: 6 (Meldungen über das Limit von 4 hinaus unterdrückt)