Oracle SQL Server Transformation
Die Oracle SQL Server 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 Oracle 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.
| Feldname | Beschreibung | Datentyp | Pflichtfeld |
|---|---|---|---|
case_id | Ãber dieses Feld können die Prozessinstanzen unterschieden werden. | NVARCHAR2 | ✓ |
activity | Dieses Feld beschreibt die Aktivität, die stattgefunden hat. | NVARCHAR2 | ✓ |
activity_grouped | Dieses Feld beschreibt die Gruppe der Aktivität, die stattgefunden hat. | NVARCHAR2 | ✗ |
timestamp | Dieses Feld beschreibt, wann ein Ereignis stattgefunden hat. | TIMESTAMP | ✓ |
timestamp_end | Dieses Feld kann verwendet werden, um die Dauer von Aktivitäten zu berechnen. | TIMESTAMP | ✗ |
sort_key | Dieses Feld kann verwendet werden, um die Sortierung des Ereignisprotokolls anzupassen. | NUMBER | ✗ |
value | Hier können Sie die Kosten für das aktuelle Ereignis festlegen. | NUMBER | ✗ |
automated | Hier 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ätswerte | Weitere 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 Values | Weitere 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 gruppiert | Weitere 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 anpassen
Das Schema für Input und Output muss in den Skripten angepasst werden. Dies erfolgt in Skript 6_PerformTransformation.sql.
Erstellen der Helper-Funktionen
- Öffnen Sie das Skript
0_CreateHelperProcedures.sqlund führen Sie es in Ihrer Datenbank aus. - Das Skript erstellt die Funktionen
PS_TIMESTAMP_DIFFundPS_CHECK_COLUMN_EXISTSin Ihrem Ausgabeschema.
Erstellen der statischen Tabellen
- Öffnen Sie das Skript
1_CreateStaticTables.sqlund führen Sie es in Ihrer Datenbank aus. - Das Skript erstellt die Tabellen
filter_and,filter_orund wenn die gruppierte Berechnung stattfinden soll auch die Tabellenfilter_and_grouped,filter_or_groupedundactivity_group_mapin 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_CREATE_EVENT_LOG_TABLE 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.
CREATE OR REPLACE PROCEDURE PS_CREATE_EVENT_LOG_TABLE (
SCHEMA_NAME_IN IN NVARCHAR2,
SCHEMA_NAME_OUT IN NVARCHAR2,
TABLE_NAME_INPUT IN NVARCHAR2,
ACTIVITY_GROUPED_NAME IN NVARCHAR2,
TIMESTAMP_END_NAME IN NVARCHAR2,
VALUE_NAME IN NVARCHAR2,
AUTOMATED_NAME IN NVARCHAR2,
RESOURCE_NAME IN NVARCHAR2,
SORT_KEY_NAME IN NVARCHAR2
)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_CREATE_EVENT_LOG_GROUPED_TABLE 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.
CREATE OR REPLACE PROCEDURE PS_CREATE_EVENT_LOG_GROUPED_TABLE (
SCHEMA_NAME_IN IN VARCHAR2,
SCHEMA_NAME_OUT IN VARCHAR2,
TABLE_NAME_INPUT IN VARCHAR2,
ACTIVITY_GROUPED_NAME IN VARCHAR2,
TIMESTAMP_END_NAME IN VARCHAR2,
VALUE_NAME IN VARCHAR2,
AUTOMATED_NAME IN VARCHAR2,
RESOURCE_NAME IN VARCHAR2,
SORT_KEY_NAME IN VARCHAR2,
PERFORM_GROUPED_CALCULATION OUT BOOLEAN
)Zusätzliche gruppierte Tabellen (Additional Grouped Tables)
Die Prozedur PS_CREATE_ADDITIONAL_GROUPED_TABLES erstellt die Tabellen filter_and_grouped und filter_or_grouped. Diese Prozedur wird nur ausgeführt, wenn die gruppierte Berechnung stattfinden soll.
CREATE OR REPLACE PROCEDURE PS_CREATE_ADDITIONAL_GROUPED_TABLES(
SCHEMA_NAME_OUT IN NVARCHAR2,
PERFORM_GROUPED_CALCULATION IN BOOLEAN
)Falltabelle (Cases Data)
Die Prozedur PS_CREATE_CASES_DATA_TABLE 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.
CREATE OR REPLACE PROCEDURE PS_CREATE_CASES_DATA_TABLE(
SCHEMA_NAME_IN IN NVARCHAR2,
SCHEMA_NAME_OUT IN NVARCHAR2,
TABLE_NAME_INPUT IN NVARCHAR2,
PERFORM_GROUPED_CALCULATION IN BOOLEAN
)Laden der Daten
Um die Daten zu laden muss das Skript 6_PerformTransformation.sql ausgeführt werden. Dieses Skript ruft die Prozeduren auf, die die Daten in die Tabellen schreiben. In diesem Skript müssen oben die Informationen zur Eingabetabelle und den dynamischen Spalten angepasst werden.
DECLARE
-- **************** Define the table and column names here ********************** --
SCHEMA_NAME_IN NVARCHAR2(10) := 'ADMIN'; -- Change input schema name here
SCHEMA_NAME_OUT NVARCHAR2(10) := 'ADMIN'; -- Change output schema name here
TABLE_NAME_INPUT NVARCHAR2(100) := 'EVENTLOG_EN'; -- Change input event log name here
ACTIVITY_GROUPED_NAME NVARCHAR2(50) := 'ACTIVITY_GROUPED'; -- Change activity_grouped column name here
TIMESTAMP_END_NAME NVARCHAR2(50) := 'TIMESTAMP_END'; -- Change timestamp_end column name here
VALUE_NAME NVARCHAR2(50) := 'ACTIVITY_COST'; -- Change value column name here
AUTOMATED_NAME NVARCHAR2(50) := 'AUTOMATED'; -- Change automated column name here
RESOURCE_NAME NVARCHAR2(50) := 'RESOURCE'; -- Change RESOURCE column name here
SORT_KEY_NAME NVARCHAR2(50) := 'SORT_KEY'; -- Change sort_key column name here
PERFORM_GROUPED_CALCULATION BOOLEAN; -- DO NOT CHANGE OR REMOVE
-- **************** Define the table and column names here ********************** --