Verwendung von Cluster-Schlüsseln für Tests mit hohem DataStage Volumen
DataStage® Der Testfall vergleicht die vom Job erzeugten Daten mit den erwarteten Testdaten. Das Testen großer Datenmengen kann zu viel Speicherplatz beanspruchen und dazu führen, dass Ihr Testfallauftrag fehlschlägt. Durch die Definition eines Cluster-Schlüssels in Ihrer Testspezifikation werden die Daten vor dem DataStage Vergleich in mehrere Teilmengen aufgeteilt.
Betrachten Sie die Situation, in der ein DataStage Test mehrere Millionen Finanztransaktionsdatensätze mit dem folgenden Schema auf dem Link „order_out” der Stufe „ODBC_order” vergleicht:
| Spaltenname | SQL-Typ | Länge | Skala | Kann Nullwerte enthalten |
|---|---|---|---|---|
| Transaktionsdatum | Zeitmarke | Nein | ||
| account_id | VarChar | 20 | Nein | |
| Typ_Code | VarChar | 5 | Nein | |
| Beschreibung | VarChar | Ja | ||
| Menge | Dezimal | 18 | 2 | Nein |
Die Testspezifikation kann mit einem Cluster-Schlüssel aktualisiert werden, um einen iterativen Vergleich der tatsächlichen und der erwarteten Testdaten zu ermöglichen. In diesem Beispiel werden
Type_Code und als zusammengesetzter Account_Id Cluster-Schlüssel definiert.{
"then": [
{
"path": "ODBC_orders.csv",
"stage": "ODBC_order",
"link": "order_out",
"cluster": [
"Account_Id",
"Type_Code"
]
}
],
}Hinweis: DataStage Flows mit mehreren Ausgangsverbindungen können innerhalb einer Lings-Testspezifikation jede beliebige Kombination aus geclusterten und nicht geclusterten Vergleichen verwenden.
Wichtige Hinweise
- Ein geeigneter Cluster-Schlüssel führt zu Datenuntergruppen, die innerhalb der Speicherschwellenwerte liegen. Die Auswahl eines geeigneten Cluster-Keys kann mehrere Iterationen erfordern, um einen zu finden, der nicht nur Jobabbrüche verhindert, sondern auch die Laufzeiten akzeptabel hält. Versuchen Sie, jede Teilmenge der Daten auf maximal 1.000 Datensätze zu beschränken, und passen Sie den Cluster-Schlüssel an, wenn die Speicherschwellen weiterhin überschritten werden.
- Wenn ein Test einen Wertunterschied in einer Spalte feststellt, die eine Cluster-Schlüsselspalte ist, wird der Testunterschiedsbericht (der den Unterschied normalerweise als „geänderte“ Zeile beschreiben würde, wenn kein Cluster-Schlüssel verwendet wird) den Unterschied nun als „hinzugefügte“ und „entfernte“ Einträge beschreiben.
- Es ist möglich, dass bei bestimmten Kombinationen von Datenfluss und Datenvolumen kein Cluster-Schlüssel den Speicherbedarf so weit reduzieren kann, dass ein Abbruch des Auftrags vermieden werden kann. In diesem Fall sollten Sie die Funktionen zur Datenerstellung nutzen und sorgfältig eine Teilmenge von Datensätzen aus Ihren Datenquellen auswählen.