O MaxCompute oferece três edições de tipos de dados: MaxCompute V1.0, MaxCompute V2.0 e compatível com Hive. Um conjunto de parâmetros no nível do projeto controla cada edição. Este tópico descreve cada edição, explica quando utilizá-la e mostra como visualizar e alterar a edição ativa.
Escolha uma edição de tipos de dados
A edição ativa de tipos de dados afeta:
Os tipos de dados disponíveis nas tabelas
O comportamento das instruções DML e das funções integradas
A compatibilidade dos componentes de desenvolvimento conectados ao MaxCompute
Antes de definir uma edição, leia as diferenças entre a edição de tipos de dados MaxCompute V2.0 e outras edições para compreender o impacto dessa escolha.
A tabela a seguir resume quando utilizar cada edição:
|
Edição |
Quando usar |
|
MaxCompute V1.0 |
Seu projeto é um projeto antigo do MaxCompute cujos componentes dependentes não suportam a edição de tipos de dados MaxCompute V2.0. |
|
MaxCompute V2.0 |
O projeto não contém dados gerados antes de abril de 2020 e todos os componentes dependentes suportam a edição de tipos de dados MaxCompute V2.0. |
|
Compatível com Hive |
Indicado para projetos migrados do Hadoop, desde que os componentes dependentes suportem a edição de tipos de dados MaxCompute V2.0. |
Referência das edições de tipos de dados
Cada edição corresponde a uma combinação fixa de três parâmetros de projeto:
|
Parâmetro |
Descrição |
Valores válidos |
|
|
Ativa ou desativa a edição de tipos de dados MaxCompute V2.0. |
|
|
|
Ativa ou desativa o tipo DECIMAL no MaxCompute V2.0. |
|
|
|
Ativa ou desativa a edição de tipos de dados compatível com Hive. Nesta edição, alguns tipos de dados e instruções SQL mantêm compatibilidade com o Hive. |
|
Edição de tipos de dados MaxCompute V1.0
setproject odps.sql.type.system.odps2=false; -- Disable the MaxCompute V2.0 data type edition.
setproject odps.sql.decimal.odps2=false; -- Disable the DECIMAL type in MaxCompute V2.0.
setproject odps.sql.hive.compatible=false; -- Disable the Hive-compatible data type edition.
Edição de tipos de dados MaxCompute V2.0
setproject odps.sql.type.system.odps2=true; -- Enable the MaxCompute V2.0 data type edition.
setproject odps.sql.decimal.odps2=true; -- Enable the DECIMAL data type in MaxCompute V2.0.
setproject odps.sql.hive.compatible=false; -- Disable the Hive-compatible data type edition.
Edição de tipos de dados compatível com Hive
setproject odps.sql.type.system.odps2=true; -- Enable the MaxCompute V2.0 data type edition.
setproject odps.sql.decimal.odps2=true; -- Enable the DECIMAL data type in MaxCompute V2.0.
setproject odps.sql.hive.compatible=true; -- Enable the Hive-compatible data type edition.
Para obter informações sobre quais serviços e componentes da Alibaba Cloud são compatíveis com cada edição, consulte Compatibilidade entre componentes e tipos de dados.
Visualize a edição de tipos de dados de um projeto
Execute o seguinte comando no cliente do MaxCompute:
setproject;
Verifique os valores de odps.sql.type.system.odps2, odps.sql.decimal.odps2 e odps.sql.hive.compatible na saída para determinar a edição ativa.
Altere a edição de tipos de dados de um projeto
Para alterar a edição de tipos de dados, você deve ser o proprietário do projeto ou ter a função Super_Administrator.
Execute os seguintes comandos no cliente do MaxCompute, no console do DataWorks ou no MaxCompute Studio:
-- View the data type edition of a project.
setproject;
-- Enable or disable the MaxCompute V2.0 data type edition.
setproject odps.sql.type.system.odps2=true/false;
-- Enable or disable the DECIMAL type in MaxCompute V2.0.
setproject odps.sql.decimal.odps2=true/false;
-- Enable or disable the Hive-compatible data type edition.
setproject odps.sql.hive.compatible=true/false;
Em um nó ODPS SQL do DataStudio no console do DataWorks, os comandos setproject não podem ser executados isoladamente. Execute-os juntamente com uma instrução SQL SELECT ou INSERT.
Resolva problemas de compatibilidade ao trocar de edição
Problema: O projeto usa V2.0, mas alguns componentes exigem V1.0.
Opções:
Altere a edição no nível do projeto para MaxCompute V1.0.
-
Mantenha o projeto na V2.0 e defina uma substituição no nível de sessão para os componentes afetados:
set odps.sql.type.system.odps2=false;NotaEnvie este comando junto com os outros comandos na mesma sessão. O comando deve estar em letras minúsculas.
Problema: Algumas instruções SQL exigem V1.0, enquanto outras dependem de recursos da V2.0, como current_timestamp.
Opções:
Separe as instruções dependentes da V1.0 em sessões distintas e configure a edição de tipos de dados no nível de sessão como V1.0 para essas sessões.
Reescreva as instruções SQL para remover a dependência de versão.
Problema: O projeto usava V2.0 inicialmente, mas precisa reverter para V1.0.
Antes de fazer a troca, converta as colunas afetadas nas tabelas que utilizam tipos de dados da V2.0:
TINYINT, SMALLINT ou INT → BIGINT
CHAR ou VARCHAR → STRING
Como alternativa, crie uma nova tabela com tipos de dados da V1.0 e use a função CAST para migrar os dados da tabela V2.0 para ela.