연결 프로필 관리

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

개요

이 섹션에서는 Datastream API를 사용하여 다음을 수행하는 방법을 알아봅니다.

  • 소스 Oracle 데이터베이스, 소스 MySQL 데이터베이스, 대상 Cloud Storage 버킷의 연결 프로필 만들기
  • 연결 프로필 정보 검색, 업데이트, 삭제
  • 소스 또는 대상 연결 프로필 구조 탐색

Datastream API를 사용하는 방법에는 두 가지가 있습니다. REST API를 호출하거나 gcloud 명령줄 도구(CLI)를 사용할 수 있습니다.

gcloud을 사용하여 Datastream 연결 프로필을 관리하는 방법에 대한 고급 정보를 보려면 여기를 클릭하세요.

소스 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-ip-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-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]"
  }
}

예를 들면 다음과 같습니다.

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

연결 프로필이 생성되면 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": {
    "privateConnectionName": "https://datastream.googleapis.com/v1/projects/
     myProjectId/locations/us-central1/privateConnections/myPrivateConnection"
  }
}

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

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

연결 프로필 정보 가져오기

다음 코드는 소스 Oracle 데이터베이스, 소스 MySQL 데이터베이스 또는 생성된 대상 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 매개변수를 사용하면 지정한 필드만 요청 본문에 포함되어야 합니다(이 예시에서는usernamepassword 필드(oracle_profile.usernameoracle_profile.password 플래그)를 사용하여 SLOB 버전을 실행할 수 있습니다.

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

연결 프로필 삭제

다음 코드는 연결 프로필 삭제 요청을 보여줍니다. 연결 프로필이 삭제되면 이 프로필을 사용하는 모든 스트림이 실패합니다.

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