Leer datos de una base de datos de PostgreSQL

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 empezar

  • Crea una instancia de Cloud Data Fusion.
  • Habilita tu base de datos PostgreSQL para que acepte conexiones de Cloud Data Fusion. Para hacerlo de forma segura, te recomendamos que uses una instancia privada de Cloud Data Fusion.

Roles obligatorios

Para obtener los permisos que necesitas para conectarte a una base de datos PostgreSQL, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

  • Trabajador de Dataproc (roles/dataproc.worker) en la cuenta de servicio de Dataproc del 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 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

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Abrir la instancia en Cloud Data Fusion

  1. En la Google Cloud consola, ve a la página de Cloud Data Fusion.

  2. Para abrir la instancia en Cloud Data Fusion Studio, haga clic en Instancias y, a continuación, en Ver instancia.

    Ir a Instancias

Almacenar la contraseña de PostgreSQL como una clave segura

Introduce tu contraseña de PostgreSQL como clave segura para cifrarla en tu instancia de Cloud Data Fusion. Para obtener más información sobre las claves, consulta Cloud KMS.

  1. En la interfaz de usuario de Cloud Data Fusion, haga clic en Administrador del sistema > Configuración.

  2. Haz clic en Hacer llamadas HTTP.

    Configuración.

  3. En el menú desplegable, elige PUT.

  4. En el campo de ruta, introduce namespaces/default/securekeys/pg_password.

  5. En el campo Cuerpo, introduce {"data":"POSTGRESQL_PASSWORD"}. Sustituye POSTGRESQL_PASSWORD por tu contraseña de PostgreSQL.

  6. Haz clic en Enviar.

    Contraseña.

El campo Respuesta te informa de los errores.

Conectarse a Cloud SQL para PostgreSQL

  1. En la interfaz de usuario de Cloud Data Fusion, haga clic en el menú y vaya a la página Wrangler.

  2. Haz clic en Añadir conexión.

  3. Elige Base de datos como tipo de fuente para conectarte.

    Añadir conexión.

  4. En Google Cloud SQL para PostgreSQL, haga clic en Subir.

    Elige la fuente.

  5. Sube un archivo JAR que contenga tu controlador de PostgreSQL. El archivo JAR debe tener el formato NAME-VERSION.jar. Si tu archivo JAR no sigue este formato, cambia su nombre antes de subirlo.

  6. Haz clic en Siguiente.

  7. Escribe el nombre, el nombre de clase y la versión del controlador en los campos.

  8. Haz clic en Finalizar.

  9. En la ventana Añadir conexión que se abre, haz clic en Google Cloud SQL para PostgreSQL. El nombre del archivo JAR debería aparecer en Google Cloud SQL para PostgreSQL.

    Se ha subido el archivo JAR.

  10. Rellena los campos de conexión obligatorios. En el campo Contraseña, selecciona la clave segura que hayas almacenado anteriormente. De esta forma, la contraseña se recupera mediante Cloud KMS.

    Elige una contraseña.

  11. En el campo Cadena de conexión, introduce tu cadena 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
    

    Haz los cambios siguientes:

    • DATABASE_NAME: el nombre de la base de datos de Cloud SQL tal como se indica en la pestaña Bases de datos de la página de detalles de la instancia.
    • INSTANCE_CONNECTION_NAME: el nombre de conexión de la instancia de Cloud SQL que se muestra en la pestaña Resumen de la página de detalles de la instancia.
    Nombre de conexión 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
    

  12. Habilita la API Admin de Cloud SQL.

  13. Haz clic en Probar conexión para asegurarte de que se puede establecer la conexión con la base de datos.

  14. Haz clic en Añadir conexión.

Una vez que la base de datos de PostgreSQL esté conectada, podrá aplicar transformaciones a sus datos (en Wrangler), crear una pipeline y escribir la salida en un receptor (en Studio).