Fuente por lotes de Redshift

En esta página, se describe cómo cargar datos de una instancia de Amazon Redshift en Google Cloud con Cloud Data Fusion. El conector de fuente de Redshift te permite sincronizar tablas de tu conjunto de datos de Redshift con tu destino, como BigQuery. El conector también te permite crear una consulta SQL configurable.

Antes de comenzar

  • Las versiones 6.9.0 y posteriores de Cloud Data Fusion admiten la fuente de Redshift.
  • Cuando configuras el conector de origen de Redshift, puedes seleccionar una conexión existente y reutilizable, o crear una nueva conexión única. Para obtener más información, consulta Administra conexiones. Cuando vuelvas a usar una conexión, ten en cuenta lo siguiente:

    • No es necesario que proporciones credenciales.
    • La conexión existente proporciona la información del esquema y el nombre de la tabla que se usa para generar la consulta de importación.

Configura el complemento

  1. Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.

  2. Verifica que esté seleccionada la opción Data Pipeline - Batch (no Realtime).

  3. En el menú Source, haz clic en Redshift. El nodo Redshift aparecerá en tu canalización. Si no ves la fuente de Redshift en la página Studio, despliega el conector de fuente de Redshift desde el centro de Cloud Data Fusion.

  4. Para configurar la fuente, ve al nodo Redshift y haz clic en Properties.

  5. Ingresa las siguientes propiedades. Para obtener una lista completa, consulta Propiedades.

    1. Ingresa una etiqueta para el nodo de Redshift, por ejemplo, Redshift tables.
    2. Ingresa los detalles de la conexión. Puedes configurar una conexión nueva y única, o una conexión existente y reutilizable.

      Nueva conexión

      Para agregar una conexión única a Redshift, sigue estos pasos:

      1. Mantén desactivada la opción Usar conexión.
      2. En el campo Nombre del controlador JDBC, ingresa el nombre del controlador. Redshift admite dos tipos de controladores JDBC: CData y Amazon. Para obtener más información, consulta Cómo subir un controlador JDBC.
      3. En el campo Host, ingresa el extremo del clúster de Redshift, por ejemplo, cdf-redshift-new.example-endpoint.eu-west-1.redshift.amazonaws.com.
      4. Opcional: En el campo Puerto, ingresa un número de puerto de la base de datos, por ejemplo, 5439.
      5. Si tu base de datos de Redshift requiere autenticación, haz lo siguiente:

        1. En el campo Nombre de usuario, ingresa el nombre de la base de datos.
        2. En el campo Contraseña, ingresa la contraseña de la base de datos.
        3. Opcional: En el campo Argumentos, ingresa los argumentos de valor clave. Para usar el controlador de CData, proporciona los argumentos de conexión, como RTK o OEMKey, si corresponde.
        4. En el campo Nombre, ingresa un nombre, por ejemplo, SN-PC-Source-01-01-2024.
        5. Ingresa el nombre de la base de datos de destino en el campo Base de datos, por ejemplo, datafusiondb.

      Conexión reutilizable

      Para volver a usar una conexión existente, sigue estos pasos:

      1. Activa Usar conexión.
      2. Haz clic en Browse connections.
      3. Haz clic en el nombre de la conexión.

      4. Opcional: Si no existe una conexión y deseas crear una nueva conexión reutilizable, haz clic en Agregar conexión y consulta los pasos de la pestaña Nueva conexión en esta página.

    3. En el campo Import query, ingresa una consulta con los nombres del esquema y la tabla de tu fuente de Redshift, por ejemplo, Select * from "public"."users".

    4. Opcional: Ingresa propiedades avanzadas, como una consulta de límite o la cantidad de divisiones. Para ver todas las descripciones de las propiedades, consulta Propiedades.

  6. Opcional: Haz clic en Validar y corrige los errores que se encuentren.

  7. Haz clic en Cerrar. Las propiedades se guardan y puedes seguir compilando tu canalización de datos en la interfaz web de Cloud Data Fusion.

Propiedades

Propiedad Admite macros para la automatización Propiedad obligatoria Descripción
Etiqueta No Es el nombre del nodo en tu canalización de datos.
Cómo usar la conexión No No Busca una conexión a la fuente. Si la opción Usar conexión está activada, no necesitas proporcionar credenciales.
Conexión Es el nombre de la conexión que se usará. Si se selecciona Usar conexión, aparecerá este campo. La conexión proporciona información sobre la base de datos y la tabla.
Nombre del controlador de JDBC Es el nombre del controlador de JDBC que se usará. Si no se selecciona Usar conexión, aparecerá este campo.
Host Es el extremo del clúster de Amazon Redshift. Si no se selecciona Usar conexión, aparecerá este campo.
Puerto No Es el puerto en el que se ejecuta Redshift. Si no se selecciona Usar conexión, aparecerá este campo.
Nombre de usuario No Es la identidad del usuario para conectarse a la base de datos especificada. Si no se selecciona Usar conexión, aparecerá este campo.
Contraseña No Contraseña que se usará para conectarse a la base de datos especificada. Si no se selecciona Usar conexión, aparecerá este campo.
Argumentos de conexión No Una lista de pares clave-valor de cadenas arbitrarias como argumentos de conexión. Estos argumentos se pasan al controlador de JDBC como argumentos de conexión para controladores de JDBC que podrían necesitar configuraciones adicionales. Si no se selecciona Usar conexión, aparecerá este campo.
Nombre de referencia No Identifica de forma única esta fuente para el linaje, anotar los metadatos y otros servicios.
Base de datos Es el nombre de la base de datos de Redshift. Para seleccionar datos, haz clic en Explorar base de datos.
Consulta de importación Es la consulta SELECT que se usará para importar datos de la tabla especificada.
Consulta de límite No Consulta SQL que muestra los valores mínimos y máximos del campo splitBy. Por ejemplo, SELECT MIN(id),MAX(id) FROM table. No es obligatorio si numSplits se establece en uno.
Divide columnas No Es el nombre del campo que se usa para generar divisiones. No es obligatorio si numSplits se establece en uno.
Cantidad de divisiones No Cantidad de divisiones que se generarán.
Tamaño No Es la cantidad de filas que se recuperarán a la vez por división. Un tamaño de recuperación más grande puede generar una importación más rápida, con el inconveniente de un mayor uso de memoria. Si no se especifica, el valor predeterminado es 1000.

Asignaciones de tipos de datos

En la siguiente tabla, se muestra una lista de los tipos de datos de Redshift con los tipos de CDAP correspondientes:

Tipo de datos de Redshift Tipo de datos del esquema de CDAP
bigint long
boolean boolean
character string
character varying string
date date
double precision double
geometry bytes
hllsketch string
integer int
json string
numeric(precision, scale)/decimal(precision, scale) decimal
numeric con precisión 0 string
real float
smallint int
super string
text string
time [ (p) ] sin zona horaria time
time [ (p) ] with time zone string
timestamp [ (p) ] sin zona horaria timestamp
timestamp [ (p) ] with time zone timestamp
varbyte byte
xml string

Prácticas recomendadas

Las siguientes prácticas recomendadas se aplican cuando te conectas a un clúster de Redshift desdeGoogle Cloud.

Usa listas de entidades permitidas de direcciones IP

Para evitar el acceso de fuentes no autorizadas y restringir el acceso a direcciones IP específicas, habilita los controles de acceso en el clúster de Redshift.

Si usas controles de acceso de Redshift, sigue estos pasos para acceder al clúster en Cloud Data Fusion:

  1. Obtén las direcciones IP externas de los servicios o las máquinas en Google Cloud que se deben conectar al clúster de Redshift, como la IP del servidor proxy (consulta Cómo ver direcciones IP). Para los clústeres de Dataproc, obtén las direcciones IP de todos los nodos principales y secundarios.
  2. Para agregar las direcciones IP a una lista de entidades permitidas en los grupos de seguridad, crea las reglas entrantes para las direcciones IP de la Google Cloud máquina.

  3. Agrega las propiedades de conexión en Wrangler y pruébalas:

    1. Abre la instancia de Cloud Data Fusion en la interfaz web.
    2. Haz clic en Wrangler > Agregar conexión y crea la nueva conexión para Redshift.
    3. Ingresa todas las propiedades de conexión.
    4. Haz clic en Probar conexión y resuelve los problemas.

Para crear varias divisiones, usa consultas de límite

Para varias divisiones, usa consultas de límite para administrar el clúster de varios nodos. En situaciones en las que extraes datos de Redshift y distribuyes la carga de forma uniforme en cada nodo, configura una consulta de límite en las propiedades del conector de fuente de Redshift.

  1. En tu canalización de Cloud Data Fusion, en la página Studio, ve al nodo Redshift y haz clic en Properties.
  2. En las propiedades Advanced, especifica lo siguiente:

    1. Ingresa la cantidad de divisiones que se crearán.
    2. Ingresa el tamaño de recuperación para cada división.
    3. Ingresa una consulta de límite para aplicarla al clúster de Redshift de varios nodos.
    4. Ingresa el nombre del campo Columna de división.

Por ejemplo, supongamos que tienes el siguiente caso de uso:

  • Tienes una tabla que contiene 10 millones de registros.
  • Tiene una columna de ID única llamada id.
  • El clúster de Redshift tiene 4 nodos.
  • Objetivo: Para aprovechar el potencial del clúster, planeas generar varias divisiones. Para lograrlo, usa las siguientes configuraciones de propiedades:

    • En el campo Consulta de límite, ingresa la siguiente consulta:

      SELECT MIN(id), MAX(id) FROM tableName
      

      En esta consulta, id es el nombre de la columna en la que se aplican las divisiones.

    • En el campo Columna para dividir, ingresa el nombre de la columna, id.

    • Ingresa la cantidad de divisiones y el tamaño de recuperación. Estas propiedades están interconectadas, lo que te permite calcular las divisiones en función de un tamaño de recuperación o viceversa. En este ejemplo, ingresa lo siguiente.

    • En el campo Cantidad de divisiones, ingresa 40. En este ejemplo, en el que la tabla tiene diez millones de registros, crear 40 divisiones da como resultado que cada división contenga 250,000 registros.

    • En el campo Tamaño de recuperación (Fetch size), ingresa 250,000.

¿Qué sigue?