接続プロファイルの管理

概要

このセクションでは、Datastream API を使用して以下を行う方法を説明します。

  • 移行元 Oracle データベース、移行元 MySQL データベース、移行元 PostgreSQL データベース、BigQuery 移行先、Cloud Storage 移行先の接続プロファイルを作成する
  • 接続プロファイルに関する情報を取得、更新、削除する
  • 移行元または移行先の接続プロファイルの構造を確認する

Datastream API を使用する方法は 2 つあります。REST API 呼び出しを行うか、Google Cloud CLI(CLI)を使用できます。

gcloud を使用して Datastream 接続プロファイルを管理する大まかな情報は、Google Cloud SDK のドキュメントをクリックしてください。

移行元 Oracle データベースの接続プロファイルを作成する

次のコードは、Oracle データベースの接続プロファイルの作成リクエストを示し、接続方法に静的 IP アドレス(IP 許可リスト)の使用を指定しています。

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_ID_ADDRESS",
    "port": PORT,
    "username": "USERNAME",
    "password": "PASSWORD",
    "databaseService": "DATABASE"
  },
  "staticServiceIpConnectivity": {}
}

次に例を示します。

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": {}
}

次のコードは、Oracle データベースの接続プロファイルの作成リクエストを示し、接続方法にプライベート接続(VPC ピアリング)を指定しています。

この方法を使用すると、Datastream と移行元のデータベース(Google Cloud 内部、または VPN や Interconnect を介して接続された外部ソース)との間に安全な接続を確立できます。この通信は VPC ピアリング接続を介して行われます。

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "[connection-profile-display-name]",
  "oracleProfile": {
    "hostname": "HOST_ID_ADDRESS",
    "port": PORT,
    "username": "USERNAME",
    "password": "PASSWORD",
    "databaseService": "DATABASE"
  },
  "privateConnectivity": {
    "privateConnection": "https://datastream.googleapis.com/v1/projects/
    PROJECT_ID/locations/LOCATION/privateConnections/
    [private-connectivity-configuration-id]"
  }
}

次に例を示します。

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": {
      "privateConnection": "https://datastream.googleapis.com/v1/projects/
       myProjectId/locations/us-central1/privateConnections/myPrivateConnection"
  }
}

接続プロファイルが作成されたら、connectionProfiles/get メソッドを呼び出してプロファイルに関する情報を表示できます。出力は次のように表示されます。

{
  "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": {
    "privateConnection": "https://datastream.googleapis.com/v1/projects/
     myProjectId/locations/us-central1/privateConnections/myPrivateConnection"
  }
}

gcloud

gcloud を使用して移行元 Oracle データベースの接続プロファイルを作成する方法については、こちらをクリックしてください。

移行元 MySQL データベースの接続プロファイルを作成する

次のコードは、MySQL データベースの接続プロファイルの作成リクエストを示し、接続方法に IP アドレス(IP 許可リスト)の使用を指定しています。

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_ID_ADDRESS",
    "port": PORT,
    "username": "USERNAME",
    "password": "PASSWORD"
  },
  "staticServiceIpConnectivity": {}
}

次に例を示します。

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": {}
}

gcloud

gcloud を使用して移行元 MySQL データベースの接続プロファイルを作成する方法については、こちらをクリックしてください。

移行元 PostgreSQL データベースの接続プロファイルを作成する

次のコードは、PostgreSQL データベースの接続プロファイルの作成リクエストを示しています。

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "[connection-profile-display-name]",
  "postgresqlProfile": {
    "hostname": "HOST_ID_ADDRESS",
    "port": PORT,
    "username": "USERNAME",
    "password": "PASSWORD",
    "database": "DATABASE"
  },
  "staticServiceIpConnectivity": {}
}

次に例を示します。

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

gcloud

gcloud を使用して接続プロファイルを作成する方法の詳細については、こちらをクリックしてください。

移行元 SQL Server データベースの接続プロファイルを作成する

次のコードは、SQL Server データベースの接続プロファイルの作成リクエストを示し、接続方法に IP アドレス(IP 許可リスト)の使用を指定しています。

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "[connection-profile-display-name]",
  "sqlserverProfile": {
    "hostname": "HOST_ID_ADDRESS",
    "port": PORT,
    "username": "USERNAME",
    "password": "PASSWORD",
    "database": "DATABASE"
  },
  "staticServiceIpConnectivity": {}
}

次に例を示します。

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

Google Cloud CLI

gcloud を使用して接続プロファイルを作成する方法の詳細については、Google Cloud SDK のドキュメントをご覧ください。

BigQuery の移行先の接続プロファイルを作成する

次のコードは、BigQuery の移行先の接続プロファイルを作成するリクエストを示しています。

REST

POST https://datastream.googleapis.com/v1/projects/[project-id/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "connection-profile-display-name",
  "bigqueryProfile":  {}
}

次に例を示します。

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=myBigqueryCP
{
  "displayName": "my BigQuery destination",
  "bigqueryProfile": {}
}

gcloud

gcloud を使用して接続プロファイルを作成する方法の詳細については、こちらをクリックしてください。

Cloud Storage の移行先の接続プロファイルを作成する

次のコードは、Cloud Storage バケットの接続プロファイルを作成するリクエストを示します。Cloud Storage は Datastream と同じネットワーク内にあるため、特別な接続は必要ありません。したがって、接続方法は指定されません。

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"
  }
}

次に例を示します。

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"
  }
}

gcloud

gcloud を使用して Cloud Storage の接続プロファイルを作成する方法については、Cloud SDK のドキュメントをご覧ください。

接続プロファイルに関する情報を取得する

次のコードは、作成された移行元 Oracle データベース、移行元 MySQL データベース、BigQuery の移行先、または Cloud Storage の移行先の接続プロファイルに関する情報を取得するリクエストを示します。

REST

GET https://datastream.googleapis.com/v1/projects/project-id/locations/
LOCATION/connectionProfiles/CONNECTION_PROFILE_ID

次に例を示します。

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

gcloud

gcloud を使用して接続プロファイルに関する情報を取得する方法については、こちらをクリックしてください。

接続プロファイルの一覧表示

次のコードは、すべての接続プロファイルに関する情報を取得するリクエストを示しています。

REST

GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles

gcloud

gcloud を使用してすべての接続プロファイルに関する情報を取得する方法については、こちらをクリックしてください。

接続プロファイルを更新する

次のコードは、移行元データベースの既存の接続プロファイルのユーザー名とパスワードを変更するリクエストを示しています。

リクエストに updateMask パラメータを使用することで、指定するフィールドのみがリクエストの本文に含まれます(この例では、username および passwordフィールドがそれぞれ oracle_profile.username および 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"
  }
}

次に例を示します。

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"
  }
}

次のコードは、接続プロファイルに割り当てられているプライベート接続構成の変更リクエストを示しています。この接続プロファイルでは、VPC ピアリング ネットワーク接続方法を使用します。

この例では、new_private_connection 構成を接続プロファイルに割り当てます。

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

次に例を示します。

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

gcloud

gcloud を使用して接続プロファイルを更新する方法の詳細については、こちらをクリックしてください。

接続プロファイルの削除

次のコードは、接続プロファイルの削除リクエストを示しています。接続プロファイルが削除されると、それを使用しているストリームはすべて失敗します。

REST

DELETE https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles/CONNECTION_PROFILE_ID

次に例を示します。

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

gcloud

gcloud を使用して接続プロファイルを削除する方法の詳細についてはこちらをクリックしてください。

ソース データベースの構造を確認する

discoverConnectionProfile API を使用して、ソースからエンティティのリスト(スキーマやテーブルなど)とエンティティに関連付けられているメタデータを取得します。

API は、既存の接続プロファイルの ID または完全な接続プロファイルのオブジェクト定義のいずれかをパラメータとして受け取ることができます。この関数は、単一のレベル(データベース内のすべてのスキーマ、スキーマ内のすべてのテーブルなど)を返すか、再帰的にすべてのエンティティ(スキーマ、テーブル、列など)を返すことができます。

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles:discoverConnectionProfile?CONNECTION_PROFILE_ID

次に例を示します。

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

gcloud

gcloud を使用してソース データベースの構造を確認する方法については、こちらをクリックしてください。