Skip to content

Snowflake Transformation

Die Snowflake Transformation wird in der Enterprise Version von process.science für Power BI zur Aufbereitung der Daten verwendet. Das Paket ist so konzipiert, dass es die Daten aus der Snowflake Datenbank in eine Form bringt, die für Power BI geeignet ist. Es erstellt vier Tabellen, die für die Analyse in Power BI verwendet werden können.

Vorbereiten der Eingabetabelle

Bevor die Skripte verwendet werden können, müssen Sie sicherstellen, dass Ihre Eingabetabelle die folgenden Anforderungen erfüllt. Die Spaltennamen für case_id, activity und timestamp sind festgelegt und müssen in Ihrer Eingabetabelle vorhanden sein. Die anderen Namen können im Skript geändert werden.

FeldnameBeschreibungDatentypPflichtfeld
case_idÜber dieses Feld können die Prozessinstanzen unterschieden werden.STRING
activityDieses Feld beschreibt die Aktivität, die stattgefunden hat.STRING
activity_groupedDieses Feld beschreibt die Gruppe der Aktivität, die stattgefunden hat.STRING
timestampDieses Feld beschreibt, wann ein Ereignis stattgefunden hat.TIMESTAMP_*
timestamp_endDieses Feld kann verwendet werden, um die Dauer von Aktivitäten zu berechnen.TIMESTAMP_*
sort_keyDieses Feld kann verwendet werden, um die Sortierung des Ereignisprotokolls anzupassen.NUMBER
valueHier können Sie die Kosten für das aktuelle Ereignis festlegen.NUMBER
automatedHier können Sie festlegen, ob der Vorgang automatisiert wurde oder nicht.NUMBER
resourceÜber dieses Feld können Nutzerinformationen pro Aktivität mitgegeben werden.Beliebig
Zusätzliche AktivitätswerteWeitere Informationen pro Aktivität, z. B. die Menge der Positionen. Alle Felder, die nicht mit anderen Namen übereinstimmen, werden als zusätzliche Aktivitätswerte abgebildet und in der neu erstellten Ereignisprotokolltabelle gespeichert.Beliebig
Additional Cases ValuesWeitere Informationen pro Fall, z.B. ein Unternehmensbereich. Alle Felder, die mit case_ beginnen, werden als zusätzliche Fallwerte abgebildet und in der neu erstellten Falltabelle gespeichert.Beliebig
Zusätzliche Aktivitätswerte gruppiertWeitere Informationen pro Aktivitätsgruppe, z. B. die Menge der Positionen. Alle Felder, die mit _grouped enden, werden als zusätzliche Aktivitätsgruppenwerte abgebildet und in der neu erstellten Ereignisprotokolltabelle gespeichert.Beliebig

Herunterladen der Skripte

Die Skripte können immer in der aktuellsten Version aus unserem Self Service Portal heruntergeladen werden. Die Skripte sind in einer ZIP-Datei enthalten und müssen entpackt werden.

Installation und Konfiguration

Schema und Datenbank anpassen

Wenn das Ausgabeschema nicht PUBLIC und die Tabelle nicht PSTEST sind, müssen Sie die Skripte anpassen, um das richtige Schema und Datenbank zu verwenden. Ersetzen Sie dafür PUBLIC durch das gewünschte Schema und PSTEST durch die richtige Datenbank.

Erstellen der statischen Tabellen

  1. Öffnen Sie das Skript 1_CreateStaticTables.sql und führen Sie es in Ihrer Datenbank aus.
  2. Das Skript erstellt die Tabellen filter_and, filter_or und wenn die gruppierte Berechnung stattfinden soll auch die Tabellen filter_and_grouped, filter_or_grouped und activity_group_map in Ihrem Ausgabeschema.

Dieses Skript muss immer dann ausgeführt werden, wenn sich die Struktur der Eingabetabelle ändert.

Erstellen der Prozeduren

Im nächsten Schritt müssen die Prozeduren erstellt werden, die die Daten in die Tabellen schreiben. Dafür müssen die Skripte 2_CreateEventLogProcedure.sql, 3_CreateEventLogGroupedProcedure.sql, 4_CreateAdditionalGroupedTablesProcedure.sql , 5_CreateCasesDataProcedure.sql ausgeführt werden. Dies muss lediglich einmalig erfolgen.

Ereignisprotokoll (Event Log)

Die Prozedur ps_createEventLogDataTable erstellt die Tabelle eventlog in Ihrem Ausgabeschema und füllt sie mit den Daten aus der Eingabetabelle. Alle zusätzlichen Spalten, die nicht mit case_ anfangen oder mit _grouped enden, werden in der Tabelle eventlog gespeichert.

sql
CREATE OR REPLACE PROCEDURE ps_createEventLogTable(
    SCHEMA_NAME STRING,
    TABLE_NAME STRING,
    ACTIVITY_GROUPED_NAME STRING,
    TIMESTAMP_END_NAME STRING,
    VALUE_NAME STRING,
    AUTOMATED_NAME STRING,
    RESOURCE_NAME STRING,
    SORT_KEY_NAME STRING
)

Sind die dynamischen Spalten (timestamp_end, sort_key, value, automated und resource) nicht in der Eingabetabelle vorhanden, werden sie automatisch mit Standardwerten befüllt.

Ereignisprotokoll gruppiert (Event Log Grouped)

Die Prozedur ps_createEventLogGroupedTable erstellt die Tabelle eventlog_grouped in Ihrem Ausgabeschema und füllt sie mit den Daten aus der Eingabetabelle. Dieses Skript wird nur ausgeführt, wenn die gruppierte Berechnung stattfinden soll, also die Spalte activity_grouped in der Eingabetabelle vorhanden ist. Alle zusätzlichen Spalten mit dem Suffix _grouped werden in der Tabelle eventlog_grouped gespeichert.

sql
CREATE OR REPLACE PROCEDURE ps_createEventLogGroupedTable(
    SCHEMA_NAME STRING,
    TABLE_NAME STRING,
    ACTIVITY_GROUPED_NAME STRING,
    TIMESTAMP_END_NAME STRING,
    VALUE_NAME STRING,
    AUTOMATED_NAME STRING,
    RESOURCE_NAME STRING,
    SORT_KEY_NAME STRING
)

Filtertabellen (Filter Tables)

Die Prozedur ps_createFilterTables erstellt die Tabellen filter_and und filter_or.

sql
CREATE OR REPLACE PROCEDURE ps_createFilterTables(
    SCHEMA_NAME STRING
)

Zusätzliche gruppierte Tabellen (Additional Grouped Tables)

Die Prozedur ps_createAdditionalGroupedTables erstellt die Tabellen filter_and_grouped und filter_or_grouped. Diese Prozedur wird nur ausgeführt, wenn die gruppierte Berechnung stattfinden soll.

sql
CREATE OR REPLACE PROCEDURE ps_createAdditionalGroupedTables(
    SCHEMA_NAME STRING
)

Falltabelle (Cases Data)

Die Prozedur ps_createCasesDataTable erstellt die Tabelle cases_data in Ihrem Ausgabeschema und füllt sie mit den Daten aus der Eingabetabelle. Alle zusätzlichen Spalten, die mit case_ beginnen, werden in der Tabelle cases_data gespeichert.

sql
CREATE OR REPLACE PROCEDURE ps_createCasesDataTable(
    SCHEMA_NAME STRING,
    TABLE_NAME STRING,
    ACTIVITY_GROUPED_NAME STRING
)

Laden der Daten

Um die Daten zu laden muss das Skript 7_CreateMainProcedure.sql ausgeführt werden. Dieses Skript erstellt eine Prozedur, welche alle anderen Prozeduren aufruft, die die Daten in die Tabellen schreiben. Die Prozedur wird mit den angepassten Tabellen- und Spaltennamen aufgerufen.

sql
CREATE OR REPLACE PROCEDURE ps_mainProcedure(
    SCHEMA_NAME STRING,
    TABLE_NAME STRING,
    ACTIVITY_GROUPED_NAME STRING,
    TIMESTAMP_END_NAME STRING,
    VALUE_NAME STRING,
    AUTOMATED_NAME STRING,
    RESOURCE_NAME STRING,
    SORT_KEY_NAME STRING
)

Ausführen der Hauptprozedur

Um die Daten in die Tabellen zu schreiben, rufen Sie die Prozedur ps_mainProcedure auf. Die Prozedur wird mit den angepassten Tabellen- und Spaltennamen aufgerufen.

sql
CALL ps_mainProcedure('O2C', 'AUTOMOTIVE_EN', 'ACTIVITY_GROUPED_NAME', 'TIMESTAMP_END_NAME', 'VALUE_NAME', 'AUTOMATED_NAME', 'RESOURCE_NAME', 'SORT_KEY_NAME');