Funções JSON - Amazon Redshift

Funções JSON

nota

Recomendamos usar as seguintes funções para trabalhar com JSON:

Com o JSON_PARSE, basta converter o texto JSON em um valor do tipo SUPER uma vez na ingestão, depois disso, é possível operar com os valores SUPER. O Amazon Redshift analisa valores SUPER com maior eficiência do que VARCHAR, que é a saída para as funções JSON baseadas em texto. Para ter mais informações sobre como trabalhar com o tipo de dado SUPER, consulte Ingestão e consulta de dados semiestruturados no Amazon Redshift.

Quando você precisa armazenar um conjunto relativamente pequeno de pares de valores de chave, você pode economizar espaço armazenando os dados em formato JSON. Como strings JSON podem ser armazenados em uma única coluna, o uso de JSON pode ser mais eficiente que armazenar seus dados em formato tabular. Por exemplo, suponha que você tenha uma tabela esparsa onde você precise ter muitas colunas para representar totalmente todos os atributos possíveis, mas a maioria dos valores da coluna são NULL para qualquer linha ou coluna específica. Ao usar JSON para armazenamento, você pode ser capaz de armazenar os dados para uma linha em pares de valor:chave em uma única string JSON e eliminar as colunas da tabela esparsamente preenchida.

Além disso, é possível facilmente modificar strings JSON para armazenar pares de chave-valor quando o esquema JSON muda sem a necessidade de adicionar colunas a uma tabela.

Recomendamos usar JSON frugalmente. JSON não é uma boa escolha para armazenar conjuntos de dados maiores porque, ao armazenar dados díspares em uma única coluna, o JSON não usa a arquitetura de armazenamento de coluna do Amazon Redshift. Embora o Amazon Redshift ofereça suporte a funções JSON em colunas CHAR e VARCHAR, recomendamos usar SUPER para processar dados no formato de serialização JSON. SUPER usa uma representação sem esquema pós-análise que pode consultar dados hierárquicos de forma eficiente. Para obter mais informações sobre tipos de dados SUPER, consulte Ingestão e consulta de dados semiestruturados no Amazon Redshift.

JSON usa strings de texto codificadas por UTF-8, portanto strings JSON podem ser armazenadas como tipos de dados CHAR ou VARCHAR.

As strings JSON devem ser adequadamente formatadas como JSON de acordo com as seguintes regras:

  • O nível JSON raiz pode ser um objeto JSON ou uma matriz JSON. Um objeto JSON é um conjunto desordenado de pares de valor:chave separados por vírgula cercado por chaves.

    Por exemplo, {"one":1, "two":2}

  • Uma matriz JSON é um conjunto ordenado de valores separados por vírgula cercado por parênteses.

    Um exemplo é o seguinte: ["first", {"one":1}, "second", 3, null]

  • Matrizes JSON usam um índice baseado em zero; o primeiro elemento em uma matriz fica na posição 0. Em um par de valores-chave JSON, a chave é uma string entre aspas duplas.

  • Um valor JSON pode ser qualquer um dos seguintes:

    • Objeto JSON

    • array

    • string

      • Representado com o uso de aspas duplas.

    • número

      • Inclui números inteiros, decimais e flutuantes.

    • boolean

    • null

  • Objetos vazios e matrizes vazias são valores JSON válidos.

  • Os campos JSON diferenciam maiúsculas e minúsculas.

  • O espaço em branco entre elementos estruturais JSON (tal como { }, [ ]) é ignorado.

As funções JSON do Amazon Redshift o comando COPY do Amazon Redshift usam os mesmos métodos para trabalhar com dados JSON formatados. Para obter mais informações sobre como trabalhar com JSON, consulte COPY no formato JSON.