SnowConvert - RedShift - Tipos de dados¶
Conversão de tipos de dados atuais para o RedShift no SnowConvert AI.
O Snowflake oferece suporte à maioria dos tipos de dados SQL mais básicos (com algumas restrições) para uso em colunas, variáveis locais, expressões, parâmetros e quaisquer outros locais apropriados/adequados.
Tipos de dados numéricos ¶
Redshift |
Snowflake |
Notas |
|---|---|---|
INT |
INT |
INT do Snowflake é um alias de NUMBER. |
INT2 |
SMALLINT |
INT2 do Snowflake é um alias de NUMBER. |
INT4 |
INTEGER |
INT4 do Snowflake é um alias de NUMBER. |
INT8 |
INTEGER |
INT8 do Snowflake é um alias de NUMBER. |
INTEGER |
INTEGER |
INTEGER do Snowflake é um alias de NUMBER. |
BIGINT |
BIGINT |
BIGINT do Snowflake é um alias de NUMBER. |
DECIMAL |
DECIMAL |
DECIMAL do Snowflake é um alias de NUMBER. |
DOUBLE PRECISION |
DOUBLE PRECISION |
DOUBLEPRECISION do Snowflake é um alias de FLOAT. |
NUMERIC |
NUMERIC |
NUMERIC do Snowflake é um alias de NUMBER. |
SMALLINT |
SMALLINT |
SMALLINT do Snowflake é um alias de NUMBER. |
FLOAT |
FLOAT |
O Snowflake utiliza números de ponto flutuante de precisão dupla (64 bits) IEEE 754. |
FLOAT4 |
FLOAT4 |
FLOAT4 do Snowflake é um alias de FLOAT. |
FLOAT8 |
FLOAT8 |
FLOAT8 do Snowflake é um alias de FLOAT. |
REAL |
REAL |
REAL do Snowflake é um alias de FLOAT. |
Tipos de caracteres ¶
Redshift |
Snowflake |
Notas |
|---|---|---|
VARCHAR |
VARCHAR |
VARCHAR contém caracteres Unicode UTF-8. Se nenhum comprimento for especificado, o padrão é o comprimento máximo permitido (16.777.216). |
CHAR |
CHAR |
CHAR do Snowflake é um alias de VARCHAR. |
CHARACTER |
CHARACTER |
CHARACTER do Snowflake é um alias de VARCHAR. |
NCHAR |
NCHAR |
NCHAR do Snowflake é um alias de VARCHAR. |
BPCHAR |
VARCHAR |
O tipo de dados BPCHAR não é suportado no Snowflake. VARCHAR é usado em seu lugar. Para obter mais informações, consulte SSC-FDM-PG0002. |
NVARCHAR |
NVARCHAR |
NVARCHAR do Snowflake é um alias de VARCHAR. |
CHARACTER VARYING |
CHARACTER VARYING |
CHARACTERVARYING do Snowflake é um alias de VARCHAR. |
NATIONAL CHARACTER |
NCHAR |
NCHAR do Snowflake é um alias de VARCHAR. |
NATIONAL CHARACTER VARYING |
NCHAR VARYING |
NCHARVARYING do Snowflake é um alias de VARCHAR. |
TEXT |
TEXT |
TEXT do Snowflake é um alias de VARCHAR. |
NAME (Tipo de caractere especial) |
VARCHAR |
VARCHAR contém caracteres Unicode UTF-8. Se nenhum comprimento for especificado, o padrão é o comprimento máximo permitido (16.777.216). |
Nota
Quando o argumento MAX precision está presente nos tipos de dados do Redshift, eles são transformados para a precisão máxima padrão suportada pelo Snowflake.
Tipos boolianos ¶
Redshift |
Snowflake |
Notas |
|---|---|---|
BOOL |
BOOLEAN |
|
BOOLEAN |
BOOLEAN |
Tipos de dados binários ¶
Redshift |
Snowflake |
Notas |
|---|---|---|
VARBYTE |
VARBINARY |
VARBINARY é sinônimo de BINARY. |
VARBINARY |
VARBINARY |
VARBINARY é sinônimo de BINARY. |
BINARY |
BINARY |
O comprimento máximo é de 8 MB (8.388.608 bytes). |
BINARY VARYING |
BINARY VARYING |
BINARYVARYING é sinônimo de BINARY. |
Aviso
O comprimento máximo dos tipos binários no Redshift é 16 MB (16.777.216 bytes), mas no Snowflake é 8 MB (8.388.608 bytes). Considere essa redução no comprimento máximo.
Tipos de dados de data/hora ¶
Redshift |
Snowflake |
Notas |
|---|---|---|
DATE |
DATE |
DATE accepts dates in the most common forms (such as |
TIME |
TIME |
Armazenamento de horários na forma de |
TIMETZ |
TIME |
O fuso horário não é compatível com o tipo de dados de hora. Para obter mais informações, consulte SSC-FDM-0005. |
TIME WITH TIME ZONE |
TIME |
O fuso horário não é compatível com o tipo de dados de hora. Para obter mais informações, consulte SSC-FDM-0005. |
TIME WITHOUT TIME ZONE |
TIME |
O Snowflake oferece suporte a apenas um tipo de dados de TIME para armazenamento de hora no formato de |
TIMESTAMP |
TIMESTAMP |
A precisão do carimbo de data/hora pode variar de 0 (segundos) a 9 (nanossegundos). |
TIMESTAMPTZ |
TIMESTAMP_TZ |
TIMESTAMP_TZ armazena internamente a hora UTC juntamente com um deslocamento de fuso horário associado. |
TIMESTAMP WITH TIME ZONE |
TIMESTAMP_TZ |
TIMESTAMP_TZ armazena internamente a hora UTC juntamente com um deslocamento de fuso horário associado. |
TIMESTAMP WITHOUT TIME ZONE |
TIMESTAMP_NTZ |
TIMESTAMP_NTZ armazena internamente a hora do «relógio de parede» com uma precisão especificada. |
INTERVAL YEAR TO MONTH |
VARCHAR |
O tipo de dados de intervalo não é compatível com o Snowflake. Transformado em VARCHAR. |
INTERVAL DAY TO SECOND |
VARCHAR |
O tipo de dados de intervalo não é compatível com o Snowflake. Transformado em VARCHAR. |
Outros tipos de dados ¶
Redshift |
Snowflake |
Notas |
|---|---|---|
GEOMETRY |
GEOMETRY |
As coordenadas são representadas como pares de números reais (x, y). Atualmente, apenas coordenadas em 2D são suportadas. |
GEOGRAPHY |
GEOGRAPHY |
O tipo de dados GEOGRAPHY segue o padrão WGS 84. |
HLLSKETCH |
N/A |
Tipo de dados não suportado no Snowflake. Para obter mais informações, consulte SSC-EWI-RS0004. |
SUPER |
VARIANT |
Pode conter um valor de qualquer outro tipo de dados, inclusive valores OBJECT e ARRAY. |
Tipo de dados INTERVALDAYTOSECOND¶
Descrição¶
INTERVAL DAY TO SECOND especifique um literal de intervalo para definir uma duração em dias, horas, minutos e segundos. (Tipo de dados Interval da referência de linguagem RedShift SQL)
Não há equivalente para esse tipo de dados no Snowflake; atualmente, ele é transformado em VARCHAR.
Sintaxe da gramática ¶
Aviso
O uso do tipo de dados Interval está planejado para ser implementado em atualizações futuras.
Amostra de padrões da origem¶
Interval Day to Second em Create Table¶
Entrada¶
Redshift¶
Saída¶
Snowflake¶
The Interval value is transformed to a supported Snowflake format and then inserted as text inside the column. Since Snowflake does not support Interval as a data type, it is only supported in arithmetic operations. To use the value, it needs to be extracted and used as an Interval constant (if possible).
Original Redshift value: INTERVAL '1 2:3:4.567' DAY TO SECOND
Valor armazenado na coluna Snowflake: '1days, 2hours, 3mins, 4secs, 56ms'
Valor como constante de intervalo do Snowflake: INTERVAL '1days, 2hours, 3mins, 4secs, 56ms'
Recuperação de dados de uma coluna Interval Day to Second¶
Entrada¶
Redshift¶
Resultado¶
interval_day_col1 |
interval_day_col2 |
|---|---|
1 days 2 hours 0 mins 0.0 secs |
NULL |
NULL |
1 days 2 hours 3 mins 4.56 secs |
Saída¶
Snowflake¶
Resultado¶
interval_day_col1 |
interval_day_col2 |
|---|---|
1d, 2h |
NULL |
NULL |
1d, 2h, 3m, 4s, 56ms |
Problemas conhecidos¶
1. Only arithmetic operations are supported¶
Os intervalos do Snowflake têm várias limitações. Somente operações aritméticas entre DATE ou TIMESTAMP e constantes de intervalo são suportadas; qualquer outro cenário não é suportado.
EWIs relacionados¶
SSC-EWI-0036: Tipo de dados convertido em outro tipo de dados.
Tipo de dados INTERVALYEARTOMONTH¶
Descrição¶
INTERVAL YEAR TO MONTH especifique um tipo de dados de intervalo para armazenar uma duração de tempo em anos e meses. (Tipo de dados Interval da referência de linguagem RedShift SQL)
Não há equivalente para esse tipo de dados no Snowflake; atualmente, ele é transformado em VARCHAR.
Sintaxe da gramática ¶
Aviso
O uso do tipo de dados Interval está planejado para ser implementado em atualizações futuras.
Amostra de padrões da origem¶
Interval Year To Month em Create Table¶
Entrada:¶
Redshift¶
Saída¶
Snowflake¶
The Interval value is transformed to a supported Snowflake format and then inserted as text inside the column. Since Snowflake does not support Interval as a data type, it is only supported in arithmetic operations. To use the value, it needs to be extracted and used as an Interval constant (if possible).
Valor original do Redshift: INTERVAL '1-2' YEAR TO MONTH
Valor armazenado na coluna Snowflake: '1y, 2m'
Valor como constante do Snowflake Interval: INTERVAL '1y, 2m'
Recuperação de dados de uma coluna Interval Year To Month¶
Entrada¶
Redshift¶
Resultado¶
interval_year_col1 |
interval_year_col2 |
interval_year_col2 |
|---|---|---|
12 years 0 mons |
NULL |
NULL |
NULL |
0 years 5 mons |
NULL |
NULL |
NULL |
1000 years 11 mons |
Saída¶
Snowflake¶
Resultado¶
interval_year_col1 |
interval_year_col2 |
interval_year_col2 |
|---|---|---|
12 y 0 mm |
NULL |
NULL |
NULL |
0 y 5 mm |
NULL |
NULL |
NULL |
1000 y 11 mons |
Problemas conhecidos¶
1. Only arithmetic operations are supported¶
Os intervalos do Snowflake têm várias limitações. Somente operações aritméticas entre DATE ou TIMESTAMP e constantes de intervalo são suportadas; qualquer outro cenário não é suportado.
EWIs relacionados¶
SSC-EWI-0036: Tipo de dados convertido em outro tipo de dados.
Modelos de formato numérico¶
Descrição¶
Esses são os diferentes formatos numéricos suportados pelo Redshift e seu equivalente no Snowflake.
Redshift |
Snowflake |
Comentários |
|---|---|---|
0 |
0 |
|
9 |
9 |
|
. (ponto), D |
. (ponto), D |
|
, (vírgula) |
, (vírgula) |
|
CC |
Atualmente, não há equivalente ao Century Code no Snowflake. |
|
FM |
FM |
|
PR |
Atualmente, não há equivalente para esse formato no Snowflake. |
|
S |
S |
Sinal numérico explícito. |
L |
$ |
Espaço reservado para o símbolo da moeda. |
G |
G |
|
MI |
MI |
Sinal de menos (para números negativos) |
PL |
S |
Atualmente, não há equivalente ao sinal de mais no Snowflake. Portanto, ele é convertido para o sinal numérico explícito. |
SG |
S |
Sinal numérico explícito na posição especificada. |
RN |
Atualmente, não há equivalente para algarismos romanos no Snowflake. |
|
TH |
Atualmente, não há equivalente para o sufixo Ordinal no Snowflake |
Amostra de padrões da origem¶
Usos na função To_Number¶
Entrada:¶
Redshift¶
Resultados¶
| multiple_nines | exact_zeros | decimals | fill_mode | currency |
|---|---|---|---|---|
| 9423 | 9423 | 123.456 | 123031.30 | 1254.88 |
Saída¶
Snowflake¶
Resultados¶
| multiple_nines | exact_zeros | decimals | fill_mode | currency |
|---|---|---|---|---|
| 9423 | 9423 | 123.456 | 123031.300 | 12454.88 |
Entrada:¶
Redshift¶
Resultados¶
| currency_L | signed_number_end | plus_sign | minus_sign | signed_number |
|---|---|---|---|---|
| 12454.8 | -123 | 1254.88 | -12454.88 | -12454.88 |
Saída:¶
Snowflake¶
Resultados¶
| currency_L | signed_number_end | plus_sign | minus_sign | signed_number |
|---|---|---|---|---|
| 12454.8 | -123 | 1254.88 | -12454.88 | -12454.88 |
Usos na função To_Char¶
Entrada:¶
Redshift¶
Resultados¶
| signed_number | decimal_number | negative | minus_sign | plus_sign | multiple_ninesmultiple_nines | exact_zerosexact_zeros |
|---|---|---|---|---|---|---|
| '123-' | '12,454.88' | '-12,454.88' | '12454.88' | '-12,454.88' | '09423' | '09423' |
Saída:¶
Snowflake¶
Resultados¶
| signed_number | decimal_number | negative | minus_sign | plus_sign | multiple_ninesmultiple_nines | exact_zerosexact_zeros |
|---|---|---|---|---|---|---|
| '123-' | '12,454.88' | '-12,454.88' | '12454.88' | '-12,454.88' | '09423' | '09423' |
Formato não suportado¶
O formato a seguir não é compatível e, por isso, será marcado com um EWI.
Entrada:¶
Saída:¶
Problemas conhecidos¶
1. Using numeric signs inside the number not supported.¶
Quando qualquer formato de sinal numérico (MI, SG ou PL) é usado dentro do número, em vez de no início ou no final do número, não há suporte no Snowflake
Exemplo
EWIs relacionados¶
SSC-EWI-0006: O formato de data/numérico atual pode ter um comportamento diferente no Snowflake.