O MaxCompute oferece suporte a quatro tipos de dados complexos: ARRAY, MAP, STRUCT e JSON. Este tópico descreve as funções e os recursos do tipo de dados JSON.
Índice
|
Função |
Recursos |
|
Retorna um tipo ARRAY, MAP ou STRUCT a partir de uma string JSON, conforme o formato de saída especificado. |
|
|
Extrai uma string de uma string JSON por meio de um caminho especificado. |
|
|
Transforma um objeto JSON, mesmo que vazio, em um array JSON contendo esse objeto. |
|
|
Verifica se um documento JSON contém um elemento JSON específico. |
|
|
Verifica a existência de um JSONPath especificado em um documento JSON. |
|
|
Expande cada elemento de um array ou objeto JSON em várias linhas. |
|
|
Extrai dados de uma string ou tipo de dados JSON com base em um JSONPath especificado. |
|
|
Converte um tipo de dados JSON para string. A saída não vem formatada por padrão. |
|
|
Insere um valor JSON em uma posição específica de um documento JSON. |
|
|
Retorna o comprimento dos dados JSON em um caminho especificado. |
|
|
Gera um objeto JSON a partir de pares chave-valor. |
|
|
Converte uma string para o tipo de dados JSON. Retorna erro se a string não estiver em formato JSON válido. |
|
|
Formata uma string JSON para melhorar a legibilidade mediante a adição de quebras de linha e espaços. |
|
|
Substitui um valor existente ou adiciona um novo valor em um caminho especificado de um documento JSON. |
|
|
Remove todos os campos ou elementos com valor |
|
|
Extrai strings de uma string JSON padrão para um grupo de chaves especificado. |
|
|
Retorna o nome do tipo de um valor JSON. |
|
|
Remove aspas de uma string JSON. |
|
|
Verifica se uma string é um JSON válido. |
|
|
Converte um tipo de dados complexo especificado em uma string JSON. |
Notas de uso
-
Requisitos de versão do SDK
Há suporte apenas para Java SDK V0.44.0 e versões posteriores.
Há suporte apenas para PyODPS V0.11.4.1 e versões posteriores.
-
Limites de operações de tabela
Não é possível adicionar uma coluna JSON a uma tabela.
Não há suporte para tabelas clusterizadas.
Não há suporte para tabelas do tipo Delta Table.
-
Limites de operações SQL
Não há suporte para operações de comparação no tipo JSON.
As cláusulas
ORDER BYeGROUP BYnão são permitidas para o tipo JSON. Também não é permitido usar uma coluna do tipo JSON como chave deJOIN.
-
Precisão de dados
A parte inteira de um NUMBER JSON é armazenada como BIGINT. Ocorre overflow se o inteiro exceder o intervalo do BIGINT.
A parte decimal de um NUMBER JSON é armazenada como DOUBLE. Pode haver perda de precisão na conversão da parte decimal para DOUBLE.
Limites de caracteres: Não há suporte para o caractere Unicode
\u0000em strings usadas para gerar dados JSON.Compatibilidade de mecanismo: Outros mecanismos, como o Hologres, não leem o tipo de dados JSON ao acessar a tabela.
UDFs Java e Python não oferecem suporte ao tipo JSON.
O tipo de dados JSON aceita aninhamento de até 20 níveis.
-
Ferramentas de desenvolvimento
As ferramentas de desenvolvimento compatíveis incluem o cliente MaxCompute (odpscmd), MaxCompute Studio e DataWorks. Ecossistemas externos, como Dataphin, não têm suporte. Para usar o tipo de dados JSON com um sistema externo, confirme a compatibilidade antes de começar. Ao usar o cliente odpscmd, atente-se ao seguinte:
Atualize o cliente para a versão V0.46.5 ou posterior. Caso contrário, não será possível executar o comando
DESC json_tablenem baixe dados JSON pelo Tunnel.No arquivo
conf\odps_config.ini, localizado no diretório de instalação do cliente, defina o parâmetrouse_instance_tunnelcomofalse. Caso contrário, as consultas falharão.
Referências
Para obter mais informações sobre o tipo de dados JSON, consulte JSON data type.