Este tópico fornece as notas de lançamento dos recursos do product MaxCompute (maxcompute).
Julho de 2025
O MaxCompute Engine V52 foi lançado oficialmente em julho de 2025. Esta versão adiciona ou aprimora os seguintes recursos:
Mecanismo de data warehouse
-
Novos recursos
Suporte para tabelas particionadas por tempo de ingestão adicionado. Ao gravar dados, o sistema captura automaticamente o tempo de ingestão. Especifique uma função de cálculo de tempo, TRUNC_TIME, para calcular o valor da coluna de partição com base no tempo de ingestão. Isso permite o particionamento automático da tabela.
Podagem de partição aprimorada para tabelas com partição automática: A podagem de partição para tabelas com partição automática foi aprimorada. Agora, a podagem de partição suporta a aplicação de funções de tempo ou data em colunas de tempo ou data, como DATE, DATETIME, TIMESTAMP e TIMESTAMP_NTZ, durante a criação da tabela. O resultado calculado pode ser usado como condição de filtro para a podagem de partição. Para mais informações, consulte Podagem de partição para tabelas com partição automática usando funções de cálculo de tempo.
-
Linguagem e sintaxe
Suporte para GROUP BY ALL adicionado. Para usar este recurso, execute o comando
SET odps.sql.bigquery.compatible=true;e ative o modo de compatibilidade com BigQuery. Recomendamos que você ative este recurso no nível do projeto.-
A sintaxe DELETE FROM/UPDATE agora suporta aliases de tabela. Para isso, selecione um dos seguintes formatos:
DELETE FROM <table_name> [[as] alias] [WHERE <condition>];UPDATE <table_name> [[as] alias] SET ...;
-
Funções integradas
-
Funções de data e hora
A função ISOYEAR foi adicionada. Esta função extrai o ano ISO 8601 de uma entrada de data.
As funções CURRENT_DATE, CURRENT_TIMESTAMP_NTZ e CURRENT_MICROS foram adicionadas. Essas funções aceitam um parâmetro de fuso horário para retornar a hora atual no fuso horário especificado.
As seguintes funções de série temporal foram adicionadas: TIME_ADD, TIME_SUB, TIME_DIFF, TO_TIME, FORMAT_TIME e TIME_TRUNC. Essas funções suportam a construção, conversão e cálculo de valores de tempo representados como BIGINT em microssegundos.
As funções DATEADD, DATEDIFF, DATETRUNC e LAST_DAY agora suportam valores adicionais de date_part.
A função WEEKOFYEAR agora suporta valores adicionais de date_part e aceita parâmetros de entrada do tipo DATE.
-
Funções de rede
Um conjunto de NET funções de rede foi adicionado: NET_IP_FROM_STRING, NET_SAFE_IP_FROM_STRING, NET_IP_NET_MASK, NET_IPV4_TO_INT64, NET_IP_TO_STRING, NET_HOST, NET_PUBLIC_SUFFIX e NET_REG_DOMAIN. Essas funções processam dados relacionados à rede dos tipos STRING e BINARY. Elas suportam conversão de formato de endereço IP, análise de URL e recuperação de máscara de rede.
-
Funções de string
As seguintes funções de string foram adicionadas: BASE32, CODEPOINT_ARRAY, SAFE_CONVERT_BYTES_TO_STRING e FORMAT_STRING. Essas funções oferecem recursos flexíveis de processamento de dados binários e formatação de strings.
A função REGEXP_CONTAINS foi adicionada. Esta função verifica se uma string contém conteúdo que corresponde a uma string ou expressão regular especificada.
-
Funções matemáticas
As funções LEAST e GREATEST agora suportam parâmetros de entrada do tipo DATE.
-
Outros
Execute o comando
SET odps.sql.bigquery.compatible=true;e ative o modo de compatibilidade com BigQuery. Com isso, o comportamento de algumas funções muda:No modo de compatibilidade com BigQuery, a função SUBSTR lida com
position = 0de forma diferente.No modo de compatibilidade com BigQuery, a função REVERSE lida com dados do tipo STRING de forma diferente.
No modo de compatibilidade com BigQuery, a função STDDEV_SAMP se comporta de maneira diferente quando a janela contém apenas um valor expr não nulo.
No modo de compatibilidade com BigQuery, as funções REGEXP_EXTRACT e REGEXP_EXTRACT_ALL se comportam de maneira diferente quando o
patternnão tem grupos e você não especifica umgroup_id.
-
Abril de 2025
O MaxCompute Engine V51 foi lançado oficialmente em abril de 2025. Esta versão adiciona ou aprimora os seguintes recursos:
Mecanismo de data warehouse
-
Novos recursos
Suporte para tabelas com partição automática que usam funções de cálculo de tempo (AUTO PARTITION) adicionado. Você pode aplicar funções específicas de cálculo de tempo a colunas de tempo ou data, como DATE, DATETIME, TIMESTAMP e TIMESTAMP_NTZ, em uma tabela. O sistema calcula automaticamente o valor da coluna de partição com base no resultado e particiona a tabela. Para mais informações, consulte Tabelas com partição automática usando funções de cálculo de tempo.
-
Aprimoramentos de recursos
Ao reconstruir índices BloomFilter com o comando ALTER TABLE REBUILD INDEX, você pode reconstruir várias partições de uma só vez. Para mais informações, consulte Gerar um índice BloomFilter.
Para isso, crie visualizações materializadas com MAX_PT, agora suportado além de GETDATE. Durante a reescrita de consultas, o sistema usa o valor MAX_PT no momento da criação da visualização materializada. Isso melhora a cobertura da reescrita de consultas. Para mais informações, consulte Criar visualizações materializadas (com particionamento e clusterização).
-
Linguagem e sintaxe
A sintaxe STRUCT foi aprimorada para suportar
STRUCT(*). Essa sintaxe permite referenciar ou operar em todos os campos de um STRUCT em uma consulta. Para mais informações, consulte tipo de dados STRUCT.Execute o comando
SHOW HISTORY FOR TASKpara exibir o histórico de tarefas e especifique a posição inicial e o comprimento para controlar a saída com mais precisão. Para mais informações, consulte Exibir a lista de histórico de instâncias de tarefas periódicas agendadas automaticamente.
-
Funções integradas
A função TRUNC_TIME foi adicionada. Esta função trunca dados de data ou hora pela unidade de tempo especificada em datepart e retorna uma STRING. Para mais informações, consulte TRUNC_TIME.
As funções BOOL_AND e BOOL_OR foram adicionadas. BOOL_AND executa uma operação lógica AND em um conjunto de valores booleanos. BOOL_OR executa uma operação lógica OR. Ambas as funções retornam o resultado lógico de todos os valores de entrada não nulos. Para mais informações, consulte BOOL_AND e BOOL_OR.
A função BIT_COUNT foi adicionada. Esta função conta o número de 1s na representação binária de um valor de entrada. Para mais informações, consulte BIT_COUNT.
A função BITWISE_XOR_AGG foi adicionada. Esta função calcula o XOR bit a bit de todos os valores de entrada. Para mais informações, consulte BITWISE_XOR_AGG.
A função ANY foi adicionada. Esta função verifica se pelo menos um elemento na entrada é TRUE. Para mais informações, consulte ANY.
-
Atualizações de desempenho e parâmetros
O recurso Shuffle Removal foi ainda mais aprimorado. Shuffles desnecessários são eliminados quando você grava em tabelas Cluster para melhorar o desempenho do job.
Fevereiro de 2025
O MaxCompute SQL V50 foi lançado oficialmente em fevereiro de 2025. Os seguintes recursos foram adicionados ou aprimorados nesta versão:
Mecanismo de data warehouse
-
Formatos de dados
O tipo de dados DECIMAL suporta uma escala maior. O valor de escala de
DECIMAL(precision,scale)indica o número de dígitos na parte fracionária de um valor DECIMAL. Execute o comandoSET odps.sql.decimal2.extended.scale.enable=true;para estender o intervalo da escala de [0, 18] para [0, 38]. Para mais informações, consulte Versão 2.0 do tipo de dados. -
Aprimoramentos de sintaxe e funções
Sintaxe STRUCT aprimorada: A sintaxe STRUCT foi aprimorada para suportar a sintaxe de expressão STRUCT. Essa sintaxe permite usar expressões nomeadas para construir dados do tipo STRUCT. Isso fornece um novo método para construir esse tipo de dado complexo. Para mais informações, consulte tipo de dados STRUCT.
Função FIND_IN_SET aprimorada: Esta função pode ser usada para pesquisar uma substring dentro de uma string que consiste em substrings separadas por um delimitador e retornar a posição da substring. Em versões anteriores do MaxCompute SQL, apenas uma vírgula (,) podia ser usada como delimitador para esta função. Após o aprimoramento, especifique um delimitador personalizado do tipo STRING para esta função. Isso permite uma pesquisa de string mais flexível. Para mais informações, consulte FIND_IN_SET.
Nova função integrada GET_DATA_FROM_OSS: A função integrada
GET_DATA_FROM_OSSfoi adicionada. Use esta função e baixe dados de objetos do Object Storage Service (OSS) de Object Tables, retornando dados binários para computação subsequente. Para mais informações, consulte Consultar conteúdo de objeto para computação de negócios.
-
Aprimoramentos de recursos
MATERIALIZED CTE: Para uma expressão de tabela comum (CTE), defina a dica
MATERIALIZEna instruçãoSELECTpara armazenar em cache o resultado do cálculo da CTE em uma tabela temporária. Quando você acessar a CTE posteriormente, poderá ler o resultado diretamente do cache. Isso ajuda a evitar problemas de falta de memória (OOM) em cenários de aninhamento de CTE de várias camadas e melhora o desempenho da instrução CTE. Para mais informações, consulte MATERIALIZE CTE.Observabilidade aprimorada de índices de filtro Bloom: O tempo necessário para mesclar índices de filtro Bloom é exibido na guia SubStatusHistory do LogView. Para mais informações, consulte gerar índice Bloomfilter.
Visualizações materializadas aprimoradas: As visualizações materializadas foram aprimoradas. O recurso de reescrita de consultas das visualizações materializadas foi melhorado para suportar mais operadores, incluindo
DISTRIBUTED BY,ORDER BY,ORDER BY+LIMITeLIMIT. Para mais informações, consulte Reescrita de consultas de visualizações materializadas.
-
Atualização de desempenho e parâmetros
Para a função ARRAY_CONTAINS, o otimizador detecta automaticamente quando um parâmetro de entrada é processado pela função SPLIT em cenários de pesquisa de strings. Por padrão, o otimizador converte essa expressão em uma operação FIND_IN_SET equivalente e suporta tipos de separador adicionais. Por exemplo, ARRAY_CONTAINS(SPLIT(c1, '_'), c2) é otimizado automaticamente para
FIND_IN_SET(c1, c2, '_'), o que melhora o desempenho de execução deARRAY_CONTAINS.Por padrão, a capacidade Reshuffle Split é ativada para particionamento dinâmico, a fim de otimizar cenários que envolvem o remanejamento de partições dinâmicas. Essa otimização divide o fluxo de dados das partições dinâmicas e executa o remanejamento apenas em um único caminho, reduzindo assim a sobrecarga do remanejamento de partições dinâmicas e evitando o problema de excesso de arquivos pequenos.
A capacidade Shuffle Removal foi ainda mais aprimorada para eliminar shuffles desnecessários em cenários MAPJOIN e PARTITIONED HASH JOIN e melhorar o desempenho do job.
Data warehouse quase em tempo real
-
Lançamento do recurso CDC da Delta Table
O Change Data Capture (CDC) da Delta Table identifica e captura alterações nos dados da tabela do banco de dados. Ele registra operações de inserção, atualização e exclusão no nível da linha em tabelas incrementais da Delta Table. Isso captura efetivamente eventos de alteração de dados para a tabela. O CDC da Delta Table gera automaticamente tarefas de agendamento cronometrado ao criá-lo. Essas tarefas executam jobs assíncronos para gerar dados CDC. A sintaxe inclui
CREATE,ALTEReDROP. Você pode usar eventos CDC para impulsionar a computação incremental, a sincronização de dados e as camadas do data warehouse. Para mais informações, consulte CDC (visualização de convite). -
Novo recurso de objeto de fluxo de dados Stream
Um Stream é um objeto de fluxo de dados gerenciado pelo MaxCompute. Ele gerencia automaticamente a versão dos dados de consulta incremental para Delta Tables. Um Stream registra alterações DML, como inserções, atualizações e exclusões, em tabelas incrementais. Cada alteração inclui metadados para ajudar você a agir sobre os dados alterados. Para mais informações, consulte Objetos Stream.
-
Lançamento do recurso de tarefa de agendamento periódico
As tarefas de agendamento periódico do MaxCompute (Periodic Tasks) permitem que você personalize flexivelmente as políticas de agendamento. Elas executam lógica SQL para construir automaticamente pipelines de dados e simplificar fluxos de trabalho ETL. Combine tarefas com alterações de dados de tabela e leituras de fluxo e crie fluxos de trabalho ETL contínuos que processam dados alterados recentemente. Para mais informações, consulte Tarefas de agendamento periódico (visualização de convite).
-
Gravação de dados do Flink para Delta tables
As Delta tables do MaxCompute suportam vários métodos de gravação de dados. O MaxCompute fornece uma nova versão do plug-in conector do Flink. O plug-in conector do Flink pode ser usado para gravar dados do Flink em tabelas padrão do MaxCompute e Delta tables. Isso facilita a gravação de dados do Flink no MaxCompute. Além disso, os dados do Flink CDC podem ser gravados diretamente nas Delta tables. Para mais informações, consulte Gravar dados no MaxCompute com Flink.
Lakehouse e o recurso de tabela externa
Agora, crie uma tabela externa para analisar dados no formato PARQUET com suporte a conversões implícitas para alguns tipos de dados, como TINYINT, SMALLINT e DATETIME.
A função MAX_PT pode ser usada para consultar a partição mais recente de uma tabela externa. Você pode usar esta função para consultar a partição mais recente que contém dados em uma tabela externa do OSS. Para mais informações, consulte MAX_PT.
Novembro de 2024
A versão MaxCompute SQL V49 foi lançada oficialmente em novembro de 2024. Os seguintes recursos foram adicionados ou aprimorados nesta versão:
Mecanismo de data warehouse
-
Novos recursos
Índice de bitmap: Crie índices de bitmap para colunas de baixa cardinalidade nas quais muitos valores duplicados estão disponíveis. Em cenários de filtragem de intervalo, use índices de bitmap para filtrar mais de 50% dos dados no máximo. Isso ajuda a acelerar as consultas. Para mais informações, consulte Índice de bitmap (beta).
Índice de filtro Bloom: Um filtro Bloom é uma estrutura de dados probabilística eficiente. O MaxCompute permite que você use índices de filtro Bloom para executar consultas de ponto em grande escala. Isso reduz a varredura desnecessária de dados durante as consultas e melhora a eficiência e o desempenho geral das consultas. Para mais informações, consulte Índice Bloomfilter (Beta).
-
Funções integradas
A função integrada JSON_EXPLODE foi adicionada. Esta função é usada para expandir cada elemento em um array JSON ou objeto JSON em várias linhas. Para mais informações, consulte JSON_EXPLODE.
-
Aprimoramento de linguagem
Use a cláusula OR REPLACE na instrução CREATE TABLE e atualize os metadados de uma tabela. Se a tabela de destino já existir, você pode atualizar diretamente os metadados da tabela. Não exclua uma tabela existente antes de recriá-la. Isso simplifica o uso de instruções SQL e melhora a facilidade de uso. Para mais informações, consulte Criar e excluir tabelas.
Comentários de linha única e de várias linhas podem ser usados em scripts MaxCompute SQL para melhorar a legibilidade do código. Para mais informações, consulte Comentários SQL.
O SUBQUERY_MAPJOIN HINT é suportado. Subconsultas específicas, como SCALAR, IN e EXISTS, são transformadas em operações JOIN durante a execução. Especifique explicitamente dicas para usar o algoritmo MAPJOIN e melhorar a eficiência da execução. Para mais informações, consulte SUBQUERY_MAPJOIN HINT.
-
Novos parâmetros
O parâmetro original
odps.stage.mapper.split.sizesuporta as configurações gerais no estágio de mapa. Você pode usar o novo sinalizador para dividir tabelas flexivelmente por linha ou simultaneidade. O novo sinalizador pode melhorar a simultaneidade de tarefas em cenários onde o tamanho de cada linha na tabela é pequeno e as cargas de trabalho das operações de computação subsequentes são pesadas. Para mais informações, consulte Parâmetros de sinalizador.Se uma consulta acessar repetidamente a mesma tabela particionada, execute o comando
set odps.optimizer.merge.partitioned.table=true;e ative a mesclagem de operações de acesso na tabela particionada pelo sistema. Isso minimiza as operações de I/O na tabela particionada e melhora o desempenho da consulta. Para mais informações, consulte Parâmetros de sinalizador.
-
Mudanças de comportamento
O recurso de otimização de partição dinâmica para estática melhora o desempenho da consulta para todas as operações DML e é ativado por padrão. Essa otimização afeta o comportamento das operações UPDATE, DELETE e MERGE INTO. Para mais informações, consulte Anúncio sobre a otimização de partição dinâmica para estática.
IA de big data (MaxFrame)
-
O LogView 2.0 é compatível com o MaxFrame e suporta os seguintes recursos relacionados ao MaxFrame. Para mais informações, consulte Usar o LogView 2.0 para visualizar jobs do MaxFrame.
Além disso, visualize os registros de execução e as durações de execução de todos os grafos acíclicos direcionados (DAGs) enviados nas sessões do MaxFrame.
Também visualize interativamente a sequência de execução, o tempo de execução, a topologia do operador e as relações de status dos sub-DAGs em cada DAG.
Por fim, visualize as configurações, o status, o uso de memória e a utilização da CPU de cada instância filha.
O MaxFrame oferece um service de empacotamento automático para simplificar o gerenciamento de pacotes de terceiros no desenvolvimento de jobs baseados em Python. Este service permite que você declare arquivos de dependência externa necessários durante o desenvolvimento do job. Quando o job está em execução, os arquivos de dependência são automaticamente empacotados e integrados ao ambiente de desenvolvimento do job. Você não precisa fazer upload manual dos pacotes. Isso simplifica o gerenciamento de pacotes. Para mais informações, consulte Serviço de empacotamento automatizado.
Lakehouse e o recurso de tabela externa
-
A compactação ZSTD é suportada durante a gravação de dados em uma tabela externa Parquet com base na interface JNI.
Antes da introdução deste recurso, apenas arquivos não compactados e arquivos Snappy podiam ser gravados ao criar uma tabela externa Parquet. Após a introdução deste recurso, arquivos compactados usando o algoritmo de compactação ZSTD também podem ser gravados neste cenário. Isso ajuda a melhorar a taxa de compactação e o desempenho de leitura e gravação, alcançando maior custo-benefício. Para mais informações, consulte Tabelas externas ORC.
-
CsvStorageHandler e OpenCsvSerde são fornecidos para suportar mais tipos de dados para leituras e gravações de dados.
O MaxCompute fornece os padrões de leitura e gravação OpenCsvSerde, que é chamado de CsvSerde e é compatível com o Hive. Os tipos de dados suportados pelo OpenCsvSerde são tipos de dados compatíveis com o Hive. O MaxCompute também fornece os padrões personalizados de leitura e gravação CsvStorageHandler, que é chamado de CsvHandler. Os tipos de dados suportados pelo CsvStorageHandler são os tipos de dados suportados na edição de tipo de dados MaxCompute V2.0. Os tipos de dados do CsvSerde e do CsvHandler não são totalmente iguais, mas ainda têm a interseção de vários tipos de dados básicos, como INT e FLOAT. No entanto, ainda existem muitas diferenças no comportamento de análise desses tipos de dados. Um padrão unificado ainda não foi formulado. Por exemplo, para o tipo FLOAT, o CsvSerde define o processamento de valores especiais como INF. No entanto, o CsvHandler não processa valores especiais e apenas tenta usar o método parseFloat para análise. Como resultado, os comportamentos para analisar tipos de dados básicos podem não ser os mesmos quando você usa tanto o CsvHandler quanto o CsvSerde.
O CsvStorageHandler suporta vários tipos de dados básicos, como BOOLEAN, TIMESTAMP, DATE e DATETIME. Isso permite exportar dados de todos os tipos de dados do MaxCompute para o OSS e armazenar os dados no formato CSV. Após a execução da replicação entre regiões com base no OSS, os dados podem ser restaurados para o MaxCompute.
-
As tabelas externas do OSS permitem que você execute autenticação STS assumindo uma função do RAM.
Este recurso foi otimizado para permitir que você acesse o MaxCompute assumindo uma função do RAM (sem necessidade de pares AccessKey) ou acesse o MaxCompute a partir de outros services de cloud assumindo uma função do RAM em cenários onde tabelas externas estão envolvidas. Antes da otimização deste recurso, ao assumir uma função nos cenários anteriores, o sistema não conseguia obter as informações do usuário da função do RAM porque as tabelas externas continham a função do RAM integrada às propriedades da tabela para o MaxCompute acessar services pares. Como resultado, você não podia acessar as tabelas externas assumindo a função do RAM. Após a otimização deste recurso, o uso de funções do RAM e o acesso contínuo com base em funções do RAM não são afetados negativamente, mesmo que tabelas externas estejam envolvidas. Para mais informações, consulte Tabelas externas ORC.
-
O otimizador suporta estatísticas de tabelas de estatísticas temporárias durante consultas para identificar tabelas pequenas e otimizar planos de consulta.
Como os dados consultados usando tabelas externas são armazenados em um data lake externo, o sistema não estabelece metadados localmente para garantir a abertura dos dados. Nesse caso, se você não coletar estatísticas com antecedência, o otimizador usa políticas conservadoras, o que diminui a eficiência da consulta. O otimizador agora suporta estatísticas de tabelas de estatísticas temporárias durante consultas para identificar tabelas pequenas. Isso permite que você use proativamente vários métodos para otimizar planos de consulta. Os métodos incluem a execução de operações hash join, a otimização da ordem de junção, a redução de muitas operações de shuffle e o encurtamento dos pipelines executados. Para mais informações, consulte Tabela externa Paimon.