Datos semiestructurados en Amazon Redshift - Amazon Redshift

Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del 1 de noviembre de 2025. Si desea utilizar las UDF de Python, créelas antes de esa fecha. Las UDF de Python existentes seguirán funcionando con normalidad. Para obtener más información, consulte la publicación del blog.

Datos semiestructurados en Amazon Redshift

Mediante el uso de la compatibilidad con datos semiestructurados de Amazon Redshift, puede ingerir y almacenar datos semiestructurados en los almacenes de datos de Amazon Redshift. Mediante el uso del tipo de datos SUPER y del lenguaje PartiQL, Amazon Redshift amplía la capacidad de almacenamiento de datos para integrarse a orígenes de datos SQL y NoSQL. De esta forma, Amazon Redshift permite realizar análisis eficientes de los datos relacionales y semiestructurados almacenados, como JSON. Para obtener información sobre la integración de Amazon Redshift con PartiQL, consulte PartiQL: un lenguaje de consulta compatible con SQL para Amazon Redshift.

Amazon Redshift ofrece dos formas de compatibilidad con datos semiestructurados: el tipo de datos SUPER y Amazon Redshift Spectrum.

Puede consultar datos semiestructurados ingiriéndolos en Amazon Redshift y almacenándolos en el tipo de datos SUPER o utilizar Amazon Redshift Spectrum para consultar los datos almacenados en Amazon S3.

Prácticas recomendadas para trabajar con datos semiestructurados

Tenga en cuenta las siguientes prácticas recomendadas para trabajar con datos semiestructurados.

  • Le recomendamos que establezca las opciones de configuración enable_case_sensitive_super_attribute y enable_case_sensitive_identifier en true cuando trabaje con datos SUPER. Para obtener más información, consulte enable_case_sensitive_super_attribute y enable_case_sensitive_identifier.

  • Utilice el comando COPY para cargar datos de los buckets de Amazon S3 en columnas SUPER de Amazon Redshift.

  • Utilice la escritura dinámica de PartiQL y la semántica laxa para ejecutar consultas ad hoc en valores de datos SUPER sin tener que imponer un esquema antes de realizar la consulta. Para obtener información sobre la escritura dinámica, consulte Escritura dinámica. Para obtener información sobre la semántica laxa, consulte Semántica laxa.

  • Triture los datos semiestructurados y sin esquema en vistas materializadas con PartiQL si planea consultar los datos con frecuencia. Cuando lleva a cabo el análisis de los datos fragmentados, la organización en columnas de las vistas materializadas de Amazon Redshift proporciona un mejor rendimiento. Además, los usuarios y las herramientas de inteligencia empresarial (BI) que requieren un esquema convencional para los datos capturados pueden utilizar vistas (ya sea materializadas o virtuales) como la presentación del esquema convencional de los datos.

    Después de que las vistas materializadas de PartiQL hayan extraído los datos encontrados en JSON o SUPER en vistas materializadas convencionales organizadas en columnas, podrá consultar las vistas materializadas. Para obtener información sobre vistas materializadas, consulte Vistas materializadas en Amazon Redshift. Para obtener más información acerca de cómo funciona el tipo de datos SUPER con las vistas materializadas, consulte Tipo de datos SUPER y vistas materializadas.

Conceptos para el uso del tipo de datos SUPER

A continuación, encontrará algunos conceptos acerca del tipo de datos SUPER de Amazon Redshift.

Comprensión de qué es el tipo de datos SUPER en Amazon Redshift: SUPER es un tipo de datos de Amazon Redshift que permite el almacenamiento de matrices y estructuras sin esquema que contienen escalares de Amazon Redshift y, posiblemente, matrices y estructuras anidadas. El tipo de datos SUPER puede almacenar de forma nativa diferentes formatos de datos semiestructurados, como JSON o datos procedentes de fuentes orientadas a documentos. Puede agregar una nueva columna SUPER para almacenar datos semiestructurados y escribir consultas que accedan a la columna SUPER, junto con las columnas escalares habituales. Para obtener más información acerca del tipo de datos SUPER, consulte Tipo SUPER.

Ingesta de datos JSON sin esquema como SUPER: con el tipo flexible de datos semiestructurados SUPER, Amazon Redshift puede recibir e ingerir datos JSON sin esquema en columnas con el tipo de datos SUPER. Por ejemplo, puede ingerir el valor JSON [10.5, “first”] en una columna de tipo de datos SUPER mediante el comando COPY. La columna tendría un valor SUPER de [10.5, ‘first’]. También puede ingerir JSON con Función JSON_PARSE. Tanto COPY como json_parse capturan datos JSON usando semántica de análisis estricta de manera predeterminada. También puede construir valores SUPER, incluidos matrices y estructuras, mediante los propios datos de la base de datos.

La columna SUPER no requiere modificaciones de esquema mientras se ingieren las estructuras flexibles de JSON sin esquema. Por ejemplo, cuando analiza una secuencia de clics, inicialmente almacena en la columna SUPER estructuras de “clic” con atributos de “IP” y “tiempo”. Puede agregar un atributo “ID de cliente” sin cambiar el esquema para capturar dichos cambios.

El formato nativo utilizado para el tipo de datos SUPER es un formato binario que requiere menos espacio que el valor JSON en su forma textual. Esto permite una ingesta y un procesamiento de tiempo de ejecución más rápidos de los valores SUPER en la consulta.

Consulta de los datos SUPER con PartiQL: PartiQL es una extensión compatible con versiones anteriores de SQL-92 que muchos servicios de AWS utilizan actualmente. Con el uso de PartiQL, los constructos de SQL conocidos combinan sin problemas el acceso a los datos SQL tabulares clásicos y a los datos semiestructurados de SUPER. Puede realizar la navegación de objetos y matrices y quitar el anidamiento de las matrices. PartiQL amplía el lenguaje SQL estándar para expresar y procesar declarativamente datos anidados y multivalor.

PartiQL es una extensión de SQL en la que los datos anidados y sin esquema de las columnas SUPER son ciudadanos de primera clase. PartiQL no requiere que se verifique el tipo de todas las expresiones de consulta durante el tiempo de compilación de consultas. Este enfoque permite que las expresiones de consulta que contienen el tipo de datos SUPER se escriban dinámicamente durante la ejecución de la consulta cuando se accede a los tipos reales de datos dentro de las columnas SUPER. Además, PartiQL funciona en un modo laxo, en el cual las inconsistencias de tipo no causan errores, sino que devuelven valores nulos. La combinación del procesamiento de consultas sin esquema y laxo hace que PartiQL sea ideal para las aplicaciones de extracción, carga y transformación (ELT) en las que la consulta SQL evalúa los datos JSON que se ingieren en las columnas SUPER.

Para obtener más información sobre PartiQL para Amazon Redshift, consulte PartiQL: un lenguaje de consulta compatible con SQL para Amazon Redshift. Para obtener información sobre la escritura dinámica, consulte Escritura dinámica. Para obtener más información sobre el procesamiento de consultas laxo, consulte Semántica laxa.

Integración a Redshift Spectrum: Amazon Redshift admite varios aspectos de PartiQL al ejecutar consultas de Redshift Spectrum a través de JSON, Parquet y otros formatos que tienen datos anidados. Redshift Spectrum solo admite datos anidados que tengan esquemas. Por ejemplo, con Redshift Spectrum puede declarar que los datos JSON tienen el atributo nested_schemaful_example en el esquema ARRAY<STRUCT<a:INTEGER, b:DECIMAL(5,2)>>. El esquema de este atributo determina que los datos siempre contengan una matriz que tenga una estructura con el entero a y el decimal b. Si los datos cambian para incluir más atributos, el tipo también cambia. Por el contrario, el tipo de datos SUPER no requiere ningún esquema. Puede almacenar matrices con elementos de estructura que tengan diferentes atributos o tipos. Además, los valores se pueden almacenar fuera de las matrices.

Consideraciones sobre el uso de datos de tipo SUPER

Cuando trabaje con datos SUPER, tenga presente lo siguiente:

Para obtener más información acerca de las configuraciones de SUPER, consulte Configuraciones SUPER.