

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Ingesta de streaming a una vista materializada
<a name="materialized-view-streaming-ingestion"></a>

En este tema se describe cómo utilizar las vistas materializadas para obtener un acceso rápido a los datos de streaming.

 La ingesta de streaming proporciona una ingesta de datos de alta velocidad y baja latencia de [Amazon Kinesis Data Streams](https://aws.amazon.com//kinesis/data-streams/) o [Amazon Managed Streaming para Apache Kafka](https://aws.amazon.com//msk/) a una base de datos de Amazon Redshift aprovisionada o a una base de datos de Amazon Redshift sin servidor. Los datos llegan a una vista materializada de Redshift que está configurada para el propósito. Eso da como resultado un acceso rápido a datos externos. La ingesta de streaming reduce el tiempo de acceso a los datos y reduce el costo de almacenamiento. Puede configurarlo para el clúster de Amazon Redshift o para el grupo de trabajo de Amazon Redshift sin servidor, con una pequeña recopilación de comandos SQL. Después de la configuración, cada actualización de la vista materializada, puede ingerir cientos de megabytes de datos por segundo. 

## Cómo fluyen los datos de un servicio de streaming a Redshift
<a name="materialized-view-streaming-ingestion-data-flow"></a>

 Ayuda a entender cómo funciona la ingesta de streaming y los objetos de base de datos que se utilizan en el proceso. Los datos fluyen directamente de un proveedor de flujo de datos a un clúster aprovisionado de Amazon Redshift o a un grupo de trabajo de Amazon Redshift sin servidor. No hay una zona de aterrizaje temporal, como un bucket de Amazon S3. El clúster aprovisionado o grupo de trabajo es el consumidor de flujos. En la base de datos de Redshift, los datos leídos del flujo aterrizan en una vista materializada. Los datos se procesan a medida que llegan. Por ejemplo, los valores JSON se pueden consumir y asignar a las columnas de datos de una vista materializada, mediante SQL. Cuando la vista materializada se actualiza, Redshift consume datos de las particiones asignadas de datos de Kinesis o particiones de Kafka hasta que la vista se actualiza con el flujo. 

 Los casos de uso para la ingesta de streaming de Amazon Redshift implican datos que se generan continuamente y que se deben procesar en un periodo corto o *latencia*, desde su generación. Esto se denomina comúnmente análisis *casi en tiempo real*. Los orígenes pueden incluir dispositivos TI, dispositivos de telemetría del sistema y datos de secuencias de clics de un sitio web o una aplicación muy activos.

## Prácticas recomendadas de análisis de datos para mejorar el rendimiento
<a name="materialized-view-streaming-recommendations"></a>

Al configurar la ingesta de streaming, hay opciones sobre cómo puede analizar los datos entrantes. Las prácticas pueden incluir la lógica empresarial o el formateo a medida que llegan los datos. Sugerimos las siguientes prácticas recomendadas para ayudarle a evitar errores o la pérdida de datos. Estas se derivan de pruebas internas y ayudan a los clientes a solucionar problemas de configuración y análisis.
+ **Extracción de valores de los datos transmitidos**: si utiliza la función [JSON\_EXTRACT\_PATH\_TEXT](https://docs.aws.amazon.com/redshift/latest/dg/JSON_EXTRACT_PATH_TEXT.html) en la definición de vista materializada para analizar o *destruir* JSON transmitido, puede afectar considerablemente al rendimiento y a la latencia. La explicación es que, por cada columna extraída con JSON\_EXTRACT\_PATH\_TEXT, se vuelve a analizar el JSON entrante. Después de esto, se produce la conversión de tipos de datos, el filtrado y los cálculos de lógica empresarial. Esto significa, por ejemplo, que si extrae 10 columnas de los datos JSON, cada registro JSON se analiza 10 veces, lo que incluye lógica adicional. Esto se traduce en una mayor latencia de ingesta. Un enfoque alternativo que recomendamos es utilizar la [función JSON\_PARSE](https://docs.aws.amazon.com/redshift/latest/dg/JSON_PARSE.html) para convertir los registros JSON al tipo de datos SUPER de Redshift. Una vez que los datos transmitidos lleguen a la vista materializada, use PartiQL para extraer cadenas individuales de la representación de SUPER de los datos JSON. Para obtener más información, consulte [Consulta de datos semiestructurados](https://docs.aws.amazon.com/redshift/latest/dg/query-super.html).

   Además, tenga en cuenta que JSON\_EXTRACT\_PATH\_TEXT tiene un máximo de tamaño de datos de 64 KB. Por lo tanto, si algún registro JSON tiene más de 64 KB, al procesarlo con JSON\_EXTRACT\_PATH\_TEXT se produce un error. 
+  **Asignación de un flujo de Amazon Kinesis Data Streams o un tema de Amazon MSK a una vista materializada múltiple**: no recomendamos crear varias vistas materializadas para ingerir datos desde un solo flujo o tema. Esto se debe a que cada vista materializada crea un consumidor para cada porción del flujo o la partición de Kinesis Data Streams en el tema de Kafka. Como resultado, puede producirse una limitación o superación del rendimiento del flujo o el tema. También puede suponer un costo mayor, ya que se ingieren los mismos datos varias veces. Cuando configure la ingesta de streaming, le recomendamos que cree una vista materializada para cada flujo o tema. 

  Si el caso de uso requiere ingerir datos de un flujo de KDS o un tema de MSK en varias vistas materializadas, antes de hacerlo, consulte el [Blog de macrodatos de AWS](https://aws.amazon.com/blogs/big-data/), específicamente la publicación [Best practices to implement near-real-time analytics using Amazon Redshift Streaming Ingestion with Amazon MSK](https://aws.amazon.com/blogs/big-data/best-practices-to-implement-near-real-time-analytics-using-amazon-redshift-streaming-ingestion-with-amazon-msk/).

## Comportamiento y tipos de datos de ingesta de streaming
<a name="materialized-view-streaming-ingestion-limitations"></a>

En la siguiente tabla se describen los detalles del comportamiento técnico y los límites de tamaño de los distintos tipos de datos. Le recomendamos que se familiarice con ellos antes de configurar una vista materializada para la ingesta de streaming.


| Característica o comportamiento  | Descripción  | 
| --- | --- | 
| Límite de longitud de los temas de Kafka  | No es posible utilizar un tema de Kafka con un nombre de más de 128 caracteres (sin incluir las comillas). Para obtener más información, consulte [Nombres e identificadores](https://docs.aws.amazon.com/redshift/latest/dg/r_names.html). | 
| Actualizaciones incrementales e instrucciones JOIN en una vista materializada | La vista materializada debe ser mantenible de forma incremental. El recálculo completo no es posible para Kinesis ni Amazon MSK porque, de forma predeterminada, no conservan el historial de flujos o temas más allá de 24 horas o 7 días. Puede establecer periodos de retención de datos más largos en Kinesis o Amazon MSK. No obstante, esto puede suponer un mayor mantenimiento y costo. Además, las instrucciones JOIN no se admiten actualmente en vistas materializadas creadas en un flujo de Kinesis, o en un tema de Amazon MSK. Después de crear una vista materializada en su flujo o tema, puede crear otra para unir su vista materializada de streaming a otras vistas materializadas, tablas o vistas.<br />Para obtener más información, consulte [REFRESH MATERIALIZED VIEW](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-refresh-sql-command.html). | 
| Análisis de registros | La ingesta de streaming de Amazon Redshift no admite el análisis de registros agregados por Kinesis Producer Library ([Conceptos clave de KPL: agregación](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-kpl-concepts.html#kinesis-kpl-concepts-aggretation)). Los registros agregados se ingieren, pero se almacenan como datos de búfer de protocolo binario. Para obtener más información, consulte [Búferes de protocolo](https://developers.google.com/protocol-buffers). Según cómo inserte los datos en Kinesis, es posible que tenga que desactivar esta característica.  | 
| Valores duplicados en los encabezados de Kafka | El cliente consumidor de streaming de Amazon Redshift para temas de Kafka procedentes de Amazon MSK, Confluent o Apache Kafka no admite valores duplicados en los encabezados de los temas de Kafka. | 
| Descompresión  | `VARBYTE` no admite la descompresión. Debido a esto, los registros que contienen datos comprimidos no se pueden consultar en Redshift. Descomprima los datos antes de agregarlos al flujo de Kinesis o al tema de Amazon MSK. | 
| Tamaño de registro máximo  | El tamaño máximo de cualquier registro que Amazon Redshift puede ingerir desde un servicio de transmisión es de 16 777 216 bytes (16 MiB), el tamaño máximo que admite el tipo de datos VARBYTE en Amazon Redshift. Sin embargo, Kinesis solo admite un tamaño de registro máximo de 1 048 576 bytes (1 MiB). Amazon MSK admite un tamaño de registro máximo de 16 777 216 bytes (16 MiB). Por lo tanto, de forma predeterminada, las vistas materializadas de transmisión de Amazon Redshift creadas en un flujo de datos de Kinesis establecerán el tamaño de la columna de tipo de datos de VARBYTE en 1 048 576 bytes (1 MiB) y las vistas materializadas de transmisión de Amazon Redshift creadas en un tema de Amazon MSK establecerán el tamaño de la columna de datos de VARBYTE en 16 777 216 bytes (16 MiB). Para obtener más información sobre los límites de tamaño de Kinesis, consulte [Cuotas y límites](https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html) en la Guía para desarrolladores de Amazon Kinesis Data Streams.  | 
| Registros de errores  | En cada caso en que no se pueda realizar la ingesta de un registro en Redshift porque el tamaño de los datos supera el máximo, se omitirá ese registro. La actualización de la vista materializada se sigue realizando correctamente en este caso y se escribe un segmento de cada registro de error en la tabla del sistema [SYS\_STREAM\_SCAN\_ERRORS](r_SYS_STREAM_SCAN_ERRORS.md). Los errores que son resultado de la lógica empresarial, como un error en un cálculo o un error resultante de una conversión de tipo, no se omiten. Pruebe la lógica cuidadosamente antes de agregarla a la definición de la vista materializada. | 
| Conectividad privada de varias VPC de Amazon MSK | La [conectividad privada de varias de Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html) no es compatible actualmente con la ingesta de streaming de Redshift. Como alternativa, puede utilizar el [emparejamiento de VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) para conectar VPC o [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) para conectar VPC y redes en las instalaciones a través de un hub central. Cualquiera de estas opciones permite a Redshift comunicarse con un clúster de Amazon MSK o con Amazon MSK sin servidor en otra VPC. | 
| Actualización automática, uso y activación | Las consultas de actualización automática para una vista o vistas materializadas se tratan como cualquier otra carga de trabajo de usuario. La actualización automática carga los datos del flujo a medida que llegan.<br />La actualización automática se puede activar explícitamente para una vista materializada creada para la ingesta de streaming. Para ello, especifique `AUTO REFRESH` en la definición de la vista materializada. La actualización manual es la opción predeterminada. Para especificar la actualización automática de una vista materializada existente para la ingesta de streaming, puede ejecutar `ALTER MATERIALIZED VIEW` para activarla. Para obtener más información, consulte [CREATE MATERIALIZED VIEW](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-create-sql-command.html) o [ALTER MATERIALIZED VIEW](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_MATERIALIZED_VIEW.html). | 
| Ingesta de streaming y Amazon Redshift sin servidor | Las instrucciones de instalación y configuración que se aplican a la ingesta de streaming de Amazon Redshift en un clúster aprovisionado también se aplican a la ingesta de streaming en Amazon Redshift sin servidor. Es importante para especificar el nivel necesario de RPU para respaldar la ingesta de streaming con actualización automática y otras cargas de trabajo. Para obtener más información, consulte [Facturación de Amazon Redshift sin servidor](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-billing.html). | 
| Nodos de Amazon Redshift en una zona de disponibilidad diferente que el clúster de Amazon MSK  | Cuando configure la ingesta de streaming, Amazon Redshift intenta conectarse a un clúster de Amazon MSK en la misma zona de disponibilidad, si el reconocimiento de bastidor está habilitado para Amazon MSK. Si todos los nodos se encuentran en zonas de disponibilidad distintas a la del clúster de Amazon Redshift, puede incurrir en costos de transferencia de datos entre zonas de disponibilidad. Para evitarlo, mantenga al menos un nodo del clúster de agentes de Amazon MSK en la misma zona de disponibilidad que el clúster o grupo de trabajo aprovisionados de Redshift.  | 
| Actualización de la ubicación de inicio | Después de crear una vista materializada, su actualización inicial comienza desde `TRIM_HORIZON` de un flujo de Kinesis o desde el desplazamiento 0 de un tema de Amazon MSK. | 
| Formatos de datos |  Los formatos de datos admitidos se limitan a aquellos que se pueden convertir desde `VARBYTE`. Para obtener más información, consulte [Tipo VARBYTE](r_VARBYTE_type.md) y [Operadores VARBYTE](r_VARBYTE_OPERATORS.md).  | 
| Agregación de registros a una tabla  | Puede ejecutar `ALTER TABLE APPEND` para agregar filas a una tabla de destino desde una vista materializada de origen existente. Esto solo funciona si la vista materializada está configurada para la ingesta de streaming. Para obtener más información, consulte [ALTER TABLE APPEND](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE_APPEND.html).<br />Las operaciones `ALTER TABLE APPEND` mantienen bloqueos exclusivos cuando se ejecutan en vistas materializadas de streaming de Amazon Redshift conectadas a cualquiera de las siguientes opciones:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/redshift/latest/dg/materialized-view-streaming-ingestion.html) | 
| Ejecución de TRUNCATE o DELETE  | Puede eliminar registros de una vista materializada que se usa para la ingesta de streaming, mediante lo siguiente:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/redshift/latest/dg/materialized-view-streaming-ingestion.html)<br />Las operaciones `TRUNCATE` y `DELETE` mantienen bloqueos exclusivos cuando se ejecutan en vistas materializadas de streaming de Amazon Redshift conectadas a cualquiera de las siguientes opciones:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/redshift/latest/dg/materialized-view-streaming-ingestion.html) | 
| Identificadores sin minúsculas  | Al crear vistas materializadas de streaming en temas de Amazon Managed Streaming para Apache Kafka o flujos de datos de Kinesis que contengan identificadores que no estén en minúsculas, es posible que se produzcan errores en las actualizaciones automáticas. Para resolver este problema, siga uno de estos pasos:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/redshift/latest/dg/materialized-view-streaming-ingestion.html)La configuración de `enable_case_sensitive_identifier` en el nivel de usuario no es suficiente para las actualizaciones automáticas, pero funcionará en las actualizaciones manuales.<br />Para obtener más información sobre los identificadores que distinguen mayúsculas de minúsculas, consulte [enable\_case\_sensitive\_identifier](r_enable_case_sensitive_identifier.md). | 
| Idempotencia | Amazon Redshift garantiza que cada registro se procese exactamente una vez al ingerir datos de orígenes de streaming. Esta garantía se aplica a dos tipos de orígenes: Amazon Kinesis (con identificadores de flujo, partición y número de secuencia) y Apache Kafka (con identificadores de tema, partición y desplazamiento), incluidas Amazon Managed Streaming para Apache Kafka (Amazon MSK) y Confluent Cloud. | 