概要
このセクションでは、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
を使用して移行元データベースの構造を検出する方法の詳細については、こちらをご覧ください。
次のステップ
- Datastream API を使用してストリームを管理する方法を学習します。
- Datastream API を使用してプライベート接続構成を管理する方法について学習します。
- Datastream API の使用方法については、リファレンス ドキュメントをご覧ください。