Todos os produtos
Search
Central de documentação

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

Última atualização: Oct 10, 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 as funções integradas.

Tipos de funções

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

  • Funções escalares — operam sobre uma única linha e retornam um valor por invocação. Incluem funções de data e hora, matemáticas, de string, criptografia, rede, ARRAY, MAP, STRUCT, JSON e 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 sobre um subconjunto de linhas dentro de uma coluna de janela definida e retornam um valor por linha.

Para o mapeamento entre as funções integradas do MaxCompute e as funções equivalentes de código aberto, consulte Mapeamento entre as 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 — somar ou subtrair datas, calcular diferenças, extrair campos e converter formatos.

Visão geral das funções matemáticas

Executam operações numéricas sobre dados BIGINT, DOUBLE, DECIMAL e FLOAT — converter bases, arredondar números e gerar 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 de agregação e concatenação de strings.

Funções HyperLogLog++

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

Visão geral das funções de string

Manipulam dados STRING — truncar, substituir, pesquisar, alterar maiúsculas/minúsculas e converter formatos. Consulte Limites das funções STRING.

Funções ARRAY

Manipulam dados ARRAY — construir, deduplicar, agregar, ordenar e mesclar arrays.

Funções MAP

Manipulam dados MAP — extrair pares chave-valor, construir mapas e mesclar mapas.

Funções STRUCT

Manipulam dados STRUCT — expandir arrays STRUCT e construir structs.

Funções JSON

Manipulam dados JSON — extrair valores de campos, gerar objetos ou arrays, inserir ou atualizar dados e lidar com 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 à rede — converter formatos de endereço IP, analisar URLs e obter 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 diversas formas.

Funções de geografia

Utilizadas para construir, transformar e analisar dados geoespaciais do tipo GEOGRAPHY. Essas funções permitem criar objetos geográficos como pontos, linhas e polígonos a partir de coordenadas de latitude/longitude ou texto WKT/WKB, extrair propriedades como coordenadas e caixas delimitadoras, determinar relações espaciais entre objetos geográficos como contenção, interseção e cobertura, e calcular distâncias entre objetos geográficos.

Outras funções

Funções adicionais para cenários comerciais diversos.

Funções VECTOR

Suporta o processamento do tipo de dados VECTOR para realizar computação de distância vetorial e busca vetorial, sendo aplicável a cenários como busca semântica, aprimoramento de modelos de linguagem grandes (LLM) e IA generativa.

Notas de uso

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

  • Parâmetros de entrada: O tipo, a quantidade e o formato dos parâmetros de entrada devem estar de acordo com a sintaxe especificada. Caso contrário, o MaxCompute não conseguirá interpretar a função e a instrução SQL falhará.

  • Tipos de dados 2.0: Se uma função integrada utiliza tipos de dados 2.0 — TINYINT, SMALLINT, INT, FLOAT, VARCHAR, TIMESTAMP ou BINARY — ative os tipos de dados 2.0 antes de executar a função. Caso contrário, um erro será reportado. 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 seguinte comando.

      SETPROJECT odps.sql.type.system.odps2=true;
  • Conversões implícitas de tipo desabilitadas: Quando os tipos de dados 2.0 estão ativados, as seguintes conversões implícitas de tipo 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 nomes entre UDF e funções integradas: Se uma função definida pelo usuário (UDF) tiver o mesmo nome de uma função integrada, a UDF terá prioridade. 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 de acordo com as propriedades globais configuradas no 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 há suporte para 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ção SQL

  • Não há suporte para operações de comparação com o tipo JSON.

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

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

Precisão dos dados

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

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

Limites de caracteres

O caractere Unicode não é suportado em strings usadas para gerar dados JSON.

Compatibilidade de engine

Outras engines — por exemplo, o Hologres — não conseguem ler o tipo de dados JSON de uma tabela do MaxCompute.

Suporte a UDF

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

Profundidade de aninhamento

O tipo de dados JSON pode ser aninhado em até 20 níveis de profundidade.

Ferramentas de desenvolvimento suportadas

As ferramentas suportadas incluem o cliente MaxCompute (odpscmd), o MaxCompute Studio e o DataWorks. Ecossistemas externos como o Dataphin não são suportados. 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 conseguem executar o comando DESC json_table nem baixar dados JSON usando o Tunnel.

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

Limites das funções STRING

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

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

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

  • SOUNDEX: Converte apenas caracteres em inglês.

  • TOLOWER: Converte letras maiúsculas em inglês para minúsculas.

  • TOUPPER: Converte letras minúsculas em inglês para maiúsculas.

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