DataStream APIs verwenden

Für Unternehmen mit vielen isolierten Datenquellen ist der Zugriff auf Unternehmensdaten im gesamten Unternehmen, insbesondere in Echtzeit, abschreckend schwierig. Dies führt zu einem begrenzten und langsamen Datenzugriff, der die Fähigkeit des Unternehmens zur Selbstbeobachtung und Innovation einschränkt.

Datastream durchbricht die Barrieren von isolierten Unternehmensdaten, indem es nahezu in Echtzeit Zugriff auf Änderungsdaten aus einer Vielzahl von lokalen und Cloud-basierten Datenquellen bietet. Datastream bietet eine einfache Einrichtung und eine einheitliche Nutzungs-API, die den Zugriff auf die aktuellsten Unternehmensdaten im gesamten Unternehmen demokratisiert und integrierte Szenarien in Echtzeit ermöglicht.

Ein solches Szenario ist die Übertragung von Daten aus einer Quelldatenbank in einen cloudbasierten Speicherdienst und die Umwandlung dieser Daten in eine Sprache, die von anderen Anwendungen und Diensten, die mit diesem Speicherdienst kommunizieren, gelesen werden kann.

In dieser Anleitung erfahren Sie, wie Sie mit Datastream Schemas, Tabellen und Daten aus einer Oracle-Quelldatenbank in einen Ordner in einem Cloud Storage-Bucket übertragen. Cloud Storage ist ein Webdienst zum Speichern und Abrufen von Daten in Google Cloud. Der Dienst kombiniert die Leistung und Skalierbarkeit der Google Cloud mit erweiterten Sicherheits- und Freigabefunktionen.

Im Rahmen der Übertragung dieser Informationen in einen Ordner im Cloud Storage-Ziel-Bucket übersetzt Datastream diese Informationen in Avro. Avro wird durch ein Schema definiert, das in JavaScript Object Notation (JSON) geschrieben ist, und die in dieses Schema eingebetteten Daten und Tabellen können in jeder Sprache gelesen werden.

Ziele

In dieser Anleitung erfahren Sie mehr über die folgenden Themen:

  • Legen Sie die Variablen fest. Sie verwenden diese Variablen, wenn Sie Anfragen an Datastream senden, um sowohl Verbindungsprofile als auch einen Stream zu erstellen und zu verwalten.
  • Verbindungsprofile für eine Quelldatenbank und einen Ziel-Bucket in Cloud Storage erstellen und verwalten. Mit diesen Verbindungsprofilen erstellen Sie Datensätze mit Informationen zur Quelldatenbank und zum Cloud Storage-Ziel-Bucket. Der Stream in Datastream verwendet die Informationen in den Verbindungsprofilen, um Daten aus der Quelldatenbank in einen Ordner im Ziel-Bucket zu übertragen.
  • Stream erstellen und verwalten. Datastream verwendet diesen Stream, um Daten, Schemas und Tabellen aus der Quelldatenbank in einen Ordner im Ziel-Bucket zu übertragen.
  • Prüfen, ob Datastream die mit einem Schema der Oracle-Quelldatenbank verknüpften Daten und Tabellen in einen Ordner im Ziel-Bucket überträgt und diese Daten in das Avro-Dateiformat übersetzt.
  • Ressourcen bereinigen, die Sie in Datastream erstellt haben, damit sie keine kostenpflichtigen Kontingente verbrauchen.

Kosten

In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

  • Datastream
  • Cloud Storage

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  4. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  5. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  6. Sorgen Sie dafür, dass Sie eine Quelldatenbank haben, auf die Datastream zugreifen kann. In dieser Anleitung wird eine Oracle-Datenbank als Quelle verwendet.
  7. Prüfen Sie, ob Sie einen Cloud Storage-Ziel-Bucket konfiguriert haben, auf den Datastream entweder die IP-Zulassungsliste oder die Netzwerkverbindungsmethode des SSH-Tunnels weiterleiten kann.
  8. In der Quelldatenbank müssen Daten, Tabellen und Schemas vorhanden sein, die von Datastream in einen Ordner im Cloud Storage-Ziel-Bucket übertragen werden können.
  9. Laden Sie Google Cloud Shell herunter und installieren Sie es. Diese Clientanwendung bietet Ihnen einen Befehlszeilenzugriff auf Ihre Cloudressourcen (einschließlich Datastream).
  10. Installieren und konfigurieren Sie das Dienstprogramm jq. Dieses Dienstprogramm ist ein einfacher und flexibler JSON-Befehlszeilenprozessor. Mit diesem Prozessor zeigen Sie komplexe cURL-Befehle in leicht lesbarem Text an.

Variablen festlegen

In diesem Abschnitt legen Sie die folgenden Variablen fest:

  • $PROJECT: Diese Variable ist Ihrem Google Cloud-Projekt zugeordnet. Alle Google Cloud-Ressourcen, die Sie zuweisen und nutzen, müssen zu einem Projekt gehören.
  • $TOKEN: Diese Variable ist einem Zugriffstoken zugeordnet. Das Zugriffstoken stellt eine Sitzung bereit, die Google Cloud Shell verwendet, um Aufgaben in Datastream über REST APIs auszuführen.
  • $ENV: Diese Variable ist der Umgebung zugeordnet, die Sie zum Übertragen von Daten, Schemas und Tabellen aus einer Quelldatenbank in einen Ordner in einem Cloud Storage-Ziel-Bucket verwenden.
  1. Starten Sie die Google Cloud Shell-Anwendung.

  2. Geben Sie nach der Authentifizierung bei Ihrer Anwendung gcloud auth login ein.

  3. Geben Sie bei der Eingabeaufforderung Do you want to continue (Y/n)? den Wert Y ein.

  4. Öffnen Sie einen Webbrowser, und kopieren Sie die angegebene URL in den Browser.

  5. Authentifizieren Sie sich beim Google Cloud SDK. Auf der Anmeldeseite wird ein Code angezeigt. Dieser Code ist Ihr Zugriffstoken.

  6. Kopieren Sie das Zugriffstoken, fügen Sie es in den Parameter Enter verification code: Ihrer Google Cloud Shell-Anwendung ein und drücken Sie Enter.

  7. Geben Sie bei der Eingabeaufforderung PROJECT="[YOUR_PROJECT_NAME]" ein, um die Umgebungsvariable $PROJECT auf Ihr Google Cloud-Projekt zu setzen.

  8. Geben Sie bei der Eingabeaufforderung gcloud config set project [YOUR_PROJECT_NAME] ein, um das Projekt festzulegen, an dem Sie an Ihrem Google Cloud-Projekt arbeiten möchten.

    Die Eingabeaufforderung wird aktualisiert, um Ihr aktuelles Projekt zu berücksichtigen und das Format zu berücksichtigen: [USERNAME]@cloudshell:~ ([YOUR_PROJECT_NAME])$

  9. Geben Sie bei der Eingabeaufforderung TOKEN=$(gcloud auth print-access-token) ein, um das Zugriffstoken abzurufen und als Variable zu speichern.

  10. Geben Sie bei der Eingabeaufforderung ENV="[YOUR_ENVIRONMENT_NAME]" ein, um die Umgebungsvariable auf Ihre Umgebung festzulegen.

  11. Geben Sie bei der Eingabeaufforderung die folgenden Befehle ein, um sicherzustellen, dass die Variablen $PROJECT, $TOKEN und $ENV korrekt festgelegt sind:

    • echo $PROJECT
    • echo $TOKEN
    • echo $ENV

Nachdem Sie die Variablen festgelegt haben, können Sie Anfragen an Datastream senden, um sowohl Verbindungsprofile als auch einen Stream zu erstellen und zu verwalten.

Verbindungsprofile erstellen und verwalten

In diesem Abschnitt erstellen und verwalten Sie Verbindungsprofile für eine Oracle-Quelldatenbank und einen Ziel-Bucket in Cloud Storage.

Mit diesen Verbindungsprofilen erstellen Sie Datensätze mit Informationen zur Quelldatenbank und zum Cloud Storage-Ziel-Bucket. Datastream verwendet die Informationen in den Verbindungsprofilen, um Daten aus der Quelldatenbank in einen Ordner im Ziel-Bucket zu übertragen.

Das Erstellen und Verwalten von Verbindungsprofilen umfasst:

  • Verbindungsprofile für eine Oracle-Quelldatenbank und einen Ziel-Bucket in Cloud Storage erstellen
  • Allgemeine und detaillierte Informationen über ein Verbindungsprofil abrufen
  • Verbindungsprofil ändern
  • Discover API-Aufruf des Oracle-Quellverbindungsprofils ausführen. So können Sie in die Datenbank schauen, um die mit ihr verbundenen Objekte zu sehen. Diese Objekte umfassen die Schemas und Tabellen, die die Daten der Datenbank enthalten. Wenn Sie Datastream zum Konfigurieren eines Streams verwenden, möchten Sie auf möglicherweise nicht alle Objekte der Datenbank abrufen, sondern nur eine Teilmenge der Objekte (z. B. nur bestimmte Tabellen und Schemas der Datenbank). Verwenden Sie die Discover API, um die Teilmenge der Datenbankobjekte, die Sie abrufen möchten, zu finden (oder zu erkennen).

Verbindungsprofile erstellen

In diesem Abschnitt erstellen Sie zwei Verbindungsprofile zu einer Oracle-Quelldatenbank und einem Ziel-Bucket in Cloud Storage.

  1. Verbindungsprofil zu einer Oracle-Quelldatenbank erstellen Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    ORACLE="{\"displayName\":\"[DISPLAY_NAME]\",\"oracle_profile\":{\"hostname\":\"[HOSTNAME],\"username\":\"[USERNAME]\",\"database_service\":\"[DATABASE_SERVICE]\",\"password\":\"[PASSWORD]\",\"port\":[PORT_NUMBER]},\"no_connectivity\":{}}"
    

    Die folgende Tabelle bietet einen Einblick in die Parameterwerte für die Oracle-Quelldatenbank:

    ParameterwertErsetzen durch
    [DISPLAY_NAME]Der angezeigte Name des Verbindungsprofils zur Quelldatenbank.
    [HOSTNAME]Der Hostname des Quelldatenbankservers.
    [USERNAME]Der Nutzername des Kontos für die Quelldatenbank (z. B. ROOT).
    [DATABASE_SERVICE]Der Dienst, mit dem die Quelldatenbank geschützt und überwacht wird. Bei Oracle-Datenbanken ist der Datenbankdienst normalerweise ORCL.
    [PASSWORD]Das Passwort des Kontos für die Quelldatenbank.
    [PORT_NUMBER]Die Portnummer, die für die Quelldatenbank reserviert ist. Bei einer Oracle-Datenbank ist die Portnummer normalerweise 1521.
  2. Geben Sie bei der Eingabeaufforderung den Befehl echo $ORACLE | jq ein, um das von Ihnen erstellte Quellverbindungsprofil in leicht lesbarem Text anzuzeigen.

    {
      "displayName": "[DISPLAY_NAME]",
      "oracle_profile": {
        "hostname": "[HOSTNAME]",
        "username": "[USERNAME]",
        "database_service": "[DATABASE_SERVICE]",
        "password": "[PASSWORD]",
        "port": [PORT_NUMBER]
       },
      "no_connectivity": {}
    }
    
  3. Senden Sie das Oracle-Verbindungsprofil, damit es erstellt werden kann. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X POST -d $ORACLE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles?connection_profile_id=[SOURCE_CONNECTION_PROFILE_ID]
    

    Verwenden Sie die folgende Tabelle, um die Parameterwerte für diesen Befehl zu verstehen:

    ParameterwertErsetzen durch
    [DATASTREAM_VERSION]Die aktuelle Version von Datastream (z. B. v1alpha1).
    [PROJECT_PATH]Der vollständige Pfad Ihres Google Cloud-Projekts (z. B. projects/$PROJECT/locations/[YOUR_PROJECT_LOCATION])).
    [SOURCE_CONNECTION_PROFILE_ID]Die eindeutige Kennung, die für dieses Verbindungsprofil reserviert ist (z. B. cp-1).
  4. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

    {
      "name": "[PROJECT_PATH]/operations/operation-[SOURCE_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "datastream.googleapis.com/[DATASREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  5. Neues Verbindungsprofil zu einem Ziel-Bucket in Cloud Storage erstellen Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    GOOGLECLOUDSTORAGE="{\"displayName\":\"[DISPLAY_NAME]\",\"gcs_profile\":{\"bucket_name\":\"[BUCKET_NAME]\",\"root_path\":\"/[FOLDER_PATH]\"},\"no_connectivity\":{}}"
    

    Verwenden Sie die folgende Tabelle, um die Parameterwerte für den Ziel-Bucket zu verstehen:

    ParameterwertErsetzen durch
    [DISPLAY_NAME]Der angezeigte Name des Verbindungsprofils zum Ziel-Bucket.
    [BUCKET_NAME]Der Name des Ziel-Buckets.
    [FOLDER_PATH]Der Ordner im Ziel-Bucket, in den Datastream Daten aus der Quelldatenbank überträgt (z. B. /root/path).
  6. Geben Sie an der Eingabeaufforderung den Befehl echo $GOOGLECLOUDSTORAGE | jq ein, um das von Ihnen erstellte Zielverbindungsprofil als leicht lesbaren Text anzuzeigen.

    {
      "displayName": "[DISPLAY_NAME]",
      "gcs_profile": {
        "bucket_name": "[BUCKET_NAME]",
        "root_path": "/[FOLDER_PATH]"
      },
      "no_connectivity": {}
    }
    
  7. Senden Sie das Cloud Storage-Verbindungsprofil, damit es erstellt werden kann. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X POST -d $GOOGLECLOUDSTORAGE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles?connection_profile_id=[DESTINATION_CONNECTION_PROFILE_ID]
    
  8. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "datastream.googleapis.com/[DATASREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  9. Prüfen Sie, ob beide Verbindungsprofile erstellt werden. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles
    
  10. Prüfen Sie, ob Sie zwei zurückgegebene Ergebnisse für das Quell- und Zielverbindungsprofil erhalten.

    {
      "connectionProfiles": [
        {
          "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "createTime": "[DATE_AND_TIME_STAMP]",
          "updateTime": "[DATE_AND_TIME_STAMP]",
          "displayName": "[DISPLAY_NAME]",
          "gcsProfile": {
            "bucketName": "[BUCKET_NAME]",
            "rootPath": "[FOLDER_PATH]"
          },
          "noConnectivity": {}
        },
       {
        "name": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "oracleProfile": {
          "hostname": "[HOSTNAME]",
          "port": [PORT_NUMBER],
          "username": "[USERNAME]",
          "databaseService": "[DATABASE_SERVICE]"
        },
        "noConnectivity": {}
        }
      ]
    }
    

Verbindungsprofile verwalten

In diesem Abschnitt verwalten Sie die Verbindungsprofile, die Sie für eine Oracle-Quelldatenbank und einen Ziel-Bucket in Cloud Storage erstellt haben. Dazu zählen:

  • Allgemeine und detaillierte Informationen zum Cloud Storage-Zielprofil abrufen
  • Dieses Verbindungsprofil ändern. Für diese Anleitung ändern Sie den Ordner des Cloud Storage-Ziel-Bucket in /root/tutorial. Datastream überträgt Daten aus der Quelldatenbank in diesen Ordner.
  • Discover API-Aufruf des Oracle-Quellverbindungsprofils ausführen
  1. Rufen Sie allgemeine Informationen zum Cloud Storage-Zielverbindungsprofil ab. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]
    
  2. Prüfen Sie, ob Sie allgemeine Informationen zu diesem Verbindungsprofil sehen.

    {
      "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "gcsProfile": {
        "bucketName": "[BUCKET_NAME]",
        "rootPath": "[FOLDER_PATH]"
      },
      "noConnectivity": {}
    }
    
  3. Rufen Sie detaillierte Informationen zu diesem Verbindungsprofil ab. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]
    
  4. Prüfen Sie, ob Sie detaillierte Informationen zum Verbindungsprofil sehen.

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].ConnectionProfile",
        "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "gcsProfile": {
          "bucketName": "[BUCKET_NAME]",
          "rootPath": "[FOLDER_PATH]"
        },
        "noConnectivity": {}
      }
    }
    
  5. Ändern Sie dieses Verbindungsprofil. Legen Sie dazu zuerst die Variable UPDATE fest. Diese Variable enthält die Werte des Verbindungsprofils, das Sie ändern möchten. In dieser Anleitung ändern Sie den Ordner des Ziel-Buckets in /root/tutorial.

    Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, um die Variable festzulegen:

    UPDATE="{\"gcsProfile\":{\"rootPath\":\"/root/tutorial\"}}"
  6. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]?update_mask=gcsProfile.rootPath
    
  7. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  8. Prüfen Sie, ob das Verbindungsprofil geändert wurde. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]
    
  9. Prüfen Sie, ob der Ordner des Ziel-Buckets des Cloud Storage-Verbindungsprofils jetzt /root/tutorial ist.

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].ConnectionProfile",
        "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "gcsProfile": {
          "bucketName": "[BUCKET_NAME]",
          "rootPath": "/root/tutorial"
        },
        "noConnectivity": {}
      }
    }
    
  10. Ermitteln Sie mit der Datastream Discovery API die Schemas und Tabellen der Oracle-Quelldatenbank. Datastream greift über das Quellverbindungsprofil auf diese Datenbank zu.

    1. Ermitteln Sie zuerst die Schemas der Oracle-Datenbank. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

      curl -X POST -d "{"connection_profile_name":"projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]"}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles:discover
        

    2. Prüfen Sie, ob Datastream alle Schemas Ihrer Datenbank abruft.

    3. Rufen Sie als Nächstes die Tabellen eines Schemas in Ihrer Datenbank ab. In dieser Anleitung rufen Sie mit der Discover API die Tabellen des Schemas ROOT ab. Sie können jedoch die Tabellen jedes Schemas in Ihrer Datenbank ermitteln.

      Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

      curl -X POST -d "{\"connection_profile_name\":\"projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]\", \"oracle_rdbms\":{\"oracleSchemas\":[{\"schemaName\":\"ROOT\"}]}}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles:discover
      
    4. Prüfen Sie, ob Datastream alle Tabellen des Schemas abruft, das Sie angegeben haben (für diese Anleitung das Schema ROOT).

Nachdem Sie nun Verbindungsprofile für eine Oracle-Quelldatenbank und einen Ziel-Bucket in Cloud Storage erstellt und verwaltet haben, können Sie einen Stream in Datastream erstellen und verwalten.

Stream erstellen und verwalten

In diesem Abschnitt erstellen und verwalten Sie einen Stream. Datastream verwendet diesen Stream, um Daten, Schemas und Tabellen aus der Quelldatenbank in einen Ordner im Cloud Storage-Ziel-Bucket zu übertragen.

Das Erstellen und Verwalten eines Streams umfasst:

  • Einen Stream mit den folgenden Listen erstellen:
    • Eine Zulassungsliste. In dieser Liste sind die Tabellen und Schemas in der Quelldatenbank angegeben, die Datastream in einen Ordner im Ziel-Bucket in Cloud Storage übertragen kann. In dieser Anleitung ist dies der Ordner /root/tutorial.
    • Einer Ablehnungsliste. In dieser Liste sind die Tabellen und Schemas in der Quelldatenbank angegeben, die von Datastream nicht in den Ordner im Cloud Storage-Ziel-Bucket übertragen werden.
  • Allgemeine und detaillierte Informationen zum Stream abrufen
  • Stream ändern
  • Fetch Error API verwenden, um mit dem Stream verknüpfte Fehler zu erkennen
  • Stream starten, damit Datastream Daten, Schemas und Tabellen aus der Quelldatenbank in einen Ordner im Cloud Storage-Ziel-Bucket übertragen kann.
  • Stream pausieren. Wenn ein Stream pausiert ist, ruft Datastream keine neuen Daten aus der Quelldatenbank in den Ziel-Bucket ab.
  • Fortsetzen des pausierten Streams, damit Datastream weiterhin Daten in den Ziel-Bucket übertragen kann.

Stream erstellen

In diesem Abschnitt erstellen Sie einen Stream von der Oracle-Quelldatenbank in einen Ordner im Cloud Storage-Ziel-Bucket. Der von Ihnen erstellte Stream enthält sowohl eine Zulassungsliste als auch eine Ablehnungsliste.

  1. Legen Sie eine SCHEMAS-Variable fest: Mit dieser Variable werden die Schemas definiert, die die Daten und Tabellen enthalten, die von Datastream aus der Quelldatenbank abgerufen und in den Ordner /root/tutorial des Cloud Storage-Ziel-Buckets übertragen werden sollen. In dieser Anleitung legen Sie die Variable SCHEMAS fest, die mit dem Schema ROOT verknüpft sein soll.

    Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    SCHEMAS="{\"oracleSchemas\":[{\"schemaName\":\"ROOT\"}]}"
    
  2. Geben Sie an der Eingabeaufforderung den Befehl echo $SCHEMAS | jq ein, um das von Ihnen für diese Variable definierte ROOT-Schema als leicht lesbaren Text anzuzeigen.

  3. Erstellen Sie einen Stream. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    STREAM="{\"display_name\":\"[DISPLAY_NAME]\",\"source_config\":{\"source_connection_profile_name\":\"[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",\"oracle_source_config\":{\"allowlist\":$SCHEMAS,\"rejectlist\":{}}},\"destination_config\":{\"destination_connection_profile_name\":\"[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]\",\"gcs_destination_config\":{\"file_rotation_mb\":5,\"file_rotation_interval\":{\"seconds\":15},\"gcs_file_format\":\"AVRO\"}}}"
    
  4. Geben Sie an der Eingabeaufforderung den Befehl echo $STREAM | jq ein, um den von Ihnen erstellten Stream als leicht lesbaren Text anzuzeigen.

    {
      "display_name": "[DISPLAY_NAME]",
      "source_config": {
        "source_connection_profile_name": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracle_source_config": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destination_config": {
        "destination_connection_profile_name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcs_destination_config": {
          "file_rotation_mb": 5,
          "file_rotation_interval": {
            "seconds": 15
          },
          "gcs_file_format": "AVRO"
        }
      }
    }
    

    Verwenden Sie diese Tabelle, um die folgenden Parameter des Streams zu verstehen:

    ParameterBeschreibung
    allowlistDie Schemas mit Tabellen und Daten, die von der Quelldatenbank in einen Ordner des Cloud Storage-Ziel-Buckets übertragen werden. In dieser Anleitung werden alle Tabellen und Daten aus dem Schema ROOT (und nur dieses Schema) in den Ordner /root/tutorial des Ziel-Buckets übertragen.
    rejectlistAlle Schemas, die Tabellen und Daten enthalten und nicht in einen Ordner des Cloud Storage-Ziel-Buckets übertragen werden. In diesem Tutorial bedeutet der Wert {}, dass keine Tabellen und Daten aus der Quelldatenbank an der Übertragung in den Ziel-Bucket gehindert werden.
    file_rotation_mbDie maximale Größe (in MBytes) von Dateien mit Daten, Tabellen und Schemas, die von der Quelldatenbank in einen Ordner im Cloud Storage-Ziel-Bucket übertragen werden können. In dieser Anleitung beträgt die maximale Dateigröße 5 MByte. Dateien, die diese Größe überschreiten, werden in mehrere 5 MB-Dateien unterteilt.
    file_rotation_intervalWie viele Sekunden vergehen, bevor Datastream eine vorhandene Datei in einem Ordner des Cloud Storage-Ziel-Buckets durch eine neuere Datei ersetzt, die von der Quelldatenbank übertragen wird. In dieser Anleitung ist das Dateirotationsintervall auf 15 Sekunden festgelegt.
    gcs_file_formatDas Format der Dateien, die Datastream aus der Quelldatenbank in einen Ordner des Cloud Storage-Ziel-Buckets überträgt. In dieser Anleitung ist Avro (AVRO) das Dateiformat.
  5. Senden Sie den Stream, damit er erstellt werden kann. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X POST -d $STREAM -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams?stream_id=[STREAM_ID]
    
  6. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  7. Bestätigen Sie, dass der Stream erstellt wurde. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams
    
  8. Prüfen Sie, ob Sie ein zurückgegebenes Ergebnis für den von Ihnen erstellten Stream erhalten.

    {
      "streams": [
        {
          "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
          "createTime": "[DATE_AND_TIME_STAMP]",
          "updateTime": "[DATE_AND_TIME_STAMP]",
          "displayName": "[DISPLAY_NAME]",
          "sourceConfig": {
            "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
            "oracleSourceConfig": {
              "allowlist": {
                "oracleSchemas": [
                  {
                    "schemaName": "ROOT"
                  }
                ]
              },
              "rejectlist": {}
            }
          },
          "destinationConfig": {
            "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
            "gcsDestinationConfig": {
              "gcsFileFormat": "AVRO",
              "fileRotationMb": 5,
              "fileRotationInterval": "15s"
            }
          },
          "state": "CREATED"
        }
      ]
    }
    

Stream verwalten

In diesem Abschnitt verwalten Sie den Stream, den Sie erstellt haben, um Daten aus einer Oracle-Quelldatenbank in einen Ordner in einem Cloud Storage-Ziel-Bucket zu übertragen. Dazu zählen:

  • Allgemeine und detaillierte Informationen zum Stream abrufen
  • Stream ändern
  • Fetch Error API verwenden, um mit dem Stream verknüpfte Fehler zu erkennen
  • Stream starten, anhalten und fortsetzen
  1. Ruft allgemeine Informationen zum Stream ab. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  2. Prüfen Sie, ob Sie allgemeine Informationen zu diesem Stream sehen.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
         }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "gcsDestinationConfig": {
            "gcsFileFormat": "AVRO",
            "fileRotationMb": 5,
            "fileRotationInterval": "15s"
          }
        },
        "state": "CREATED"
      }
    
  3. Rufen Sie detaillierte Informationen zu diesem Stream ab. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[STREAM_OPERATION_ID]
    
  4. Prüfen Sie, ob Sie detaillierte Informationen zum Stream sehen.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].Stream",
        "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "sourceConfig": {
          "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
          "oracleSourceConfig": {
            "allowlist": {
              "oracleSchemas": [
                {
                  "schemaName": "ROOT"
                }
              ]
            },
            "rejectlist": {}
          }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "gcsDestinationConfig": {
            "gcsFileFormat": "AVRO",
            "fileRotationMb": 5,
            "fileRotationInterval": "15s"
          }
        },
        "state": "CREATED"
      }
    }
    
  5. Ändern Sie diesen Stream. Legen Sie dazu zuerst die Variable UPDATE fest. Diese Variable enthält die Werte des Streams, den Sie ändern möchten. Ändern Sie für diese Anleitung die maximale Größe der Dateien, die aus der Quelldatenbank in einen Ordner im Cloud Storage-Ziel-Bucket übertragen werden können (von 5 MB bis 100 MByte).

    Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, um die Variable zu setzen:

    UPDATE="{\"destination_config\":{\"gcs_destination_config\":{\"file_rotation_mb\":100}}}"
    
  6. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]/?update_mask=destination_config.gcs_destination_config.file_rotation_mb
    
  7. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  8. Prüfen Sie, ob der Stream geändert wurde. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[STREAM_OPERATION_ID]
    
  9. Prüfen Sie, ob der Wert des Parameters fileRotationMb für das Cloud Storage-Verbindungsprofil jetzt 100 ist.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].Stream",
        "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "sourceConfig": {
          "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
          "oracleSourceConfig": {
            "allowlist": {
              "oracleSchemas": [
                {
                  "schemaName": "ROOT"
                }
              ]
            },
            "rejectlist": {}
          }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "gcsDestinationConfig": {
            "gcsFileFormat": "AVRO",
            "fileRotationMb": 100,
            "fileRotationInterval": "15s"
          }
        },
        "state": "CREATED"
      }
    }
    
  10. Rufen Sie mit der Fetch Error API alle mit dem Stream verknüpften Fehler ab.

    1. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

      curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:fetchErrors
        

    2. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

        {
          "name": "[PROJECT_PATH]/operations/operation-[FETCH_ERRORS_OPERATION_ID]",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
            "createTime": "[DATE_AND_TIME_STAMP]",
            "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "[DATASTREAM_VERSION]"
          },
          "done": false
        }
        

    3. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/operation-[FETCH_ERRORS_OPERATION_ID]
        

    4. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

        {
          "name": "[PROJECT_PATH]/operations/operation-[FETCH_ERRORS_OPERATION_ID]",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
            "createTime": "[DATE_AND_TIME_STAMP]",
            "endTime": "[DATE_AND_TIME_STAMP]",
            "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "[DATASTREAM_VERSION]"
          },
          "done": true,
          "response": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].FetchErrorsResponse"
          }
        }
        

  11. Starten Sie den Stream. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:start
    
  12. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  13. Rufen Sie nach einigen Sekunden Informationen zum Stream ab, um zu bestätigen, dass er gestartet wurde.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  14. Prüfen Sie, ob sich der Status des Streams von CREATED in RUNNING geändert hat.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcsDestinationConfig": {
          "gcsFileFormat": "AVRO",
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
        }
      },
      "state": "RUNNING"
    }
    
  15. Pausieren Sie den Stream. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:pause
    
  16. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  17. Rufen Sie Informationen zum Stream ab, um zu bestätigen, dass er pausiert ist.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  18. Prüfen Sie, ob sich der Status des Streams von RUNNING in PAUSED geändert hat.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcsDestinationConfig": {
          "gcsFileFormat": "AVRO",
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
        }
      },
      "state": "PAUSED"
    }
    
  19. Setzen Sie den pausierten Stream fort. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:resume
    
  20. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  21. Rufen Sie Informationen über den Stream ab, um zu bestätigen, dass er noch einmal ausgeführt wird.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  22. Prüfen Sie, ob sich der Status des Streams von PAUSED wieder in RUNNING geändert hat.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcsDestinationConfig": {
          "gcsFileFormat": "AVRO",
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
        }
      },
      "state": "RUNNING"
    }
    

Nachdem Sie einen Stream erstellt und verwaltet und bestätigt haben, dass mit dem Stream keine Fehler verbunden sind dass und der Status RUNNING lautet, können Sie überprüfen, ob er Daten aus der Quelldatenbank in einen Ordner im Cloud Storage-Ziel-Bucket übertragen kann.

Stream prüfen

In diesem Abschnitt bestätigen Sie, dass Datastream:

  • Die mit dem ROOT-Schema Ihrer Oracle-Quelldatenbank verknüpften Daten und Tabellen in den Ordner /root/tutorial im Cloud Storage-Ziel-Bucket überträgt.
  • Die Daten in das Avro-Dateiformat übersetzt.
  1. Rufen Sie in Cloud Storage die Seite Storage-Browser auf.

    Zur Seite „Storage-Browser“

  2. Klicken Sie auf den Link, der den Bucket enthält.

  3. Wenn der Tab OBJEKTE nicht aktiv ist, klicken Sie darauf.

  4. Klicken Sie auf den Ordner root und dann auf den Ordner tutorial.

  5. Prüfen Sie, ob Sie Ordner sehen, die Tabellen des ROOT-Schemas Ihrer Oracle-Quelldatenbank darstellen.

  6. Klicken Sie auf einen der Tabellenordner und schlüsseln Sie die Daten auf, bis Sie Daten sehen, die mit der Tabelle verknüpft sind.

  7. Klicken Sie auf eine Datei, die die Daten darstellt, und dann auf HERUNTERLADEN.

  8. Öffnen Sie diese Datei in einem Avro-Tool (z. B. Avro Viewer), um zu prüfen, ob der Inhalt lesbar ist. Damit wird bestätigt, dass DataStream die Daten auch in das Avro-Dateiformat übersetzt hat.

Bereinigen

Nachdem Sie diese Anleitung abgeschlossen haben, können Sie die in Datastream erstellten Ressourcen bereinigen, damit sie keine kostenpflichtigen Kontingente verbrauchen. In den folgenden Abschnitten wird erläutert, wie Sie diese Ressourcen löschen oder deaktivieren.

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.

So löschen Sie das Projekt:

  1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Cloud Storage-Ziel-Bucket löschen

  1. Klicken Sie in der linken Navigationsleiste von Cloud Storage auf das Element Browser.

  2. Klicken Sie auf das Kästchen links neben dem Bucket und dann auf LÖSCHEN.

  3. Geben Sie im Fenster "Bucket löschen?" den Namen Ihres Buckets in das Textfeld ein und klicken Sie auf BESTÄTIGEN.

Stream löschen

  1. Prüfen Sie, ob Ihre Google Cloud Shell-Anwendung aktiv ist.

  2. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  3. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  4. Prüfen Sie, ob der Stream gelöscht wurde. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams
    
  5. Prüfen Sie, ob ein {}-Nullwert zurückgegeben wird. Dies bedeutet, dass im Datastream keine Streams mehr vorhanden sind und dass der von Ihnen erstellte Stream gelöscht wurde.

Verbindungsprofile löschen

  1. Löschen Sie das Verbindungsprofil zur Oracle-Quelldatenbank. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]
    
  2. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

    {
      "name": "[PROJECT_PATH]/operations/operation-[SOURCE_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  3. Löschen Sie das Verbindungsprofil zum Ziel-Bucket in Cloud Storage. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]
    
  4. Prüfen Sie, ob die folgenden Codezeilen angezeigt werden:

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  5. Prüfen Sie, ob beide Verbindungsprofile gelöscht wurden. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles
    
  6. Prüfen Sie, ob ein {}-Nullwert zurückgegeben wird. Dies bedeutet, dass in Datastream keine Verbindungsprofile mehr vorhanden sind und die von Ihnen erstellten Profile gelöscht werden.

Nächste Schritte