Contexto
A edição de tipos de dados do MaxCompute V1.0 é uma das três edições de tipos de dados do MaxCompute.
Essa edição destina-se a projetos antigos do MaxCompute cujos componentes dependentes não oferecem suporte à edição de tipos de dados V2.0.
Configuração do projeto
Um projeto do MaxCompute usa a edição de tipos de dados V1.0 quando as três propriedades a seguir estão definidas:
setproject odps.sql.type.system.odps2=false; -- Disable MaxCompute V2.0 data types.
setproject odps.sql.decimal.odps2=false; -- Disable the DECIMAL type in MaxCompute V2.0.
setproject odps.sql.hive.compatible=false; -- Disable Hive-compatible data types.
Tipos de dados suportados
Tipos de dados básicos
Todos os tipos de dados básicos aceitam valores NULL.
Data type | Constant example | Description |
BIGINT |
|
|
DOUBLE |
| Ponto flutuante binário de 64 bits. |
DECIMAL |
| Tipo numérico exato. Precisão padrão: |
STRING |
|
|
DATETIME |
|
|
BOOLEAN |
|
|
Observações de uso
-
Constantes
Constantes inteiras: O sistema as processa como BIGINT por padrão. Se uma constante exceder o intervalo do BIGINT (por exemplo,
1,000,000,000,000,000,000,000,000), o processamento ocorrerá como DOUBLE. Por exemplo, o valor1emSELECT 1 + a;é do tipo BIGINT.-
Constantes DECIMAL: Ao inserir uma constante DECIMAL em um campo, use o formato com o sufixo
BD. Exemplo:INSERT INTO test_tb(a) VALUES (3.5BD); Concatenação de STRING: Concatene constantes STRING diretamente. Por exemplo,
abcexyzresultam emabcxyz.
Colunas de chave de partição: As colunas de chave de partição em tabelas particionadas devem ser obrigatoriamente do tipo STRING.
Funções integradas: A edição de tipos de dados V1.0 não permite o uso de funções integradas com parâmetros de tipos de dados do MaxCompute V2.0.
Diferenças em relação à edição de tipos de dados do MaxCompute V2.0
-
As operações LIMIT, ORDER BY, DISTRIBUTE BY, SORT BY e CLUSTER BY apresentam comportamentos distintos entre as edições de tipos de dados V1.0 e V2.0 do MaxCompute.
O exemplo a seguir usa
SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT 10;.Edição
Instrução equivalente
MaxCompute V1.0
SELECT * FROM t1 UNION ALL SELECT * FROM (SELECT * FROM t2 LIMIT 10) t2;MaxCompute V2.0
SELECT * FROM (SELECT * FROM t1 UNION ALL SELECT * FROM t2) t LIMIT 10; -
A expressão IN também se comporta de maneira diferente nas edições de tipos de dados V1.0 e V2.0.
Considere o exemplo
a IN (1, 2, 3).Edição
Comportamento
MaxCompute V1.0
Todos os valores dentro dos parênteses devem ser do mesmo tipo.
MaxCompute V2.0
Os valores dentro dos parênteses podem ser convertidos implicitamente para o mesmo tipo.
Tipos de dados complexos
Tipos de dados complexos permitem aninhamento mútuo. Para consultar as funções integradas relacionadas a tipos complexos, veja ARRAY, MAP e STRUCT.
|
Tipo de dado |
Definição |
Construtor |
|
ARRAY |
|
|
|
MAP |
|
|
|
STRUCT |
|
|