このページでは、Datastream API を使用して次の操作を行う方法について説明します。
- 移行元 Oracle データベース、移行元 MySQL データベース、移行元 PostgreSQL データベース、移行元 Salesforce 組織、BigQuery 移行先、Cloud Storage 移行先の接続プロファイルを作成する
- 接続プロファイルに関する情報を取得、更新、削除する
- 移行元または移行先の接続プロファイルの構造を確認する
Datastream API を使用する方法は 2 つあります。REST API 呼び出しを行うか、Google Cloud CLI(CLI)を使用できます。
gcloud
を使用して Datastream 接続プロファイルを管理する大まかな情報は、Google Cloud SDK のドキュメントをクリックしてください。
移行元 Oracle データベースの接続プロファイルを作成する
次のコードは、シークレットと IP 許可リスト接続方法を使用して Oracle データベースの接続プロファイルを作成するリクエストを示しています。
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", "databaseService": "DATABASE" }, "secretManagerStoredPassword": "SECRET_MANAGER_RESOURCE", "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", "databaseService": "ORCL", }, "secretManagerStoredPassword": "projects/myProjectId/secrets/mySecret/versions/latest", "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 データベースの接続プロファイルを作成する方法については、Google Cloud SDK のドキュメントをご覧ください。
移行元 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 データベースの接続プロファイルを作成する方法については、Google Cloud SDK のドキュメントをご覧ください。
移行元 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
を使用して接続プロファイルを作成する方法については、Google Cloud SDK のドキュメントをご覧ください。
移行元 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": {} }
gcloud
gcloud
を使用して接続プロファイルを作成する方法については、Google Cloud SDK のドキュメントをご覧ください。
Salesforce ソースの接続プロファイルを作成する
次のコードは、ユーザー名とパスワードを認証方法として使用して、移行元 Salesforce インスタンスの接続プロファイルを作成するリクエストを示しています。
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "CONNECTION_PROFILE_NAME", "salesforceProfile": { "domain": "DOMAIN_NAME", "userCredentials": { "username": "USERNAME", "password": "PASSWORD", "securitytoken": "SECURITY_TOKEN" } } }
次に例を示します。
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=saleforce-cp { "displayName": "My Salesforce connection profile", "salesforceProfile": { "domain": "domain.my.salesforce.com", "userCredentials": { "username": "mySalesforceUser", "password": "12345", "securitytoken": "C08120F510542FFB1C3640F57AF19E2D5D700556A25F7D665C3B428407709D8C" } } }
gcloud
gcloud
を使用して接続プロファイルを作成する方法については、Google Cloud SDK のドキュメントをご覧ください。
次のコードは、認証方法として OAuth 2.0 クライアント認証情報を使用して、移行元 Salesforce インスタンスの接続プロファイルを作成するリクエストを示しています。
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "CONNECTION_PROFILE_NAME", "salesforceProfile": { "domain": "DOMAIN_NAME", "oauth2ClientCredentials": { "clientId": "CLIENT_ID", "clientSecret": "CLIENT_SECRET" } } }
次に例を示します。
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=saleforce-cp { "displayName": "My Salesforce connection profile", "salesforceProfile": { "domain": "domain.my.salesforce.com", "oauth2ClientCredentials": { "clientId": "myClientId", "clientSecret": "projects/myProject/secrets/sf-client-secret" } } }
gcloud
gcloud
を使用して接続プロファイルを作成する方法については、Google Cloud SDK のドキュメントをご覧ください。
MongoDB ソースの接続プロファイルを作成する
次のコードは、SRV 接続文字列形式を使用して移行元 MongoDB インスタンスの接続プロファイルを作成するリクエストを示しています。
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "CONNECTION_PROFILE_NAME", "mongodbProfile": { "hostAddresses": [ { "hostname": "HOST_URI" } ], "username": "USERNAME", "password": "PASSWORD", "srvConnectionFormat": {} }, "staticServiceIpConnectivity": {} }
次に例を示します。
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=mongodb-cp { "displayName": "mongodb-cp", "mongodbProfile": { "hostAddresses": [ { "hostname": "cluster85828.ebeek.mongodb.net" } ], "username": "Cluster85828", "password": "password", "srvConnectionFormat": {} }, "staticServiceIpConnectivity": {} }
gcloud
gcloud
を使用して接続プロファイルを作成する方法については、Google Cloud SDK のドキュメントをご覧ください。
次のコードは、標準の接続文字列形式を使用して移行元 MongoDB インスタンスの接続プロファイルを作成するリクエストを示しています。
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "CONNECTION_PROFILE_NAME", "mongodbProfile": { "hostAddresses": [ { "hostname": "HOST_IP", "port": "PORT_NUMBER" } ], "replica_set": "SET_ID", "username": "USERNAME", "password": "PASSWORD", "standardConnectionFormat": { "directConnection": false } }, "staticServiceIpConnectivity": {} }
次に例を示します。
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=mongodb-cp { "displayName": "mongodb-cp", "mongodbProfile": { "hostAddresses": [ { "hostname": "34.19.10.194", "port": "27017" } ], "replicaset": "rs0" "username": "root", "password": "password", "standardConnectionFormat": { "directConnection": false } }, "staticServiceIpConnectivity": {} }
gcloud
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
を使用して接続プロファイルを作成する方法については、Google Cloud SDK のドキュメントをご覧ください。
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
を使用して接続プロファイルに関する情報を取得する方法については、Google Cloud SDK のドキュメントをご覧ください。
接続プロファイルの一覧表示
次のコードは、すべての接続プロファイルに関する情報を取得するリクエストを示しています。
REST
GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles
gcloud
gcloud
を使用してすべての接続プロファイルに関する情報を取得する方法については、Google Cloud SDK のドキュメントをご覧ください。
接続プロファイルを更新する
次のコードは、移行元データベースの既存の接続プロファイルのユーザー名とパスワードを変更するリクエストを示しています。
リクエストに 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
を使用して接続プロファイルを更新する方法については、Google Cloud SDK のドキュメントをご覧ください。
接続プロファイルの削除
次のコードは、接続プロファイルを削除するリクエストを示しています。接続プロファイルを削除すると、それを使用しているストリームはすべて失敗します。
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
を使用して接続プロファイルを削除する方法については、Google Cloud SDK のドキュメントをご覧ください。
ソース データベースの構造を確認する
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
を使用してソース データベースの構造を検出する方法については、Google Cloud SDK のドキュメントをご覧ください。
次のステップ
- Datastream API を使用してストリームを管理する方法を学習します。
- Datastream API を使用してプライベート接続構成を管理する方法を学習します。
- Datastream API の使用方法については、リファレンス ドキュメントをご覧ください。