O Amazon Redshift não permitirá mais a criação de funções definidas pelo usuário (UDFs) do Python a partir de 1.º de novembro de 2025. Se quiser usar UDFs do Python, você deve criá-las antes dessa data. As UDFs do Python existentes continuarão a funcionar normalmente. Para ter mais informações, consulte a publicação de blog
Dados semiestruturados no Amazon Redshift
Usando suporte a dados semiestruturados no Amazon Redshift, você pode ingerir e armazenar dados semiestruturados em seus data warehouses do Amazon Redshift. Usando o tipo de dados SUPER e a linguagem PartiQL, o Amazon Redshift expande a capacidade de data warehouse para integrar com fontes de dados SQL e NoSQL. Dessa forma, o Amazon Redshift permite análises eficientes em dados armazenados relacionais e semiestruturados, como JSON. Para ter mais informações sobre a integração do Amazon Redshift com PartiQL, consulte PartiQL: uma linguagem de consultas compatível com SQL para o Amazon Redshift.
O Amazon Redshift oferece duas formas de suporte a dados semiestruturados: o tipo de dados SUPER e o Amazon Redshift Spectrum.
Você pode consultar dados semiestruturados ingerindo-os no Amazon Redshift e armazenando-os no tipo de dados SUPER ou usar o Amazon Redshift Spectrum para consultar os dados armazenados no Amazon S3.
Práticas recomendadas para trabalhar com dados semiestruturados
Considere as seguintes práticas recomendadas ao trabalhar com dados semiestruturados.
Recomendamos que você defina as opções de configuração
enable_case_sensitive_super_attributeeenable_case_sensitive_identifiercomo verdadeiras ao trabalhar com dados SUPER. Para obter mais informações, consulte enable_case_sensitive_super_attribute e enable_case_sensitive_identifier.Use o comando COPY para carregar dados de buckets do Amazon S3 nas colunas SUPER do Amazon Redshift.
Use a digitação dinâmica PartiQL e semântica lax para executar consultas ad hoc em valores de dados SUPER sem a necessidade de impor um esquema antes da consulta. Para obter informações sobre digitação dinâmica, consulte Digitação dinâmica. Para obter mais informações sobre semântica lax, consulte Semântica lax.
Destrua dados sem esquemas e semiestruturados em visualizações materializadas usando o PartiQL se você planeja consultar os dados com frequência. Quando você executa análises nos dados destruídos, a organização colunar das exibições materializadas do Amazon Redshift oferece melhor performance. Além disso, usuários e ferramentas de business intelligence (BI) que exigem um esquema convencional para dados ingeridos podem usar visualizações (materializadas ou virtuais) como a apresentação convencional do esquema dos dados.
Depois que suas visões materializadas do PartiQL extraírem os dados encontrados no JSON ou SUPER em visões materializadas colunares convencionais, você pode consultar as visões materializadas. Para obter informações sobre como consultar visões materializadas, consulte Visões materializadas no Amazon Redshift. Para obter mais informações sobre como o tipo de dados SUPER funciona com visões materializadas, consulte Tipo de dados SUPER com visões materializadas.
Conceitos para uso do tipo de dados SUPER
A seguir, você pode encontrar alguns conceitos de tipo de dados SUPER do Amazon Redshift.
Entenda qual é o tipo de dados SUPER no Amazon Redshift — OSUPER é um tipo de dados do Amazon Redshift que permite o armazenamento de arrays sem esquema e estruturas que contêm escalares do Amazon Redshift e possivelmente arrays e estruturas aninhadas. O tipo de dados SUPER pode armazenar nativamente diferentes formatos de dados semiestruturados, como JSON ou dados provenientes de fontes orientadas a documentos. Você pode adicionar uma nova coluna SUPER para armazenar dados semiestruturados e escrever consultas que acessam a coluna SUPER, juntamente com as colunas escalares usuais. Para obter mais informações sobre tipos de dados SUPER, consulte Tipo SUPER.
Ingerir JSON sem esquema em SUPER — Com o tipo de dados SUPER semiestruturado flexível, o Amazon Redshift pode receber e ingerir JSON sem esquema em colunas com um tipo de dados SUPER. Por exemplo, você pode ingerir o valor JSON [10.5, “first”] em uma coluna de tipo de dados SUPER usando o comando COPY. A coluna teria um valor SUPER de [10.5, ‘first’]. Você também pode ingerir JSON usando Função JSON_PARSE. COPY e json_parse ingerem JSON usando semântica de análise estrita por padrão. Você também pode construir valores SUPER, incluindo arrays e estruturas, usando os próprios dados do banco de dados.
A coluna SUPER não requer modificações de esquema ao ingerir as estruturas flexíveis de JSON sem esquema. Por exemplo, ao analisar um fluxo de cliques, você inicialmente armazena na coluna SUPER estruturas “clique” com atributos “IP” e “time”. Você pode adicionar um atributo “id do cliente” sem alterar seu esquema para ingerir tais alterações.
O formato nativo usado para o tipo de dados SUPER é um formato binário que requer menos espaço do que o valor JSON em sua forma textual. Isso permite uma ingestão mais rápida e processamento de tempo de execução de valores SUPER na consulta.
Consultar dados SUPER com PartiQL: PartiQL é uma extensão compatível com versões anteriores do SQL-92 que muitos serviços da AWS atualmente usam. Com o uso do PartiQL, construções SQL familiares combinam perfeitamente o acesso aos dados SQL clássicos e tabulares e aos dados semiestruturados do SUPER. Você pode executar a navegação de objetos e arrays e desaninhar arrays. O PartiQL estende a linguagem SQL padrão para expressar declarativamente e processar dados aninhados e multivalorizados.
PartiQL é uma extensão do SQL onde os dados aninhados e sem esquema de colunas SUPER são cidadãos de primeira classe. O PartiQL não requer que todas as expressões de consulta sejam verificadas durante o tempo de compilação da consulta. Essa abordagem permite que expressões de consulta que contêm o tipo de dados SUPER sejam digitadas dinamicamente durante a execução da consulta quando os tipos reais de dados dentro das colunas SUPER são acessados. Além disso, o PartiQL opera em um modo lax onde as inconsistências de tipo não causam falhas, mas retornam null. A combinação de processamento de consultas sem esquema e lax torna o PartiQL ideal para aplicativos de extração, carregamento, transformação (ELT) em que sua consulta SQL avalia os dados JSON que são ingeridos nas colunas SUPER.
Para obter mais informações sobre PartiQL para Amazon Redshift, consulte PartiQL: uma linguagem de consultas compatível com SQL para o Amazon Redshift. Para obter informações sobre digitação dinâmica, consulte Digitação dinâmica. Para obter mais informações sobre o processamento de consulta lax, consulte Semântica lax.
Integrar ao Redshift Spectrum — O Amazon Redshift oferece suporte a vários aspectos do PartiQL ao executar consultas do Redshift Spectrum em JSON, Parquet e outros formatos que têm dados aninhados. O Redshift Spectrum suporta apenas dados aninhados que possuem esquemas. Por exemplo, com o Redshift Spectrum, você pode declarar que seus dados JSON têm o atributo nested_schemaful_example no esquema ARRAY<STRUCT<a:INTEGER, b:DECIMAL(5,2)>>. O esquema deste atributo determina que os dados sempre contém uma matriz, que contém uma estrutura com inteiro a e decimal b. Se os dados forem alterados para incluir mais atributos, o tipo também será alterado. Em contraste, o tipo de dados SUPER não requer esquema. Você pode armazenar arrays com elementos de estrutura que têm diferentes atributos ou tipos. Além disso, os valores podem ser armazenados fora de arrays.
Considerações sobre o uso de dados do tipo SUPER
Ao trabalhar com dados SUPER, considere o seguinte:
Use o driver JDBC versão 2.x, o driver ODBC versão 2.x ou o driver do Amazon Redshift Python versão 2.0.872 ou posterior. A versão 1.x do driver ODBC não tem suporte.
Para obter mais informações sobre drivers JDBC, consulte “Configurar uma conexão para a versão 2.x do driver JDBC para o Amazon Redshift no Guia de gerenciamento do Amazon Redshift.
Para obter mais informações sobre drivers ODBC, consulte “Configurar uma conexão para a versão 2.x do driver ODBC para o Amazon Redshift no Guia de gerenciamento do Amazon Redshift.
Para obter mais informações sobre drivers Python, consulte Conector do Amazon Redshift Python no Guia de gerenciamento do Amazon Redshift.
Para obter mais informações sobre as configurações SUPER, consulte Configurações SUPER.