Verbindungsprofile verwalten

Übersicht

In diesem Abschnitt erfahren Sie, wie Sie die Datastream API für folgende Aufgaben verwenden:

  • Verbindungsprofile für eine Oracle-Quelldatenbank, eine MySQL-Quelldatenbank und einen Cloud Storage-Ziel-Bucket erstellen
  • Informationen zu Verbindungsprofilen abrufen, aktualisieren und löschen
  • Struktur der Quell- oder Zielverbindungsprofile ermitteln

Sie können die Datastream API auf zwei Arten verwenden. Sie können REST API-Aufrufe ausführen oder das gcloud-Befehlszeilentool (CLI) verwenden.

Allgemeine Informationen zur Verwendung von gcloud für die Verwaltung von Datastream-Verbindungsprofilen finden Sie hier.

Erstellen Sie ein Verbindungsprofil für eine Oracle-Quelldatenbank.

Der folgende Code zeigt eine Anfrage zum Erstellen eines Verbindungsprofils für eine Oracle-Datenbank und gibt als Verbindungsmethode die Verwendung statischer IP-Adressen (IP-Zulassungsliste) an.

REST

POST https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles?connectionProfileId=[connection-profile-id]
{
  "displayName": "[connection-profile-display-name]",
  "oracleProfile": {
    "hostname": "[host-ip-address]",
    "port": [port],
    "username": "[username]",
    "password": "[password]",
    "databaseService": "[database]"
  },
  "staticServiceIpConnectivity": {}
}

Beispiel:

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=myOracleCP
{
  "displayName": "my Oracle database",
  "oracleProfile": {
    "hostname": "1.2.3.4",
    "port": 1521,
    "username": "admin",
    "password": "12345"
    "databaseService": "ORCL",
  },
  "staticServiceIpConnectivity": {}
}

Der folgende Code zeigt eine Anfrage zum Erstellen eines Verbindungsprofils für eine Oracle-Datenbank und gibt die Verbindungsmethode als private Verbindung (VPC-Peering) an.

Diese Methode stellt eine sichere Verbindung zwischen Datastream und der Quelldatenbank her (intern in Google Cloud oder mit externen Quellen, die über VPN oder Interconnect verbunden sind). Diese Kommunikation erfolgt über eine VPC-Peering-Verbindung.

POST https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles?connectionProfileId=[connection-profile-id]
{
  "displayName": "[connection-profile-display-name]",
  "oracleProfile": {
    "hostname": "[host-ip-address]",
    "port": [port],
    "username": "[username]",
    "password": "[password]",
    "databaseService": "[database]"
  },
  "privateConnectivity": {
    "privateConnectionName": "https://datastream.googleapis.com/v1/projects/
    [project-id]/locations/[location]/privateConnections/
    [private-connectivity-configuration-id]"
  }
}

Beispiel:

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=myOracleVPCPeeringCP
{
  "displayName": "my Oracle database",
  "oracleProfile": {
    "hostname": "1.2.3.4",
    "port": 1521,
    "username": "admin",
    "password": "12345"
    "databaseService": "ORCL",
  },
    "privateConnectivity": {
      "privateConnectionName": "https://datastream.googleapis.com/v1/projects/
       myProjectId/locations/us-central1/privateConnections/myPrivateConnection"
  }
}

Nachdem das Verbindungsprofil erstellt wurde, können Sie mit der Methode connectionProfiles/get Informationen dazu aufrufen. Ihre Ausgabe sieht in etwa so aus:

{
  "name": "projects/projectId/location/us-central1/connectionProfiles/myOracleVPCPeeringCP",
  "createTime": "2019-12-22T16:17:37.159786963Z",
  "updateTime": "2019-12-22T16:17:37.159786963Z",
  "displayName": "my Oracle database",
  "oracleProfile": {
    "hostname": "1.2.3.4",
    "port": 1521,
    "databaseService": "ORCL",
    "username": "admin"
  },
  "privateConnectivity": {
    "privateConnectionName": "https://datastream.googleapis.com/v1/projects/
     myProjectId/locations/us-central1/privateConnections/myPrivateConnection"
  }
}

Verbindungsprofil für eine MySQL-Quelldatenbank erstellen

Der folgende Code zeigt eine Anfrage zur Erstellung eines Verbindungsprofils für eine MySQL-Datenbank und gibt als Verbindungsmethode die Verwendung statischer IP-Adressen (IP-Zulassungsliste) an.

REST

POST https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles?connectionProfileId=[connection-profile-id]
{
  "displayName": "[connection-profile-display-name]",
  "mysqlProfile": {
    "hostname": "[host-ip-address]",
    "port": [port],
    "username": "[username]",
    "password": "[password]",
  },
  "staticServiceIpConnectivity": {}
}

Beispiel:

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=mysql-cp
{
  "displayName": "my MySQL database",
  "mysqlProfile": {
    "hostname": "1.2.3.4",
    "port": 3306,
    "username": "root",
    "password": "12345"
  },
  "staticServiceIpConnectivity": {}
}

Verbindungsprofil für einen Cloud Storage-Ziel-Bucket erstellen

Der folgende Code zeigt eine Anfrage zum Erstellen eines Verbindungsprofils für einen Cloud Storage-Bucket. Da sich Cloud Storage im selben Netzwerk wie Datastream befindet, ist keine besondere Verbindung erforderlich. Daher wird keine Verbindungsmethode angegeben.

REST

POST https://datastream.googleapis.com/v1/projects/[project-id/locations/
[location]/connectionProfiles?connectionProfileId=[connection-profile-id]
{
  "displayName": "connection-profile-display-name",
  "gcsProfile": {
    "bucketName": "bucket-name",
    "rootPath": "prefix-inside-bucket"
  }
}

Beispiel:

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=myGcsCP
{
  "displayName": "my Cloud Storage bucket",
  "gcsProfile": {
    "bucketName": "myBucket",
    "rootPath": "prefix-inside-bucket"
  }
}

Informationen zu einem Verbindungsprofil abrufen

Der folgende Code zeigt eine Anfrage zum Abrufen von Informationen zu einem Verbindungsprofil für eine Oracle-Quelldatenbank, eine MySQL-Quelldatenbank oder einen erstellten Cloud Storage-Ziel-Bucket.

REST

GET https://datastream.googleapis.com/v1/projects/project-id/locations/
[location]/connectionProfiles/[connection-profile-id]

Beispiel:

GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles/myOracleCP

gcloud

Weitere Informationen zur Verwendung von gcloud zum Abrufen von Informationen zu einem Verbindungsprofil finden Sie hier.

Verbindungsprofile auflisten

Der folgende Code zeigt eine Anfrage zum Abrufen von Informationen zu allen Verbindungsprofilen.

REST

GET https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles

gcloud

Weitere Informationen zur Verwendung von gcloud zum Abrufen von Informationen zu allen Verbindungsprofilen finden Sie hier.

Verbindungsprofil aktualisieren

Der folgende Code zeigt eine Anfrage zum Ändern des Nutzernamens und des Passworts eines vorhandenen Verbindungsprofils für eine Quelldatenbank.

Bei Verwendung des Parameters updateMask in der Anfrage müssen nur die von Ihnen angegebenen Felder im Text der Anfrage enthalten sein (in diesem Beispiel die Felder username und password, dargestellt durch die Flags oracle_profile.username bzw. oracle_profile.password).

REST

PATCH https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles/[connection-profile-id]?
updateMask=oracle_profile.username,oracle_profile.password
{
  "oracleProfile": {
    "username": "username",
    "password": "password"
  }
}

Beispiel:

PATCH https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles/myOracleCP?
updateMask=oracle_profile.username,oracle_profile.password
{
  "oracleProfile": {
    "username": "username",
    "password": "password"
  }
}

Der folgende Code zeigt eine Anfrage zum Ändern der Konfiguration einer privaten Verbindung, die einem Verbindungsprofil zugewiesen ist. Dieses Verbindungsprofil verwendet die Netzwerkverbindungsmethode "VPC-Peering".

In diesem Beispiel weisen Sie dem Verbindungsprofil die Konfiguration new_private_connection zu.

PATCH -d {\"private_connectivity\":{\"private_connection_name\":\
"https://datastream.googleapis.com/v1/
projects/[project-id]/locations/[location]/privateConnections/
new_private_connection\"}}" -H "Authorization: Bearer $TOKEN" -H
"Content-Type: application/json" https://datastream.googleapis.com/v1/
projects/[project-id]/locations/[location]/connectionProfiles/
[connection-profile-id]?update_mask=private_connectivity.private_connection_name

Beispiel:

PATCH -d {\"private_connectivity\":{\"private_connection_name\":\
"https://datastream.googleapis.com/v1/
projects/myProjectId/locations/us-central1/privateConnections/
new_private_connection\"}}" -H "Authorization: Bearer $TOKEN" -H
"Content-Type: application/json"
https://datastream.googleapis.com/v1/projects/
myProjectId/locations/us-central1/connectionProfiles/
myOracleVPCPeeringCP?update_mask=private_connectivity.private_connection_name

Verbindungsprofil löschen

Der folgende Code zeigt eine Anfrage zum Löschen eines Verbindungsprofils. Nachdem das Verbindungsprofil gelöscht wurde, schlagen alle Streams fehl, von denen es verwendet wird.

REST

DELETE https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles/[connection-profile-id]

Beispiel:

DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles/myOracleCP

gcloud

Weitere Informationen zur Verwendung von gcloud zum Löschen eines Verbindungsprofils finden Sie hier.

Struktur eines Quell- oder Zielverbindungsprofils ermitteln

Mit der discoverConnectionProfile API können Sie die Liste der Entitäten (z. B. Schemas und Tabellen) aus einem Quell- oder Zielverbindungsprofil sowie die mit den Entitäten verknüpften Metadaten abrufen.

Die API kann als Parameter entweder eine ID eines bestehenden Verbindungsprofils oder eine vollständige Objektdefinition des Verbindungsprofils erhalten. Die Funktion kann eine einzelne Ebene (z. B. alle Schemas in einer Datenbank oder alle Tabellen in einem Schema) oder alle Entitäten rekursiv (z. B. Schemas, Tabellen und Spalten) zurückgeben.

REST

POST https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles:discoverConnectionProfile?connection-profile-id

Beispiel:

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles:discoverConnectionProfile?myOracleCP