DataStream APIs verwenden

Für Unternehmen mit vielen isolierten Datenquellen kann der Zugriff auf Daten im gesamten Unternehmen, insbesondere in Echtzeit, schwierig sein. Dies führt zu einem eingeschränkten und langsamen Datenzugriff, der die Fähigkeit des Unternehmens zur Selbstbeobachtung verhindert.

Datastream bietet echtzeitnahen Zugriff auf Daten aus einer Vielzahl von lokalen und cloudbasierten Datenquellen, um den Zugriff auf Unternehmensdaten zu ermöglichen. Datastream bietet eine einfache Einrichtung und eine einheitliche Nutzungs-API, die den Zugriff auf die aktuellsten Daten im gesamten Unternehmen demokratisiert und integrierte Szenarien in Echtzeit ermöglicht.

Ein solches Szenario besteht darin, Daten aus einer Quelldatenbank in einen cloudbasierten Speicherdienst oder eine Nachrichtenwarteschlange zu übertragen und in ein Formular umzuwandeln, das von anderen Anwendungen und Diensten, die mit diesem Speicherdienst oder dieser Nachrichtenwarteschlange kommunizieren, lesbar ist.

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. Durch diese Übersetzung können Sie Daten aus verschiedenen Datenquellen einheitlich lesen.

Ziele

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

  • Umgebungsvariablen festlegen 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:

  • 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. Aktivieren Sie die Datastream API.

    API aktivieren

  7. Achten Sie darauf, dass Ihrem Nutzerkonto die Rolle „Datastream-Administrator“ zugewiesen ist.

    Zur IAM-Seite

  8. Sorgen Sie dafür, dass Sie eine Quelldatenbank haben, auf die Datastream zugreifen kann. In dieser Anleitung wird eine Oracle-Datenbank als Quelle verwendet.
  9. Konfigurieren Sie Ihre Quelldatenbank so, dass eingehende Verbindungen von öffentlichen Datastream-IP-Adressen zugelassen werden. Informationen zum Zugriff auf die Standorte aller Datastream-Regionen und die zugehörigen öffentlichen IP-Adressen finden Sie unter IP-Zulassungslisten und Regionen.
  10. Prüfen Sie, ob Sie einen Cloud Storage-Ziel-Bucket konfiguriert haben, auf den Datastream mithilfe der IP-Zulassungsliste, des Weiterleitungs-SSH-Tunnels oder der VPC-Peering-Netzwerkverbindungsmethode zugreifen kann.
  11. 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.
  12. Laden Sie Cloud Shell herunter und installieren Sie es. Diese Clientanwendung bietet Ihnen eine Befehlszeile, mit der Sie auf Ihre Cloudressourcen (einschließlich Datastream) zugreifen können.
  13. 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.

Umgebungsvariablen festlegen

Geben Sie für dieses Verfahren die folgenden Variablen an:

  • $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 Cloud Shell zum Ausführen von Aufgaben in Datastream über REST APIs verwendet.
  1. Starten Sie Ihre Cloud Shell-Anwendung.

  2. Geben Sie nach der Authentifizierung Ihrer Anwendung mit Ihrem Google-Konto 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 URL in den Browser.

  5. Authentifizieren Sie sich mit Ihrem Google-Konto beim Google Cloud SDK. Auf der Seite Anmelden 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 Cloud Shell-Anwendung ein und drücken Sie Enter.

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

  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 hat das Format [USERNAME]@cloudshell:~ ([YOUR_PROJECT_NAME])$.

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

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

    • echo $PROJECT
    • echo $TOKEN

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.

Wenn Sie diese Verbindungsprofile erstellen, erstellen Sie Einträge, die Informationen über die Quelldatenbank und den Cloud Storage-Ziel-Bucket enthalten. 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.
  • Informationen zu einem Verbindungsprofil abrufen.
  • Verbindungsprofil ändern.
  • Discover API-Aufruf für das Oracle-Verbindungsprofil ausführen. Mit diesem Aufruf können Sie in der Datenbank suchen, um die damit verknüpften 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 möglicherweise nicht alle Objekte aus der Datenbank abrufen, sondern nur einen Teil 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 Verfahren erstellen Sie zwei Verbindungsprofile: eines für eine Oracle-Quelldatenbank und ein weiteres für einen Ziel-Bucket in Cloud Storage.

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

    ORACLE="{\"displayName\":\"[DISPLAY_NAME]\",\"oracle_profile\":{\"hostname\":\"[HOSTNAME],\"username\":\"[USERNAME]\",\"password\":\"[PASSWORD]\",\"database_service\":\"[DATABASE_SERVICE]\",\"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).
    [PASSWORD]Das Passwort des Kontos für die Quelldatenbank.
    [DATABASE_SERVICE]Der Dienst, der sicherstellt, dass die Quelldatenbank geschützt und überwacht wird. Bei Oracle-Datenbanken ist der Datenbankdienst normalerweise ORCL.
    [PORT_NUMBER]Die Portnummer, die für die Quelldatenbank reserviert ist. Bei einer Oracle-Datenbank ist die Portnummer normalerweise 1521.
  2. Geben Sie an der Eingabeaufforderung den Befehl echo $ORACLE | jq ein, um das von Ihnen erstellte Quellverbindungsprofil als leicht lesbaren Text anzuzeigen.

    {
      "displayName": "[DISPLAY_NAME]",
      "oracle_profile": {
        "hostname": "[HOSTNAME]",
        "username": "[USERNAME]",
        "password": "[PASSWORD]",
        "database_service": "[DATABASE_SERVICE]",
        "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://datastream.googleapis.com/[DATASTREAM_API_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_API_VERSION]Die aktuelle Version der Datastream API (z. B. v1).
    [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_API_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_API_VERSION]"
      },
      "done": false
    }
    
  5. Erstellen Sie ein neues Verbindungsprofil zu einem Ziel-Bucket in Cloud Storage. 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://datastream.googleapis.com/[DATASTREAM_API_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_API_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_API_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://datastream.googleapis.com/[DATASTREAM_API_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 Verfahren verwalten Sie die Verbindungsprofile, die Sie für eine Oracle-Quelldatenbank und einen Ziel-Bucket in Cloud Storage erstellt haben. Dazu zählen:

  • Informationen zum Cloud Storage-Zielverbindungsprofil abrufen.
  • Verbindungsprofil ändern. In dieser Anleitung ändern Sie den Ordner des Cloud Storage-Ziel-Buckets in /root/tutorial. Datastream überträgt Daten aus der Quelldatenbank in diesen Ordner.
  • Discover API-Aufruf für das Oracle-Verbindungsprofil ausführen.
  1. Rufen Sie Informationen zum Cloud Storage-Zielprofil ab. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

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

    {
      "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. Ä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\"}}"
  4. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]?update_mask=gcsProfile.rootPath
    
  5. 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_API_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_API_VERSION]"
      },
      "done": false
    }
    
  6. 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://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]
    
  7. Prüfen Sie, ob der Ordner des Ziel-Buckets des Cloud Storage-Verbindungsprofils jetzt /root/tutorial ist.

    {
      "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": {}
    }
    
  8. Ermitteln Sie mit der Datastream Discover API die Schemas und Tabellen der Oracle-Quelldatenbank. Datastream bietet über das Quellverbindungsprofil Zugriff auf diese Datenbank.

    1. Suchen Sie 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://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/connectionProfiles:discover
        

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

    3. Rufen Sie 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://datastream.googleapis.com/[DATASTREAM_API_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:

  • Validieren eines Streams, um zu gewährleisten, dass der Stream erfolgreich ausgeführt wird und alle Validierungsprüfungen erfolgreich sind. Folgendes wird geprüft:
    • Ob die Quelle ordnungsgemäß konfiguriert ist, damit Datastream Daten von ihr streamen kann.
    • Ob er sowohl mit der Quelle als auch mit dem Ziel verbunden werden kann.
    • Die End-to-End-Konfiguration des Streams.
  • Erstellen des Streams mit den folgenden Listen:
    • Einer 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.
  • Informationen zum Stream abrufen.
  • Stream ändern.
  • Stream starten, damit Datastream Daten, Schemas und Tabellen aus der Quelldatenbank in einen Ordner im Cloud Storage-Ziel-Bucket übertragen kann.
  • Fetch Errors API verwenden, um mit dem Stream verknüpfte Fehler zu erkennen.
  • 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 Verfahren erstellen Sie einen Stream aus der Oracle-Quelldatenbank in einem 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},\"avro_file_format\":{}},\"backfill_all\":{}}"
    
  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
          },
          "avro_file_format": {}
        }
      },
      "backfill_all": {}
    }
    

    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 dieser Anleitung bedeutet der Wert {}, dass keine Tabellen und Daten aus der Quelldatenbank daran gehindert werden, in den Ziel-Bucket übertragen zu werden.
    file_rotation_mbDie Größe (in MB) von Dateien, die Daten enthalten, die aus der Quelldatenbank in einen Ordner im Cloud Storage-Ziel-Bucket übertragen werden. Für diese Anleitung werden Daten, die aus der Quelldatenbank abgerufen werden, in 5-MB-Dateien geschrieben. Wenn Daten diese Größe überschreiten, werden die sie in mehrere 5-MB-Dateien segmentiert.
    file_rotation_intervalDie Anzahl der Sekunden, die verstreichen, bevor Datastream eine vorhandene Datei in einem Ordner des Cloud Storage-Ziel-Buckets schließt und eine andere Datei öffnet, um Daten aus der Quelldatenbank zu übertragen. In dieser Anleitung ist das Dateirotationsintervall auf 15 Sekunden festgelegt.
    avro_file_format

    Das Format der Dateien, die Datastream aus der Quelldatenbank in einen Ordner des Cloud Storage-Ziel-Buckets überträgt. In dieser Anleitung ist Avro das Dateiformat.

    backfill_all

    Dieser Parameter ist dem Verlaufsdaten-Backfill zugeordnet. Wenn Sie diesen Parameter auf ein leeres Wörterbuch ({}) setzen, führt Datastream einen Backfill für Folgendes aus:

    • Verlaufsdaten, zusätzlich zu laufenden Änderungen an den Daten, von der Quelldatenbank in das Ziel
    • Schemas und Tabellen von der Quelle in das Ziel
  5. Validieren Sie den Stream, um sicherzustellen, dass er erfolgreich ausgeführt wird und alle Validierungsprüfungen erfolgreich sind. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

    curl -X POST -d $STREAM -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" "https://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams?stream_id=[STREAM_ID]&validate_only=true"
    
  6. Kontrollieren Sie, dass die Codezeile {} angezeigt wird. Dies bedeutet, dass der Stream alle Validierungsprüfungen bestanden hat und keine Fehler mit dem Stream verknüpft sind.

  7. Reichen Sie den Stream ein, 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://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams?stream_id=[STREAM_ID]
    
  8. 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_API_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_API_VERSION]"
      },
      "done": false
    }
    
  9. 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://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams
    
  10. 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": {
              "fileRotationMb": 5,
              "fileRotationInterval": "15s"
              "avroFileFormat": {}
            }
          },
          "state": "CREATED",
          "backfillAll": {}
        }
      ]
    }
    

Stream verwalten

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

  • Informationen zum Stream abrufen.
  • Stream ändern.
  • Stream starten.
  • Fetch Errors API verwenden, um mit dem Stream verknüpfte Fehler zu erkennen.
  • Stream pausieren und fortsetzen.
  1. Rufen Sie Informationen zum Stream ab. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

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

    {
      "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": {
            "fileRotationMb": 5,
            "fileRotationInterval": "15s"
            "avroFileFormat": {}
          }
        },
        "state": "CREATED",
        "backfillAll": {}
      }
    
  3. Ä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 Größe von Dateien (in MB) mit Daten, die aus der Quelldatenbank in einen Ordner im Cloud Storage-Ziel-Bucket übertragen werden (von 5 MB in 100 MB). Aus der Quelldatenbank abgerufene Daten werden jetzt in 100-MB-Dateien geschrieben. Wenn Daten diese Größe überschreiten, werden die Daten in mehrere 100-MB-Dateien segmentiert.

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

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

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]/?update_mask=destination_config.gcs_destination_config.file_rotation_mb
    
  5. 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_API_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_API_VERSION]"
      },
      "done": false
    }
    
  6. 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://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  7. Prüfen Sie, ob der Wert des Parameters fileRotationMb für das Cloud Storage-Verbindungsprofil jetzt 100 ist.

    {
      "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": {
            "fileRotationMb": 100,
            "fileRotationInterval": "15s"
            "avroFileFormat": {}
          }
        },
        "state": "CREATED",
        "backfillAll": {}
      }
    
  8. Starten Sie den Stream. Anleitung:

    1. Ändern Sie die Variable UPDATE. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

      UPDATE="{\"state\":\"RUNNING\"}"
      
    2. Geben Sie dann den folgenden Befehl ein:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]?updateMask=state
      
  9. 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_API_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_API_VERSION]"
      },
      "done": false
    }
    
  10. Rufen Sie nach einigen Minuten Informationen zum Stream ab, um zu bestätigen, dass er gestartet wurde.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  11. 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": {
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
          "avroFileFormat": {}
        }
      },
      "state": "RUNNING",
      "backfillAll": {}
    }
    
  12. Rufen Sie mit der Fetch Errors 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://datastream.googleapis.com/[DATASTREAM_API_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_API_VERSION].OperationMetadata",
            "createTime": "[DATE_AND_TIME_STAMP]",
            "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "[DATASTREAM_API_VERSION]"
          },
          "done": false
        }
        

    3. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/[DATASTREAM_API_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_API_VERSION].OperationMetadata",
            "createTime": "[DATE_AND_TIME_STAMP]",
            "endTime": "[DATE_AND_TIME_STAMP]",
            "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "[DATASTREAM_API_VERSION]"
          },
          "done": true,
          "response": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_API_VERSION].FetchErrorsResponse"
          }
        }
        

  13. Pausieren Sie den Stream. Anleitung:

    1. Ändern Sie die Variable UPDATE. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

      UPDATE="{\"state\":\"PAUSED\"}"
      
    2. Geben Sie dann den folgenden Befehl ein:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]?updateMask=state
      
  14. 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_API_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_API_VERSION]"
      },
      "done": false
    }
    
  15. 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://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  16. 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": {
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
          "avroFileFormat": {}
        }
      },
      "state": "PAUSED",
      "backfillAll": {}
    }
    
  17. Setzen Sie den pausierten Stream fort. Anleitung:

    1. Ändern Sie die Variable UPDATE. Geben Sie bei der Eingabeaufforderung folgenden Befehl ein:

      UPDATE="{\"state\":\"RUNNING\"}"
      
    2. Geben Sie dann den folgenden Befehl ein:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]?updateMask=state
      
  18. 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_API_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_API_VERSION]"
      },
      "done": false
    }
    
  19. Rufen Sie nach einigen Sekunden Informationen zum Stream ab, um zu bestätigen, dass er wieder ausgeführt wird.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/[DATASTREAM_API_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  20. Prüfen Sie, ob sich der Status des Streams von PAUSED zurück 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": {
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
          "avroFileFormat": {}
        }
      },
      "state": "RUNNING",
      "backfillAll": {}
    }
    

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 Verfahren bestätigen Sie, dass Datastream:

  • Die Daten aus allen Tabellen, die mit dem Schema ROOT Ihrer Oracle-Quelldatenbank verknüpft sind, 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 die Ordner angezeigt werden, die Tabellen des Schemas ROOT Ihrer Oracle-Quelldatenbank darstellen.

  6. Klicken Sie auf einen der Tabellenordner und suchen Sie die Daten, 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 sicherzustellen, dass der Inhalt lesbar ist. Damit wird bestätigt, dass Datastream die Daten 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 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://datastream.googleapis.com/[DATASTREAM_API_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_API_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_API_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://datastream.googleapis.com/[DATASTREAM_API_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://datastream.googleapis.com/[DATASTREAM_API_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_API_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_API_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://datastream.googleapis.com/[DATASTREAM_API_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_API_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_API_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://datastream.googleapis.com/[DATASTREAM_API_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 dass die von Ihnen erstellten Profile gelöscht wurden.

Nächste Schritte