DCM Projects für Datenpipelines

DCM Projects bieten eine Entwicklerumgebung für den gesamten Lebenszyklus, die Funktionen umfasst, die auf die Verwaltung von Datenpipelines zugeschnitten sind.

Die Pipeline-spezifischen Befehle gelten nicht für alle Objekttypen. Sie erweitern die zentralen Befehle für die folgenden Anwendungsfälle in der Pipeline:

REFRESH-Befehl für dynamische Tabellen

Nachdem Sie eine Änderung der Pipeline-Definition bereitgestellt haben, können Sie die dynamischen Tabellen innerhalb des Pipeline-Projekts aktualisieren, bevor Sie die Erwartungen an die Datenqualität testen, sodass jede neue Transformationslogik von durchgängig angewendet wird.

Sie können alle vom DCM project verwalteten dynamischen Tabellen und deren erforderliche vorgelagerte dynamische Tabellen mit einem Befehl aktualisieren. Dieser Befehl gilt nur für dynamische Tabellen, die vom referenzierten Projekt bereitgestellt und verwaltet werden, unabhängig von Definitionsdateien. Andere Objekttypen, wie z. B. Aufgaben, sind davon nicht betroffen.

Siehe TEST-Befehl für Datenqualitätserwartungen für Verwendungsbeispiele, die REFRESH und TEST kombinieren.

Der Befehl wird ausgeführt, bis alle Aktualisierungen der dynamischen Tabellen abgeschlossen sind, und dann wird eine Zusammenfassung der Zeilenänderungen oder Fehler für jede dynamische Tabelle zurückgegeben.

So führen Sie den Befehl REFRESH aus:

EXECUTE DCM PROJECT DCM_DEMO.PROJECTS.DCM_PROJECT_STG
  REFRESH ALL;

Die JSON-Ausgabe enthält die Ergebnisse der Aktualisierungsoperation der dynamischen Tabelle im folgenden Format:

Eigenschaft

Beschreibung

dts_refresh_result

Enthält die Ergebnisse der Aktualisierungsoperation der dynamischen Tabelle.

refreshed_tables[]

Ein Array von Einträgen, einer für jede dynamische Tabelle, die aktualisiert wurde.

table_name

Vollqualifizierter Name der dynamischen Tabelle, die aktualisiert wurde.

statistics

Aktualisierungsstatistiken für die Tabelle.

inserted_rows

Anzahl der Zeilen, die bei der Aktualisierung eingefügt wurden.

deleted_rows

Anzahl der Zeilen, die bei der Aktualisierung gelöscht wurden.

data_timestamp

ISO 8601-Zeitstempel, der die Aktualität der Daten nach der Aktualisierung angibt.

Ein Beispiel für die JSON-Ausgabe für die Aktualisierung einer dynamischen Tabelle:

{
  "dts_refresh_result": {
    "refreshed_tables": [
      {
        "table_name": "db.schema.my_dynamic_table",
        "statistics": {
          "inserted_rows": 150,
          "deleted_rows": 30
        },
        "data_timestamp": "2026-03-16T12:00:00.000Z"
      }
    ]
  }
}

TEST-Befehl für Datenqualitätserwartungen

Sie können Datenqualitätserwartungen als Qualitäts-Gateways für alle Phasen Ihrer Datentransformation festlegen:

  • Verknüpfen Sie die Erwartungen mit den Rohdaten in Ihren Zieltabellen der Bronze-Schicht, um sicherzustellen, dass Ihre Roheingaben die Erwartungen erfüllen und keine Fehler bei der Transformation verursachen.

  • Verknüpfen Sie Erwartungen als Qualitätssicherungspunkte mit Ihrer Silber-Schicht, um das Debuggen von Datenproblemen zu erleichtern, indem Sie Checkpoints in verschiedenen Transformationsphasen einrichten.

  • Verknüpfen Sie die Erwartungen mit Ihrer Gold-Schicht, um die Ausgabequalität Ihres Datenprodukts sicherzustellen.

  • Verknüpfen Sie die Erwartungen der nachgelagerten Verbraucher Ihres Datenprodukts mit Ihrer Gold-Schicht, damit Sie diese Erwartungen überprüfen können, bevor Sie grundlegende Änderungen vornehmen.

Unter Datenmetrikfunktion finden Sie Informationen zum Verknüpfen von Erwartungen in DCM-Projekten.

Sie können alle Datenqualitätserwartungen testen, die mit Tabellen, dynamischen Tabellen oder Ansichten verknüpft sind, die vom DCM project mit einem Befehl verwaltet werden.

Datenmetrikfunktionen, die ohne Erwartungen verknüpft sind, werden nicht geprüft.

Sie können die CLI-Befehle zum Einrichten automatisierter Tests als Teil Ihres CI/CD-Workflows verwenden. Beispiel: Wenn Sie produktionsähnliche Daten in einer QA-, Test- oder Stagingumgebung haben, befolgen Sie diese Schritte:

  1. PLAN mit QA, um die erwarteten Änderungen der Projektdefinition zu überprüfen.

  2. DEPLOY in QA.

  3. REFRESH ALL dynamische Tabellen auf QA, um Daten auf der Grundlage einer neuen Transformationslogik und aktualisierter Definitionen zu aktualisieren, sodass die Erwartungen nicht mit veralteten Daten getestet werden.

  4. TEST ALL Datenqualitätserwartungen, die mit Tabellenobjekten in der QA-Umgebung verknüpft sind, um zu überprüfen, ob die neu bereitgestellte Logik wie erwartet funktioniert und keine negativen Nebeneffekte auf die erwartete Form Ihrer Datenausgabe hat.

  5. Wenn alle Erwartungen an QA erfüllt sind, fahren Sie mit PLAN und DEPLOY in Ihrer Produktionsumgebung fort.

So führen Sie den Befehl TEST aus:

EXECUTE DCM PROJECT DCM_DEMO.PROJECTS.DCM_PROJECT_STG
  TEST ALL;

Die TEST-Ausgabe enthält den Gesamtstatus und die Erwartungen mit ihren Werten im folgenden Format:

Wichtig

Während der Vorschauphase kann sich das genaue Ausgabeformat ändern.

{
  "status": <status>,
  "expectations": [
    {
      "table_name": <table_name>,
      "metric_database": <metric_database>,
      "metric_schema": <metric_schema>,
      "metric_name": <metric_name>,
      "expectation_name": <expectation_name>,
      "expectation_expression": <expectation_expression>,
      "value": <value>,
      "expectation_violated": <expectation_violated>,
      "column_names": <column_names>
    }
  ]
}

Eigenschaft

Beschreibung

status

Gesamtergebnis des Testlaufs. Mögliche Werte: SUCCESSFUL (alle Erwartungen erfüllt), FAILED (eine oder mehrere Erwartungen nicht erfüllt).

expectations[]

Ein Array von Erwartungsergebnissen, eines für jede ausgewertete Datenqualitätserwartung.

table_name

Vollqualifizierter Name der Tabelle oder Ansicht, für die die Erwartung ausgewertet wurde.

metric_database

Datenbank, die die Datenmetrikfunktion enthält.

metric_schema

Schema, das die Datenmetrikfunktion enthält.

metric_name

Name der Datenmetrikfunktion (zum Beispiel NULL_COUNT, MIN, UNIQUE_COUNT).

expectation_name

Name der Erwartung, wie im Projekt definiert.

expectation_expression

Boolescher Ausdruck, mit dem der Kennzahlwert ausgewertet wird (zum Beispiel value = 0, value >= 0).

value

Das Ergebnis der Evaluierung der Datenmetrikfunktion. Nur vorhanden, wenn expectation_violated false ist.

expectation_violated

Ob die Erwartung erfüllt wurde. true, wenn der Wert der Kennzahl den Erwartungsausdruck nicht erfüllt hat; andernfalls false.

column_names

Ein Array mit den Namen der Spalten, für die die Datenmetrikfunktion ausgewertet wurde.

Ein Beispiel für die JSON-Ausgabe für einen Datenqualitätstest:

{
  "status": "FAILED",
  "expectations": [
    {
      "table_name": "db.schema.my_table",
      "metric_database": "SNOWFLAKE",
      "metric_schema": "CORE",
      "metric_name": "NULL_COUNT",
      "expectation_name": "no_nulls_in_id",
      "expectation_expression": "value = 0",
      "value": 0,
      "expectation_violated": false,
      "column_names": ["ID"]
    },
    {
      "table_name": "db.schema.my_table",
      "metric_database": "SNOWFLAKE",
      "metric_schema": "CORE",
      "metric_name": "UNIQUE_COUNT",
      "expectation_name": "unique_id_check",
      "expectation_expression": "value >= 100",
      "value": null,
      "expectation_violated": true,
      "column_names": ["ID"]
    }
  ]
}

Befehl PREVIEW

Wenn Sie die SELECT-Anweisung einer dynamischen Tabelle oder Ansicht schreiben oder ändern, hilft eine Beispielausgabe dabei, die Form der Daten zu validieren. Bei komplexen Abstammungsdiagrammen mit mehreren Transformationsschritten können Sie die Ausgabe einer nachgelagerten Ansicht oder einer dynamischen Tabelle überprüfen, wenn Sie Änderungen vorgelagert vornehmen.

Um vor der Bereitstellung zu überprüfen, ob die Transformation in Ihrem Code zu der erwarteten Datenausgabe führt, führen Sie den Befehl PREVIEW aus.

Der PREVIEW-Befehl führt PLAN aus, um die aktuellen Definitionen zu kompilieren, unabhängig von einem bereitgestellten Status, und gibt dann eine Datenstichprobe für eine angegebene dynamische Tabelle, Ansicht oder reguläre Tabelle zurück.

Beachten Sie die folgenden Anforderungen und Hinweise:

  • Der PREVIEW-Befehl muss immer auf einen vollqualifizierten Namen eines Tabellenobjekts verweisen, ohne Jinja-Variablen.

  • Um Beispieldaten in der Ausgabe anzuzeigen, müssen Sie sicherstellen, dass die Daten bereits in den Quelltabellen verfügbar sind.

  • PREVIEW fragt alle SELECT-Anweisungen von referenzierten dynamischen Tabellen und Ansichten ab, aber es werden keine Aufgaben oder CREATE TABLE AS SELECT-Anweisungen ausgeführt.

So führen Sie den Befehl PREVIEW aus:

EXECUTE DCM PROJECT DCM_DEMO.PROJECTS.DCM_PROJECT_DEV
  PREVIEW
    DCM_PROJECT_DEV.SERVE.V_DASHBOARD_KPI_SUMMARY
  USING CONFIGURATION DEV
FROM
  'snow://workspace/USER$.PUBLIC.DEFAULT$/versions/live/DCM_Project_Quickstart_1'
  LIMIT 100;