Google Cloud Storage Data Lake in der DWC

Die Frage nach günstigem Speicher für selten genutzte Daten ist unter SAP DWC Nutzern omnipräsent. Und in diesem Zusammenhang spielen Cloud-Anbieter wie Google, Amazon oder Microsoft eine wichtige Rolle. Deshalb möchten wir mit unserer neuen Blogreihe einen Überblick über die unterschiedlichen Lösungen geben und erläutern, wie man sie an die SAP DWC anbindet. Im ersten Teil unseres Integrationsblogs haben wir einen Überblick über die verschiedenen Google Cloud Platform (GCP) Komponenten und deren Zusammenspiel mit der DWC gegeben.

In diesem Teil werden wir nun zum praktischen Teil schreiten und Ihnen Schritt für Schritt zeigen, wie Sie einen Data Lake in der Google Cloud Storage (GCS) an die Data Warehouse Cloud anbinden.

Mit diesem können sie mittels Data Flows direkt auf Excel, CSV, Apache Parquet und andere Dateien zugreifen und die Daten extrahieren. Ein Zugriff via Remote Tables ist hier nicht möglich. Das wiederum lässt sich mit der Anbindung des Google Big Query, ebenfalls Teil der Google Cloud Storage, erzielen, welche das Thema im nächsten Blogbeitrag sein wird.

Google Cloud Platform Konto

Wie schon im vorherigen Blog beschrieben, haben Sie mehrere Möglichkeiten ein Google Cloud Platform Konto einzurichten.

Wenn Ihr Unternehmen die GCP bereits nutzt, empfiehlt es sich, ein Projekt und ein Benutzerkonto von der zuständigen Abteilung einrichten zu lassen.

Sollte noch kein Konto bestehen, können Sie sich einfach und schnell registrieren, entweder für ein Unternehmens- oder ein privates Konto. Bei einem neuen Konto sind über ein Free Tier einige Dienstleistungen kostenfrei erhältlich, die Abrechnung der darüber hinaus gehenden Leistungen erfolgt nach Verbrauch.

Projekte anlegen

In der Google Cloud Platform werden alle Ressourcen in Projekten strukturiert. Wird das Projekt später nicht mehr benötigt, kann es relativ einfach mit allen zugehörigen Ressourcen gelöscht werden, so dass nicht versehentlich weitere Kosten auflaufen. Sollte Ihnen Ihre IT-Abteilung bei der Erstellung Ihres Kontos bereits ein Projekt zugewiesen haben, können Sie diesen Schritt selbstverständlich überspringen.

Ein Projekt wird im IAM & Admin Bereich erstellt:

Geben Sie dem Projekt einen Namen und klicken Sie auf Create:

Evtl. müssen Sie dieses Projekt noch über das Projekt Drop Down Menü auswählen:

Google Cloud Storage Bucket

Nun sind Sie bereit, den eigentlichen Data Lake anzulegen. Dies erfolgt in der Google Cloud Storage, die Sie unter Storage finden:

Im Browser können Sie sodann einen sogenannten Bucket anlegen. Buckets sind in sich abgeschlossene Speicherbereiche, die einer Region zugeordnet werden können. Machen Sie sich daher am besten schon vorab Gedanken, wie der Speicher später strukturiert werden soll. Natürlich können Sie für verschiedene Buckets auch verschiedene Verbindungen anlegen. So könnten Sie zum Beispiel für jeden Space einen eigenen Bucket anlegen um die Daten voneinander zu trennen.

Die Anlage erfolgt über Create Bucket im Cloud Storage Browser:

Geben Sie dem Bucket zuerst einen Namen, bitte beachten Sie, dass dieser Name global eindeutig sein muss. Daher ist es evtl. sinnvoll, alle Buckets mit einem eigenen Kürzel o.ä. zu beginnen:

Mit einem Klick auf Continue können Sie nun die Region, in der Sie den Bucket erstellen wollen wählen.

Es empfiehlt sich hier eine Lokation in Ihrer Nähe zu wählen, beachten Sie aber bitte auch die unterschiedlichen Kosten der verschiedenen Regionen. Aus Kostengründen macht es zudem Sinn, die Dienste, nicht unnötig über verschiedene Regionen zu verteilen, da ausgehender Traffic gebührenpflichtig ist. Sollten Sie planen, Ihren Data Warehouse Cloud Tenant später bei Google zu hosten (Geplante Verfügbarkeit laut SAP Roadmap Ende 2022) , macht es natürlich Sinn, den Bucket in derselben Lokation zu erstellen.

Für höhere Ausfallsicherheit kann man den Bucket in mehreren Regionen erstellen, allerdings ist dies mit zusätzlichen Kosten verbunden.

Als Storage Class sollte in der Regel Standard gewählt werden. Andere Speicherklassen sind zwar teilweise günstiger, dafür entstehen aber evtl. zusätzliche Kosten für Abruf oder vorzeitige Löschung der Daten.

Da wir mit einem technischen User arbeiten, reichen in der Regel Uniform Access Controls. Hier wird der Zugriff mittels bucketweiten Zugriffsrechten gewährt.

Wenn Sie verhindern wollen, dass versehentlich öffentlicher Zugriff gewährt wird, können Sie «Enforce public access prevention on this bucket» wählen.

Im nächsten Schritt können Sie noch festlegen, ob die Objekte versioniert werden sollen oder gelöscht werden dürfen. Zudem ist es möglich, einen eigenen Schlüssel zur Verschlüsselung zu wählen.

Über einen Klick auf Create wird der Bucket dann erzeugt.

Er ist nun erstellt und kann per Drag and Drop oder über die entsprechenden Buttons mit Dateien befüllt werden.

Service Account

Um den Zugriff auf die Dateien aus der Data Warehouse Cloud zu ermöglichen, benötigt man noch einen Service Account, dem Zugriff auf diesen Bucket gewährt wird.

Sie können diesen über Service Accounts im Bereich IAM & Admin erstellen:

Über einen Klick auf Create Service Account kann dieser konfiguriert werden.

Vergeben Sie einen Namen und klicken Sie auf Done um das Konto zu erstellen.

Da es beim reinen Zuweisen der Rolle Cloud Storage -> Object Viewer zu Verbindungsproblemen kommt, werden wir dem Konto die notwendigen Rechte später direkt im Bucket zuweisen. Merken Sie sich hierzu den vollen Namen des Service Accounts.

Um die Verbindung in der DWC einzurichten, benötigen wir noch einen Schlüssel, der über einen Klick auf Manage Keys im Actions Menü des entsprechenden Eintrags erzeugt werden kann.

In der Schlüsselübersicht wählen Sie Add Key und dann Create new key:

Als Format wählen Sie bitte JSON und klicken Sie auf Create.

Der Schlüssel wird nun als JSON Datei durch den Browser heruntergeladen. Bitte speichern Sie diesen an einem sicheren Ort, da dieser den direkten Zugriff auf den GCS Bucket ermöglicht. Sie benötigen diesen später bei der Einrichtung der Verbindung aus der DWC.

Der Schlüssel wird Ihnen nun in der Übersicht angezeigt.

Sollte der Schlüssel kompromittiert werden oder ein neuer benötigt werden, können Sie Ihn hier einfach löschen und einen neuen erzeugen.

Nun müssen dem Konto noch die notwendigen Rechte zugewiesen werden. Gehen Sie hierzu in zurück in den Browser der Google Cloud Storage und wählen Sie den entsprechenden Bucket aus.

Klicken Sie auf Add Permissions im Permissions Tab.

Weisen Sie dem Service Account im nächsten Schritt die Rolle Storage Legacy Bucket Reader und Storage Legacy Object Reader zu und speichern Sie.

Damit ist die Konfiguration in der Google Cloud Platform abgeschlossen, wir wechseln nun zur DWC.

Root Zertifikate der Google Cloud Platform

Um eine vertrauenswürdige Verbindung aus der DWC zur Google Cloud Platform herzustellen, ist es vorab nötig, die Zertifikate der entsprechenden Root CAs in die DWC hochzuladen.

Sie erhalten diese Zertifikate auf https://pki.goog/repository/.

Scrollen Sie ein wenig nach unten und laden Sie die folgenden Zertifikate im PEM Format herunter.

Navigieren Sie danach in der DWC zu Info -> Configuration -> Security und laden Sie die soeben heruntergeladenen Zertifkate mittels des + Buttons hoch.

Herstellen der Verbindung

Öffnen Sie die Verbindungen Ihres Spaces und klicken Sie auf den Create Button.

Als Verbindungstyp wählen Sie Google Cloud Storage.

Geben Sie den Namen des Projekts aus der GCP als Project und den Namen des Buckets als Root Path an. Mit einem Klick auf den Button rechts neben dem Key können Sie die vorher gespeicherte Schlüsseldatei des Service Users hochladen.

Im nächsten Schritt können Sie noch einen Namen vergeben und die Verbindung mittels Klick auf Create Connection erstellen.

Überprüfen Sie im Hauptbildschirm kurz, ob alles geklappt hat, indem Sie auf den Validierungsknopf drücken.

Sollten Sie hier eine Fehlermeldung bekommen, prüfen Sie bitte alle vorherigen Schritte bevor Sie fortfahren und beheben Sie die Fehler.

Anbindung einer Excel Datei in den Data Flows

Erstellen Sie im Data Builder einen neuen Data Flow. Im Linken Teil des Bildschirms sollten Sie unter Sources -> Connections nun die eingerichtete Verbindung sehen.

Öffnen Sie diese und ziehen Sie die vorher hochgeladene Excel Datei in den Data Flow.

Im Konfigurationsmenü des Excel Knotens können Sie nun das gewünschte Arbeitsblatt auswählen und bestimmen, ob die erste Zeile Kopfzeilen enthält.

Mittels Klick auf neue Tabelle erstellen wird dem Dataflow ein weiterer Knoten hinzugefügt.

Danach müssen Sie nur noch einen Namen für die Zieltabelle vergeben, möglichst einen Primärschlüssel festlegen und die Tabelle mittels Create and Deploy Table erstellen.

Wählen Sie nun noch, wie die Tabelle aktualisiert werden soll.

Es gibt drei Update Modes:

  • APPEND: Daten werden entsprechend der Quelltabelle hinzugefügt. Wenn die UPSERT Option nicht angewählt wird, werden die Daten auch bei bereits vorhandenem Schlüssel hinzugefügt, was zu Fehlern führen kann. Daher sollte die Option in der Regel angewählt werden. Ist der Schlüssel dann schon vorhanden, wird die entsprechenden Zeile aktualisiert.
  • DELETE: Die in der Quelle vorhandenen Zeilen werden im Ziel gelöscht.
  • TRUNCATE: Die Zieltabelle wird geleert und anhand der in der Quelle vorhandenen Daten neu aufgebaut.

Nun müssen Sie den Dataflow nur noch deployen und ausführen, um die Daten in die Zieltabelle zu schreiben.

In den Eigenschaften des Data Flows oder im Integration Monitor können Sie die Ausführung danach überwachen oder regelmässig einplanen.

Sobald der Status auf Completed steht, sind die Daten in der DWC verfügbar.

Ausblick

Wir hoffen, dass Ihnen diese Anleitung zur Anbindung eines GCP Data Lakes an die SAP Data Warehouse Cloud geholfen hat. Im nächsten Blog werden wir uns dann der Anbindung von Big Query widmen.

Im späteren Verlauf der Reihe werden wir zudem die Anbindung der Amazon Web Services und Azure vorstellen.

Wie immer stehen wir für Fragen und Unterstützung natürlich jederzeit zur Verfügung.

Martin Hesse
Martin Hesse
Senior Expert Analytics & BI

Als Senior Expert Analytics & BI befasse ich mich seit 20 Jahren mit diversen Aspekten des Business Intelligence Umfelds. Neben meinem Fokus auf SAP BW und SAP Data Warehouse Cloud schaue ich auch immer wieder gerne über den Tellerrand heraus, da neue Technologien und deren Integration oft interessante neue Möglichkeiten bieten.

Kontakt
Kontakt

Sie haben Fragen? Kontaktieren Sie uns gerne.

Rufen Sie uns gerne an
+41 44 735 85 55
Schreiben Sie uns