Gestionar perfiles de conexión

En esta página, aprenderá a usar la API Datastream para hacer lo siguiente:

  • Crear perfiles de conexión para una base de datos Oracle de origen, una base de datos MySQL de origen, una base de datos PostgreSQL de origen, una organización de Salesforce de origen, un destino de BigQuery y un destino de Cloud Storage
  • Recuperar información sobre los perfiles de conexión, actualizarlos y eliminarlos
  • Descubrir la estructura de los perfiles de conexión de origen o de destino

Hay dos formas de usar la API DataStream. Puedes hacer llamadas a la API REST o usar Google Cloud CLI.

Para obtener información general sobre cómo usar gcloud para gestionar perfiles de conexión de Datastream, consulta la documentación del SDK de Google Cloud.

Crear un perfil de conexión para una base de datos de Oracle de origen

El siguiente código muestra una solicitud para crear un perfil de conexión para una base de datos Oracle mediante un secreto y el método de conectividad de lista de permitidos de IPs.

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

Por ejemplo:

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

El siguiente código muestra una solicitud para crear un perfil de conexión de una base de datos Oracle y especifica la conectividad privada (emparejamiento de VPCs) como método de conectividad.

Este método establece una conectividad segura entre Datastream y la base de datos de origen (internamente en Google Cloudo con fuentes externas conectadas a través de una VPN o Interconnect). Esta comunicación se produce a través de una conexión de intercambio de tráfico entre VPCs.

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

Por ejemplo:

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

Una vez creado el perfil de conexión, puede ver información sobre él llamando al método connectionProfiles/get. Verá un resultado similar al siguiente:

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

Para obtener más información sobre cómo usar gcloud para crear un perfil de conexión de una base de datos Oracle de origen, consulta la documentación del SDK de Google Cloud.

Crear un perfil de conexión para una base de datos MySQL de origen

El siguiente código muestra una solicitud para crear un perfil de conexión de una base de datos MySQL y especifica que el método de conectividad es el uso de direcciones IP estáticas (lista de permitidas de IPs).

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

Por ejemplo:

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

Para obtener más información sobre cómo usar gcloud para crear un perfil de conexión de una base de datos MySQL de origen, consulta la documentación del SDK de Google Cloud.

Crear un perfil de conexión para una base de datos PostgreSQL de origen

El siguiente código muestra una solicitud para crear un perfil de conexión para una base de datos 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": {}
}

Por ejemplo:

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

Para obtener más información sobre cómo usar gcloud para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.

Crear un perfil de conexión para una base de datos de SQL Server de origen

El siguiente código muestra una solicitud para crear un perfil de conexión de una base de datos de SQL Server y especifica que el método de conectividad es el uso de direcciones IP estáticas (lista de permitidas de IPs).

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

Por ejemplo:

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

Para obtener más información sobre cómo usar gcloud para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.

Crear un perfil de conexión para una fuente de Salesforce

El siguiente código muestra una solicitud para crear un perfil de conexión de una instancia de Salesforce de origen mediante un nombre de usuario y una contraseña como método de autenticación.

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

Por ejemplo:

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

Para obtener más información sobre cómo usar gcloud para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.

En el siguiente código se muestra una solicitud para crear un perfil de conexión para una instancia de Salesforce de origen mediante credenciales de cliente de OAuth 2.0 como método de autenticación.

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

Por ejemplo:

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

Para obtener más información sobre cómo usar gcloud para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.

Crear un perfil de conexión para una fuente de MongoDB

El siguiente código muestra una solicitud para crear un perfil de conexión para una instancia de MongoDB de origen mediante un formato de cadena de conexión 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": {}
}

Por ejemplo:

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

Para obtener más información sobre cómo usar gcloud para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.

El siguiente código muestra una solicitud para crear un perfil de conexión de una instancia de MongoDB de origen mediante un formato de cadena de conexión estándar.

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

Por ejemplo:

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

Para obtener más información sobre cómo usar gcloud para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.

Crear un perfil de conexión para un destino de BigQuery

El siguiente código muestra una solicitud para crear un perfil de conexión de un destino de BigQuery.

REST

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

Por ejemplo:

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

gcloud

Para obtener más información sobre cómo usar gcloud para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.

Crear un perfil de conexión para un destino de Cloud Storage

El siguiente código muestra una solicitud para crear un perfil de conexión de un segmento de Cloud Storage. Como Cloud Storage está en la misma red que Datastream, no se necesita ninguna conectividad especial. Por lo tanto, no se ha especificado ningún método de conectividad.

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

Por ejemplo:

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

Para obtener más información sobre cómo usar gcloud para crear un perfil de conexión de Cloud Storage, consulta la documentación del SDK de Cloud.

Obtener información sobre un perfil de conexión

El siguiente código muestra una solicitud para obtener información sobre un perfil de conexión de una base de datos Oracle de origen, una base de datos MySQL de origen, un destino de BigQuery o un destino de Cloud Storage que se haya creado.

REST

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

Por ejemplo:

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

gcloud

Para obtener más información sobre cómo usar gcloud para recuperar información sobre tu perfil de conexión, consulta la documentación del SDK de Google Cloud.

Mostrar perfiles de conexión

El siguiente código muestra una solicitud para obtener información sobre todos tus perfiles de conexión.

REST

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

gcloud

Para obtener más información sobre cómo usar gcloud para recuperar información sobre todos tus perfiles de conexión, consulta la documentación del SDK de Google Cloud.

Actualizar un perfil de conexión

El siguiente código muestra una solicitud para cambiar el nombre de usuario y la contraseña de un perfil de conexión de una base de datos de origen.

Si usas el parámetro updateMask en la solicitud, solo se incluirán en el cuerpo de la solicitud los campos que especifiques (en este ejemplo, los campos username y password, representados por las marcas oracle_profile.username y oracle_profile.password, respectivamente).

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

Por ejemplo:

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

En el siguiente código se muestra una solicitud para cambiar la configuración de conectividad privada asignada a un perfil de conexión. Este perfil de conexión usa el método de conectividad de red de emparejamiento de VPC.

En este ejemplo, asignas la configuración new_private_connection al perfil de conexión.

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

Por ejemplo:

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

Para obtener más información sobre cómo usar gcloud para actualizar tu perfil de conexión, consulta la documentación del SDK de Google Cloud.

Eliminar un perfil de conexión

En el siguiente código se muestra una solicitud para eliminar un perfil de conexión. Una vez que se haya eliminado el perfil de conexión, los flujos que lo usen fallarán.

REST

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

Por ejemplo:

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

gcloud

Para obtener más información sobre cómo usar gcloud para eliminar tu perfil de conexión, consulta la documentación del SDK de Google Cloud.

Descubrir la estructura de una base de datos de origen

Usa la API discoverConnectionProfile para obtener la lista de entidades (por ejemplo, esquemas y tablas) de una fuente, así como los metadatos asociados a las entidades.

La API puede recibir como parámetro un ID de un perfil de conexión o una definición completa de un objeto de perfil de conexión. La función puede devolver un solo nivel (por ejemplo, todos los esquemas de una base de datos o todas las tablas de un esquema) o todas las entidades de forma recursiva (por ejemplo, esquemas, tablas y columnas).

REST

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

Por ejemplo:

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

gcloud

Para obtener más información sobre cómo usar gcloud para descubrir la estructura de tu base de datos de origen, consulta la documentación del SDK de Google Cloud.

Siguientes pasos