En esta página, se describe cómo cargar datos desde una instancia de Amazon Redshift a Google Cloud con Cloud Data Fusion. El conector de fuente de Redshift te permite sincronizar tablas desde tu conjunto de datos de Redshift a tu destino, como BigQuery. El conector también te permite crear una consulta en 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 fuente de Redshift, puedes seleccionar una conexión existente y reutilizable, o crear una conexión nueva y única. Para obtener más información, consulta Administra conexiones. Cuando reutilizas una conexión, ten en cuenta lo siguiente:
- No necesitas proporcionar 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.
Cómo configurar el complemento
Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.
Verifica que esté seleccionado Canalización de datos: por lotes (no En tiempo real).
En el menú Fuente, haz clic en Redshift. El nodo de Redshift aparece en tu canalización. Si no ves la fuente de Redshift en la página Studio, implementa el conector de fuente de Redshift desde Cloud Data Fusion Hub.
Para configurar la fuente, ve al nodo de Redshift y haz clic en Properties.
Ingresa las siguientes propiedades. Para obtener una lista completa, consulta Propiedades.
- Ingresa una etiqueta para el nodo de Redshift, por ejemplo,
Redshift tables. 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:
- Mantén Usar conexión desactivado.
- 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 Sube un controlador JDBC.
- 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. - Opcional: En el campo Puerto , ingresa un número de puerto de la base de datos, por ejemplo,
5439. Si tu base de datos de Redshift requiere autenticación, haz lo siguiente:
- En el campo Nombre de usuario, ingresa el nombre de la base de datos.
- En el campo Contraseña, ingresa la contraseña de la base de datos.
- Opcional: En el campo Argumentos, ingresa argumentos de valor clave. Para usar el controlador CData, proporciona los argumentos de conexión, como RTK o OEMKey, si corresponde.
- En el campo Nombre , ingresa un nombre, por ejemplo,
SN-PC-Source-01-01-2024. - Ingresa el nombre de la base de datos de destino en el campo Base de datos , por ejemplo,
datafusiondb.
Conexión reutilizable
Para reutilizar una conexión existente, sigue estos pasos:
- Activa Usar conexión.
- Haz clic en Browse connections.
Haz clic en el nombre de la conexión.
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 en la pestaña Nueva conexión de esta página.
En el campo Import query, ingresa una consulta con el esquema y los nombres de las tablas de tu fuente de Redshift, por ejemplo,
Select * from "public"."users".Opcional: Ingresa propiedades avanzadas, como una consulta de límite o una cantidad de divisiones. Para obtener todas las descripciones de las propiedades, consulta Propiedades.
- Ingresa una etiqueta para el nodo de Redshift, por ejemplo,
Opcional: Haz clic en Validate y soluciona los errores que se encuentren.
Haz clic en Close. Las propiedades se guardan y puedes continuar creando 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 | Sí | El nombre del nodo en tu canalización de datos. |
| Usar conexión | No | No | Busca una conexión a la fuente. Si Usar conexión está activado, no necesitas proporcionar credenciales. |
| Conexión | Sí | Sí | Nombre de la conexión que se usará. Si se selecciona Usar conexión, aparece este campo. La conexión proporciona información sobre la base de datos y la tabla. |
| Nombre del controlador JDBC | Sí | Sí | Nombre del controlador JDBC que se usará. Si no se selecciona Usar conexión, aparece este campo. |
| Host | Sí | Sí | El extremo del clúster de Amazon Redshift. Si Usar conexión no se selecciona, aparece este campo. |
| Puerto | Sí | No | Puerto en el que se ejecuta Redshift. Si no se selecciona Usar conexión, aparece este campo. |
| Nombre de usuario | Sí | No | Identidad del usuario para conectarse a la base de datos especificada. Si Usar conexión no se selecciona, aparece este campo. |
| Contraseña | Sí | No | Contraseña que se usará para conectarse a la base de datos especificada. Si Usar conexión no se selecciona, aparece este campo. |
| Argumentos de conexión | Sí | No | Una lista de pares clave-valor de cadenas arbitrarias como argumentos de conexión. Estos argumentos se pasan al controlador JDBC como argumentos de conexión para los controladores JDBC que podrían necesitar configuraciones adicionales. Si Usar conexión no se selecciona, aparece este campo. |
| Nombre de referencia | No | Sí | Identifica de forma única esta fuente para el linaje, anotar metadata y otros servicios. |
| Base de datos | Sí | Sí | Nombre de la base de datos de Redshift. Para seleccionar datos, haz clic en Browse database. |
| Import query | Sí | Sí | La consulta SELECT que se usará para importar datos de la
tabla especificada. |
| Bounding query | Sí | No | Consulta en SQL que muestra los valores mínimos y máximos del
splitBy campo. Por ejemplo,
SELECT MIN(id),MAX(id) FROM table. No es obligatorio si
numSplits se establece en uno. |
| Split column | Sí | No | Nombre del campo que se usa para generar divisiones. No es obligatorio si
numSplits se establece en uno. |
| Number of splits | Sí | No | Cantidad de divisiones que se generarán. |
| Tamaño | Sí | No | 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 la compensación 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) ] without time zone |
time |
time [ (p) ] with time zone |
string |
timestamp [ (p) ] without time zone |
timestamp |
timestamp [ (p) ] with time zone |
timestamp |
varbyte |
byte |
xml |
string |
Prácticas recomendadas
Se aplican las siguientes prácticas recomendadas cuando te conectas a un clúster de Redshift desde Google Cloud.
Usa listas de permisos de direcciones IP
Para evitar el acceso desde 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 los controles de acceso de Redshift, para acceder al clúster en Cloud Data Fusion, sigue estos pasos:
- Obtén las direcciones IP externas de los servicios o las máquinas que deben conectarse al clúster de Redshift, como la IP del servidor proxy (consulta Cómo ver direcciones IP).Google Cloud Para los clústeres de Managed Service para Apache Spark, obtén las direcciones IP de todos los nodos principales y secundarios.
Agrega las direcciones IP a una lista de entidades permitidas en los grupos de seguridad creando las reglas de entrada para las Google Cloud direcciones IP de la máquina.
Agrega las propiedades de conexión en Wrangler y pruébalas:
- Abre la instancia de Cloud Data Fusion en la interfaz web.
- Haz clic en Wrangler > Agregar conexión y crea la nueva conexión para Redshift.
- Ingresa todas las propiedades de conexión.
- Haz clic en Test Connection 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 manera uniforme en cada nodo, configura una consulta de límite en las propiedades del conector de fuente de Redshift.
- En tu canalización de Cloud Data Fusion en la página Studio, ve al nodo de Redshift y haz clic en Properties.
En las propiedades avanzadas, especifica lo siguiente:
- Ingresa la cantidad de divisiones que se crearán.
- Ingresa el tamaño de recuperación para cada división.
- Ingresa una consulta de límite para aplicar al clúster de Redshift de varios nodos.
- Ingresa el nombre del campo Split column.
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 ello, usa las siguientes configuraciones de propiedades:
En el campo Bounding query, ingresa la siguiente consulta:
SELECT MIN(id), MAX(id) FROM tableNameEn esta consulta,
ides el nombre de la columna en la que se aplican las divisiones.En el campo Split column, 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 divisiones en función de un tamaño de recuperación o al revés. En este ejemplo, ingresa lo siguiente.
En el campo Number of splits, ingresa
40. En este ejemplo, en el que la tabla tiene diez millones de registros, la creación de 40 divisiones da como resultado que cada división contenga 250,000 registros.En el campo Fetch size, ingresa
250,000.
¿Qué sigue?
- Consulta los complementos de Cloud Data Fusion.