En esta página, se describe cómo leer datos de una base de datos de PostgreSQL en una instancia de Cloud Data Fusion.
Antes de comenzar
- Crea una instancia de Cloud Data Fusion.
- Habilita tu base de datos de PostgreSQL para aceptar conexiones de Cloud Data Fusion. Para hacerlo de forma segura, te recomendamos que uses una instancia privada de Cloud Data Fusion.
Funciones obligatorias
A fin de obtener los permisos necesarios para conectarte a una base de datos de PostgreSQL, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Trabajador de Dataproc (
roles/dataproc.worker
) en la cuenta de servicio de Dataproc en el proyecto que contiene el clúster -
Ejecutor de Cloud Data Fusion (
roles/datafusion.runner
) en la cuenta de servicio de Dataproc en el proyecto que contiene el clúster -
Para usar Cloud SQL sin el proxy de autenticación de Cloud SQL, haz lo siguiente:
Cliente de Cloud SQL (
roles/cloudsql.client
) en el proyecto que contiene la instancia de Cloud SQL
Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.
Es posible que también puedas obtener los permisos necesarios mediante funciones personalizadas, o bien otras funciones predefinidas.
Abre tu instancia en Cloud Data Fusion
En la consola de Google Cloud, ve a la página de Cloud Data Fusion.
Para abrir la instancia en Cloud Data Fusion Studio, haz clic en Instancias y, luego, en Ver instancia.
Almacena tu contraseña de PostgreSQL como una llave de seguridad
Ingresa tu contraseña de PostgreSQL como una clave segura para encriptar en tu instancia de Cloud Data Fusion. Consulta Cloud KMS para obtener más información sobre las claves.
En la IU de Cloud Data Fusion, haz clic en Administrador del sistema > Configuración.
Haz clic en Make HTTP Calls.
En el menú desplegable, selecciona PUT.
En el campo Ruta de acceso, ingresa
namespaces/default/securekeys/pg_password
.En el campo Cuerpo (Body), ingresa
{"data":"POSTGRESQL_PASSWORD"}
. ReemplazaPOSTGRESQL_PASSWORD
por tu contraseña de PostgreSQL.Haga clic en Enviar.
El campo Respuesta te notifica si hay errores.
Conéctate a Cloud SQL para PostgreSQL
En la IU de Cloud Data Fusion, haz clic en el menú menu y navega a la página Wrangler.
Haz clic en Agregar conexión.
Elige Base de datos como el tipo de fuente para conectarte.
En Google Cloud SQL para PostgreSQL, haz clic en Subir.
Sube un archivo JAR que contenga el controlador PostgreSQL. Tu archivo JAR debe tener el formato
NAME-VERSION.jar
. Si tu archivo JAR no sigue este formato, cámbiale el nombre antes de subirlo.Haz clic en Siguiente.
Ingresa el nombre, el nombre de la clase y la versión del controlador en los campos.
Haz clic en Finalizar.
En la ventana Agregar conexión que se abre, haz clic en Google Cloud SQL para PostgreSQL. Tu nombre de JAR debe aparecer en Google Cloud SQL para PostgreSQL.
Completa los campos de conexión obligatorios. En el campo Contraseña, selecciona la clave segura que almacenaste antes. Esto garantiza que tu contraseña se recupere mediante Cloud KMS.
En el campo String de conexión, ingresa la string de conexión de la siguiente manera:
jdbc:postgresql://google/DATABASE_NAME?cloudSqlInstance=INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
Reemplaza lo siguiente:
DATABASE_NAME
: el nombre de la base de datos de Cloud SQL que se muestra en la pestaña Bases de datos de la página de detalles de la instancia.INSTANCE_CONNECTION_NAME
: el nombre de la conexión de la instancia de Cloud SQL como se muestra en la pestaña Descripción general de la página de detalles de la instancia.
Por ejemplo:
jdbc:postgresql://google/postgres?cloudSqlInstance=dis-demo:us-central1:pgsql-1&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
Habilita la API de Cloud SQL Admin
Haz clic en Probar conexión para asegurarte de que la conexión se pueda establecer con la base de datos.
Haz clic en Agregar conexión.
Después de conectar tu base de datos de PostgreSQL, puedes aplicar transformaciones a tus datos (en Wrangler), crear una canalización y escribir tu salida en un receptor (en Studio).