Mengelola profil koneksi

Di halaman ini, Anda akan mempelajari cara menggunakan Datastream API untuk:

  • Buat profil koneksi untuk database Oracle sumber, database MySQL sumber, database PostgreSQL sumber, organisasi Salesforce sumber, tujuan BigQuery, dan tujuan Cloud Storage
  • Mengambil informasi tentang, memperbarui, dan menghapus profil koneksi
  • Menemukan struktur profil koneksi sumber atau tujuan

Ada dua cara untuk menggunakan Datastream API. Anda dapat melakukan panggilan REST API atau menggunakan Google Cloud CLI (CLI).

Untuk mengetahui informasi umum tentang penggunaan gcloud untuk mengelola profil koneksi Datastream, klik dokumentasi Google Cloud SDK.

Membuat profil koneksi untuk database Oracle sumber

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk database Oracle menggunakan secret dan metode konektivitas daftar yang diizinkan 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",
    "databaseService": "DATABASE"
  },
  "secretManagerStoredPassword": "SECRET_MANAGER_RESOURCE",
  "staticServiceIpConnectivity": {}
}

Contoh:

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

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk database Oracle, dan menentukan metode konektivitas sebagai konektivitas pribadi (peering VPC).

Metode ini membuat konektivitas yang aman antara Datastream dan database sumber (secara internal dalam Google Cloud, atau dengan sumber eksternal yang terhubung melalui VPN atau Interconnect). Komunikasi ini terjadi melalui koneksi peering 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]"
  }
}

Contoh:

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

Setelah profil koneksi dibuat, Anda dapat melihat informasi tentang profil tersebut dengan memanggil metode connectionProfiles/get. Output Anda akan muncul, mirip dengan berikut ini:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi bagi database Oracle sumber, lihat dokumentasi Google Cloud SDK.

Membuat profil koneksi untuk database MySQL sumber

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk database MySQL, dan menentukan metode konektivitas sebagai penggunaan alamat IP statis (daftar yang diizinkan 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": {}
}

Contoh:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi bagi database MySQL sumber, lihat dokumentasi Google Cloud SDK.

Membuat profil koneksi untuk database PostgreSQL sumber

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk database 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": {}
}

Contoh:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi, lihat dokumentasi Google Cloud SDK.

Membuat profil koneksi untuk database SQL Server sumber

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk database SQL Server, dan menentukan metode konektivitas sebagai penggunaan alamat IP statis (daftar IP yang diizinkan).

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

Contoh:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi, lihat dokumentasi Google Cloud SDK.

Membuat profil koneksi untuk sumber Salesforce

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk instance Salesforce sumber menggunakan nama pengguna dan sandi sebagai metode autentikasi.

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

Contoh:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi, lihat dokumentasi Google Cloud SDK.

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk instance Salesforce sumber menggunakan kredensial klien OAuth 2.0 sebagai metode autentikasi.

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

Contoh:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi, lihat dokumentasi Google Cloud SDK.

Membuat profil koneksi untuk sumber MongoDB

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk instance MongoDB sumber menggunakan format string koneksi SRV.

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

Contoh:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi, lihat dokumentasi Google Cloud SDK.

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk instance MongoDB sumber menggunakan format string koneksi standar.

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

Contoh:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi, lihat dokumentasi Google Cloud SDK.

Membuat profil koneksi untuk tujuan BigQuery

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk tujuan BigQuery.

REST

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

Contoh:

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

gcloud

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi, lihat dokumentasi Google Cloud SDK.

Membuat profil koneksi untuk tujuan Cloud Storage

Kode berikut menunjukkan permintaan untuk membuat profil koneksi untuk bucket Cloud Storage. Karena Cloud Storage berada di jaringan yang sama dengan Datastream, tidak ada konektivitas khusus yang diperlukan. Oleh karena itu, tidak ada metode konektivitas yang ditentukan.

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

Contoh:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk membuat profil koneksi untuk Cloud Storage, lihat dokumentasi Cloud SDK.

Mendapatkan informasi tentang profil koneksi

Kode berikut menunjukkan permintaan untuk mengambil informasi tentang profil koneksi untuk database Oracle sumber, database MySQL sumber, tujuan BigQuery, atau tujuan Cloud Storage yang telah dibuat.

REST

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

Contoh:

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

gcloud

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk mengambil informasi tentang profil koneksi Anda, lihat dokumentasi Google Cloud SDK.

Mencantumkan profil koneksi

Kode berikut menunjukkan permintaan untuk mengambil informasi tentang semua profil koneksi Anda.

REST

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

gcloud

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk mengambil informasi tentang semua profil koneksi Anda, lihat dokumentasi Google Cloud SDK.

Memperbarui profil koneksi

Kode berikut menunjukkan permintaan untuk mengubah nama pengguna dan sandi profil koneksi yang ada untuk database sumber.

Dengan menggunakan parameter updateMask dalam permintaan, hanya kolom yang Anda tentukan yang harus disertakan dalam isi permintaan (untuk contoh ini, kolom username dan password, yang masing-masing diwakili oleh tanda oracle_profile.username dan 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"
  }
}

Contoh:

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

Kode berikut menunjukkan permintaan untuk mengubah konfigurasi konektivitas pribadi yang ditetapkan ke profil koneksi. Profil koneksi ini menggunakan metode konektivitas jaringan VPC peering.

Untuk contoh ini, Anda menetapkan konfigurasi new_private_connection ke profil koneksi.

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

Contoh:

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

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk memperbarui profil koneksi, lihat dokumentasi Google Cloud SDK.

Menghapus profil koneksi

Kode berikut menunjukkan permintaan untuk menghapus profil koneksi. Setelah profil koneksi dihapus, semua aliran data yang menggunakannya akan gagal.

REST

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

Contoh:

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

gcloud

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk menghapus profil koneksi Anda, lihat dokumentasi Google Cloud SDK.

Menemukan struktur database sumber

Gunakan discoverConnectionProfile API untuk mengambil daftar entity (misalnya, skema dan tabel) dari sumber, dan metadata yang terkait dengan entity.

API dapat menerima sebagai parameter baik ID profil koneksi yang ada maupun definisi objek profil koneksi lengkap. Fungsi ini dapat menampilkan satu tingkat (misalnya, semua skema dalam database atau semua tabel dalam skema), atau semua entitas secara rekursif (misalnya, skema, tabel, dan kolom).

REST

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

Contoh:

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

gcloud

Untuk mengetahui informasi selengkapnya tentang cara menggunakan gcloud untuk menemukan struktur database sumber, lihat dokumentasi Google Cloud SDK.

Langkah berikutnya