Transform Phase |
Scroll Previous Topic Top Next Topic More |
In der Transformationsphase wird das Szenario TaskApp mit 02transform eingesetzt. In dieser Phase werden die .qvd-Dateien aus der ersten Phase transformiert. Wenn Sie bereits modifizierte Tabellen mit einem Konnektor (z.B. SAP-Konnektor) extrahiert haben, können Sie diese über diese App speichern. Hier können neue Schlüssel und auch Datenansichten erstellt werden. Ein Datensicht ist eine Verknüpfung von Tabellen, die im dritten Szenario 03eventsource mehrfach wiederverwendet werden.
Wie Sie wissen, benötigt ein Event Log Zeitstempel für jede Aktivität. Wenn es notwendig ist, einen Zeitstempel aus zwei verschiedenen Feldern (einem Datums- und einem Zeitfeld) zu erstellen, dann nehmen Sie in diesem Schritt folgende Änderungen in den Tabellen vor.
Empfohlen: Wenn die Tabellen sehr groß sind und nicht alle Informationen für die Erstellung des Event Logs benötigt werden, sollten Sie in diesem Schritt "where"-Filter anwenden, um die Tabellengröße zu reduzieren.. |
In Fortsetzung des vorherigen Beispiels müssen die Tabellen CDHDR, CDPOS und RSEG zu einer Datenansichtstabelle kombiniert werden, um ein Event abzuleiten (siehe Abbildung unten). Da die Tabellen CDHDR und CDPOS mehrfach für unterschiedliche Zwecke verwendet werden, wird der Join dieser beiden Tabellen im Szenario 02transform durchgeführt.
Da in diesen Tabellen viele verschiedene Informationen gespeichert sind, reduzieren wir ihre Größe bereits in der ersten Phase auf die Bestellinformationen (mit der Anweisung OBJECTCLASS='EINKBELEG'), was die Größe der Tabellen verringert und somit ihre Leistung verbessert. Auch die Zeitstempel werden hier für die korrekte Ausführung der Mining-Algorithmen formatiert. Wir erhalten den Zeitstempel AETST aus der Tabelle CDHDR, indem wir UDATE mit UTIME wie folgt kombinieren:
•AETST = timestamp(date(date#(CDHDR_UDATE,'YYYYMMDD')) + time(time#(CDHDR_UTIME,'hhmmss')))
Um die Tabellen miteinander zu verbinden, werden die folgenden Schlüssel verwendet:
•%CDHDR_PKEY: [MANDANT] & '_' & [OBJECTCLAS] & '_' & [OBJECTID] & '_' & [CHANGENR]
•%EKKO_PKEY: mid(TABKEY, 1, 3) & '_' & mid(TABKEY, 4, 10)
LET mpmXvData = 'lib://mpmX_data/';
LET mpmXvETLFolder = '$(mpmXvData)process_analytic_models/$(mvProcessDescription)/';
SET mvDateFilter = '2018-07-01';
SET mvYearFilter = '2018';
sub mpmX_execute
CDHDR_CDPOS_EINKBELEG:
LOAD *,
[CDPOS_MANDANT] & '_' & [CDPOS_OBJECTCLAS] & '_' & [CDPOS_OBJECTID] & '_' & [CDPOS_CHANGENR] as [%CDHDR_PKEY]
FROM [$(mpmXvETLFolder)01_Extract/transformed/CDPOS_EINKBELEG.qvd]
(qvd);
inner join(CDHDR_CDPOS_EINKBELEG)
LOAD *,
[CDHDR_MANDANT] & '_' & [CDHDR_OBJECTCLAS] & '_' & [CDHDR_OBJECTID] & '_' & [CDHDR_CHANGENR] as [%CDHDR_PKEY],
timestamp(date(date#(CDHDR_UDATE,'YYYYMMDD')) + time(time#(CDHDR_UTIME,'hhmmss'))) as CDHDR_AETST
FROM [$(mpmXvETLFolder)01_Extract/transformed/CDHDR_EINKBELEG.qvd](qvd)
where timestamp(date(date#(CDHDR_UDATE,'YYYYMMDD')) + time(time#(CDHDR_UTIME,'hhmmss'))) > '$(mvDateFilter)';
store CDHDR_CDPOS_EINKBELEG into [$(mpmXvETLFolder)02_Transform/views/CDHDR_CDPOS_EINKBELEG.qvd] (qvd);
drop table CDHDR_CDPOS_EINKBELEG;