En esta página, se describe cómo leer datos de una base de datos de PostgreSQL en un instancia de Cloud Data Fusion.
Antes de comenzar
- Crea una instancia de Cloud Data Fusion.
- Habilita tu base de datos de PostgreSQL para que acepte conexiones desde Cloud Data Fusion. Para hacerlo de forma segura, te recomendamos que uses instancia privada de Cloud Data Fusion.
Roles obligatorios
Para obtener los permisos que necesitas 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 del proyecto que contiene el clúster -
Para usar Cloud SQL sin el proxy de Cloud SQL Auth, usa el Cliente de Cloud SQL (
roles/cloudsql.client
) en el proyecto que contiene la instancia de Cloud SQL.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
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. Para obtener más información sobre las claves, consulta Cloud KMS.
En la IU de Cloud Data Fusion, haz clic en System admin >. Configuración.
Haz clic en Realizar llamadas HTTP.
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.Haz clic en Enviar.
El campo Respuesta te notifica sobre cualquier error.
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 (Database) 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 del conductor, el nombre de la clase y la versión en los campos.
Haz clic en Finish (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 tu 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).