Todos os produtos
Search
Central de documentação

MaxCompute:Visão geral das funções integradas

Última atualização: Jun 26, 2026

O MaxCompute oferece um amplo conjunto de funções integradas que atendem à maioria das necessidades de processamento de dados. Esta página descreve os tipos de funções disponíveis e as notas de uso aplicáveis a todas elas.

Tipos de função

As funções integradas do MaxCompute dividem-se em três categorias principais:

  • Funções escalares: operam em uma única linha e retornam um valor por invocação. Incluem funções de data e hora, matemáticas, de string, de criptografia, de rede, ARRAY, MAP, STRUCT, JSON e de processamento de dados não estruturados.

  • Funções de agregação: recebem várias linhas de entrada e retornam um único valor de saída.

  • Funções de janela: operam em um subconjunto de linhas dentro de uma coluna de janela definida e retornam um valor por linha.

Para obter o mapeamento entre as funções integradas do MaxCompute e funções equivalentes de código aberto, consulte Mapeamento entre funções integradas do MaxCompute, Hive, MySQL e Oracle.

Tipo de função

Descrição

Funções de data e hora

Manipulam dados DATE, DATETIME e TIMESTAMP: somam ou subtraem datas, calculam diferenças, extraem campos e convertem formatos.

Funções matemáticas

Executam operações numéricas em dados BIGINT, DOUBLE, DECIMAL e FLOAT: convertem bases, arredondam números e geram valores aleatórios.

Funções de janela

Calculam agregações, classificações, deslocamentos e amostras dentro de uma coluna de janela especificada.

Funções de agregação

Agregam vários registros de entrada em um único valor de saída: somas, médias, mínimo/máximo, parâmetros agregados e concatenação de strings.

Funções HyperLogLog++

Funções de agregação aproximada que removem duplicatas e aceleram consultas em grandes conjuntos de dados com uso mínimo de memória.

Funções de string

Manipulam dados STRING: truncam, substituem, buscam, alteram maiúsculas/minúsculas e convertem formatos. Consulte Limites das funções de string.

Funções ARRAY

Manipulam dados ARRAY: constroem, removem duplicatas, agregam, classificam e mesclam arrays.

Funções MAP

Manipulam dados MAP: extraem pares chave-valor, constroem mapas e mesclam mapas.

Funções STRUCT

Manipulam dados STRUCT: expandem arrays STRUCT e constroem structs.

Funções JSON

Manipulam dados JSON: extraem valores de campo, geram objetos ou arrays, inserem ou atualizam dados e tratam estruturas de dados complexas. Consulte Limites das funções JSON.

Funções de criptografia

Criptografam e descriptografam dados de tabela STRING e BINARY.

Funções de rede

Processam dados STRING e BINARY relacionados a rede: convertem formatos de endereço IP, analisam URLs e obtêm máscaras de rede.

Funções de processamento de dados não estruturados

Conectam-se a dados não estruturados e seus metadados armazenados em data warehouses ou data lakes de várias formas.

Outras funções

Funções adicionais para diversos cenários de negócios.

Notas de uso

Observe os pontos abaixo ao usar funções integradas:

  • Parâmetros de entrada: o tipo, a quantidade e o formato dos parâmetros de entrada devem obedecer à sintaxe especificada. Caso contrário, o MaxCompute não consegue analisar a função e a instrução SQL falha.

  • Tipos de dados 2,0: se uma função integrada usar tipos de dados 2,0 (TINYINT, SMALLINT, INT, FLOAT, VARCHAR, TIMESTAMP ou BINARY), ative-os antes de executar a função. Do contrário, ocorrerá um erro. Ative os tipos de dados 2,0 em um dos seguintes níveis:

    • Nível de sessão (aplica-se apenas à instrução SQL atual): adicione a seguinte instrução antes da sua instrução SQL e envie-as juntas.

      SET odps.sql.type.system.odps2=true;
    • Nível de projeto (aplica-se a todas as instruções SQL subsequentes; entra em vigor em 10 a 15 minutos): o proprietário do projeto executa o comando a seguir.

      SETPROJECT odps.sql.type.system.odps2=true;
  • Conversões implícitas de tipo desativadas: quando os tipos de dados 2,0 estão ativados, as seguintes conversões implícitas são desabilitadas para evitar perda de precisão ou erros: STRING para BIGINT, STRING para DATETIME, DOUBLE para BIGINT, DECIMAL para DOUBLE e DECIMAL para BIGINT. Use a função CAST para conversões explícitas ou desative os tipos de dados 2,0.

  • Conflitos de nome entre UDF e função integrada: se uma função definida pelo usuário (UDF) tiver o mesmo nome de uma função integrada, a UDF terá precedência. Por exemplo, se existir uma UDF chamada CONCAT em um projeto, o sistema chamará a UDF em vez da função integrada CONCAT. Para chamar a função integrada, adicione o prefixo :: ao nome da função:

    SELECT ::CONCAT('ab', 'c');
  • Propriedades globais: os resultados das funções integradas podem variar conforme as propriedades globais configuradas para o projeto MaxCompute. Execute SETPROJECT; para visualizar as propriedades globais atuais.

Limites das funções JSON

Requisitos de versão do SDK

  • Java SDK V0.44.0 ou posterior

  • PyODPS V0.11.4.1 ou posterior

Limites de operação de tabela

  • Não é possível adicionar uma coluna JSON a uma tabela.

  • Tabelas clusterizadas não têm suporte.

  • Tabelas do tipo Delta Table não têm suporte.

Limites de operação SQL

  • Operações de comparação no tipo JSON não têm suporte.

  • As cláusulas ORDER BY e GROUP BY não podem ser usadas no tipo JSON.

  • Uma coluna do tipo JSON não pode ser usada como chave de JOIN.

Precisão de dados

  • A parte inteira de um NUMBER JSON é armazenada como BIGINT. Ocorre overflow se o valor estiver fora do intervalo do BIGINT.

  • A parte decimal de um NUMBER JSON é armazenada como DOUBLE. Pode haver perda de precisão durante a conversão.

Limites de caracteres

O caractere Unicode \u0000 não tem suporte em strings usadas para gerar dados JSON.

Compatibilidade de mecanismo

Outros mecanismos, como o Hologres, não conseguem ler o tipo de dados JSON de uma tabela MaxCompute.

Suporte a UDF

UDFs Java e Python não suportam o tipo JSON.

Profundidade de aninhamento

O tipo de dados JSON permite aninhamento de até 20 níveis.

Ferramentas de desenvolvimento compatíveis

As ferramentas compatíveis incluem o cliente MaxCompute (odpscmd), MaxCompute Studio e DataWorks. Ecossistemas externos, como o Dataphin, não têm suporte. Confirme a compatibilidade antes de usar o tipo de dados JSON com qualquer sistema externo.

Ao usar o odpscmd, observe o seguinte:

  • Atualize o cliente para a versão V0.46.5 ou posterior. Versões anteriores não executam o comando DESC json_table nem baixam dados JSON usando o Tunnel.

  • No arquivo conf\odps_config.ini, localizado no caminho de instalação do cliente, defina use_instance_tunnel como false. Caso contrário, as consultas falharão.

Limites das funções de string

As seguintes funções de string suportam apenas caracteres em inglês:

  • TRIM / RTRIM / LTRIM: o parâmetro trimChars aceita somente caracteres em inglês.

  • REVERSE: suporta apenas caracteres em inglês no modo Hive.

  • SOUNDEX: converte exclusivamente caracteres em inglês.

  • TOLOWER: transforma letras maiúsculas do inglês em minúsculas.

  • TOUPPER: transforma letras minúsculas do inglês em maiúsculas.

  • INITCAP: coloca a primeira letra de cada palavra em inglês em maiúscula e as demais em minúscula.