Bancos de dados heterogêneos utilizam tipos de dados distintos. Ao sincronizar informações entre esses bancos, o Data Transmission Service (DTS) converte os tipos do banco source para formatos compatíveis no banco de destino durante a inicialização do schema. Este tópico apresenta os mapeamentos detalhados de tipos de dados para ajudar você a avaliar o impacto da sincronização em seu negócio.
Visão geral
Os tópicos a seguir descrevem os mapeamentos de tipos de dados para sincronização entre bancos de dados heterogêneos.
Sincronizar dados do MySQL
A seguir, são apresentados os mapeamentos de tipos de dados entre um banco de dados MySQL source (como ApsaraDB RDS for MySQL, um banco de dados MySQL autogerenciado ou PolarDB for MySQL) e um banco de dados heterogêneo de destino (como AnalyticDB for MySQL e AnalyticDB for PostgreSQL).
Se o intervalo de valores dos dados a serem sincronizados da instância source exceder o intervalo suportado pelo DTS, os dados gravados na instância de destino terão precisão reduzida.
Instâncias de destino: AnalyticDB for MySQL e AnalyticDB for PostgreSQL
Ao sincronizar dados para o AnalyticDB for MySQL, observe o seguinte:
Se um campo source tiver o atributo
AUTO_INCREMENTe for do tipoINT, o DTS o converterá para o tipoBIGINTdurante a sincronização.Caso as tabelas em uma operação
JOINcontenham camposINTeBIGINT, recomenda-se usar consistentementeINTouBIGINTno destino para evitar impactos no desempenho.
|
Tipo |
Tipo de dados source |
Intervalo de valores |
Tipo do AnalyticDB for MySQL |
Tipo do AnalyticDB for PostgreSQL |
|
Tipos inteiros |
BIT[(M)] |
1 a 64 |
VARCHAR |
BIT[(M)] |
|
TINYINT[(M)] |
-128 a 127 |
TINYINT |
SMALLINT |
|
|
TINYINT[(M)] [UNSIGNED] |
0 a 255 |
SMALLINT |
SMALLINT |
|
|
SMALLINT[(M)] |
-32768 a 32767 |
SMALLINT |
SMALLINT |
|
|
SMALLINT[(M)] [UNSIGNED] |
0 a 65535 |
INT |
INTEGER |
|
|
MEDIUMINT[(M)] |
-8388608 a 8388607 |
INT |
INTEGER |
|
|
MEDIUMINT[(M)] [UNSIGNED] |
0 a 16777215 |
INT |
INTEGER |
|
|
INT[(M)] |
-2147483648 a 2147483647 |
INT |
INTEGER |
|
|
INT[(M)] [UNSIGNED] |
0 a 4294967295 |
BIGINT |
BIGINT |
|
|
BIGINT[(M)] |
-9223372036854775808 a 9223372036854775807 |
BIGINT |
BIGINT |
|
|
BIGINT[(M)] [UNSIGNED] |
0 a 18446744073709551615 |
DECIMAL(20,0) |
NUMERIC(20) |
|
|
Tipos decimais |
DECIMAL[(M[,D])] |
M: 0 a 65; D: 0 a 30 |
DECIMAL[(M[,D])] |
DECIMAL[(M[,D])] |
|
FLOAT(p) |
1.175494351E-38 a 3.402823466E+38 |
FLOAT |
REAL |
|
|
DOUBLE[(M,D)] |
2.2250738585072014E-308 a 1.7976931348623157E+308 |
DOUBLE |
DOUBLE PRECISION |
|
|
Tipos de data e hora |
DATE |
1000-01-01 a 9999-12-31 Nota
Formato: AAAA-MM-DD. |
DATE |
DATE |
|
DATETIME[(fsp)] |
1000-01-01 00:00:00.000000 a 9999-12-31 23:59:59.999999 Nota
Formato: AAAA-MM-DD hh:mm:ss[.fração] (UTC). |
DATETIME |
TIMESTAMP |
|
|
TIMESTAMP[(fsp)] |
1970-01-01 00:00:01.000000 a 2038-01-19 03:14:07.999999 Nota
Formato: AAAA-MM-DD hh:mm:ss[.fração] (UTC). |
TIMESTAMP |
TIMESTAMP WITH TIME ZONE |
|
|
TIME[(fsp)] |
-838:59:59.000000 a 838:59:59.000000 Nota
Formato: hh:mm:ss[.fração] (UTC). |
TIME |
TIMESTAMP WITH TIME ZONE |
|
|
YEAR[(4)] |
1901 a 2155, ou 0000 |
INT |
INTEGER |
|
|
Tipos string |
CHAR[(M)] |
0 a 255 caracteres |
VARCHAR |
CHAR |
|
VARCHAR(M) |
0 a 65.535 caracteres |
VARCHAR |
VARCHAR |
|
|
BINARY[(M)] |
0 a 255 bytes |
VARBINARY |
BYTEA |
|
|
VARBINARY(M) |
0 a 65.535 bytes |
VARBINARY |
BYTEA |
|
|
TINYBLOB |
255 (2^8 - 1) bytes |
VARBINARY |
BYTEA |
|
|
TINYTEXT |
255 (2^8 - 1) caracteres |
VARCHAR |
TEXT |
|
|
BLOB |
65.535 (2^16 - 1) bytes |
VARBINARY |
BYTEA |
|
|
TEXT |
65.535 (2^16 - 1) caracteres |
VARCHAR |
TEXT |
|
|
MEDIUMBLOB |
16.777.215 (2^24 - 1) bytes |
VARBINARY |
BYTEA |
|
|
MEDIUMTEXT |
16.777.215 (2^24 - 1) caracteres |
VARCHAR |
TEXT |
|
|
LONGBLOB |
4.294.967.295 ou 4 GB (2^32 - 1) bytes |
VARBINARY |
BYTEA |
|
|
LONGTEXT |
4.294.967.295 ou 4 GB (2^32 - 1) caracteres |
VARCHAR |
TEXT |
|
|
ENUM('value1','value2',...) |
Até 65.535 valores de enumeração |
VARCHAR |
VARCHAR(128) |
|
|
SET('value1','value2',...) |
Até 64 membros |
VARCHAR |
VARCHAR(128) |
|
|
Tipos espaciais |
GEOMETRY |
Um valor de qualquer tipo de geometria |
VARBINARY |
POLYGON |
|
POINT |
N/A |
VARBINARY |
POINT |
|
|
LINESTRING |
N/A |
VARBINARY |
PATH |
|
|
POLYGON |
N/A |
VARBINARY |
POLYGON |
|
|
MULTIPOINT |
N/A |
VARBINARY |
POLYGON |
|
|
MULTILINESTRING |
N/A |
VARBINARY |
PATH |
|
|
MULTIPOLYGON |
N/A |
VARBINARY |
POLYGON |
|
|
GEOMETRYCOLLECTION |
Uma coleção de valores de qualquer tipo de geometria |
VARBINARY |
POLYGON |
|
|
Tipo JSON |
JSON |
N/A |
JSON |
JSON |
Instâncias de destino: DataHub e Kafka
|
Tipo |
Tipo de origem |
Faixa de valores |
Tipo no DataHub |
Tipo no Kafka |
|
Inteiro |
|
1 a 64 |
|
Igual aos tipos de dados no MySQL e PolarDB for MySQL. |
|
|
-128 a 127 |
|
||
|
|
0 a 255 |
|
||
|
|
-32768 a 32767 |
|
||
|
|
0 a 65535 |
|
||
|
|
-8388608 a 8388607 |
|
||
|
|
0 a 16777215 |
|
||
|
|
-2147483648 a 2147483647 |
|
||
|
|
0 a 4294967295 |
|
||
|
|
-9223372036854775808 a 9223372036854775807 |
|
||
|
|
0 a 18446744073709551615 |
|
||
|
Decimal |
|
M: 0 a 65; D: 0 a 30 |
|
|
|
|
1,175494351E-38 a 3,402823466E+38 |
|
||
|
|
2,2250738585072014E-308 a 1,7976931348623157E+308 |
|
||
|
Data e hora |
|
1000-01-01 a 9999-12-31 Nota
Formato: |
|
|
|
|
1000-01-01 00:00:00.000000 a 9999-12-31 23:59:59.999999 Nota
Formato: |
|
||
|
|
1970-01-01 00:00:01.000000 a 2038-01-19 03:14:07.999999 Nota
Formato: |
|
||
|
|
-838:59:59.000000 a 838:59:59.000000 Nota
Formato: |
|
||
|
|
1901 a 2155 ou 0000 |
|
||
|
String |
|
0 a 255 caracteres |
|
|
|
|
0 a 65.535 caracteres |
|
||
|
|
0 a 255 bytes |
|
||
|
|
0 a 65.535 bytes |
|
||
|
|
255 (2^8 - 1) bytes |
|
||
|
|
255 (2^8 - 1) caracteres |
|
||
|
|
65.535 (2^16 - 1) bytes |
|
||
|
|
65.535 (2^16 - 1) caracteres |
|
||
|
|
16.777.215 (2^24 - 1) bytes |
|
||
|
|
16.777.215 (2^24 - 1) caracteres |
|
||
|
|
4.294.967.295 (4 GB) (2^32 - 1) bytes |
|
||
|
|
4.294.967.295 (4 GB) (2^32 - 1) caracteres |
|
||
|
|
Uma coluna |
|
||
|
|
Uma coluna |
|
||
|
Espacial |
|
Qualquer tipo de geometria. |
|
|
|
|
N/A |
|
||
|
|
N/A |
|
||
|
|
N/A |
|
||
|
|
N/A |
|
||
|
|
N/A |
|
||
|
|
N/A |
|
||
|
|
Uma coleção de quaisquer tipos de geometria. |
|
||
|
JSON |
|
N/A |
|
Bancos de dados de destino: MaxCompute, Elasticsearch e ClickHouse
|
Tipo |
Tipo de origem |
Faixa de valores |
MaxCompute |
Elasticsearch |
ClickHouse |
|
Inteiro |
BIT[(M)] |
1 a 64 |
BOOLEAN | STRING |
BOOLEAN | LONG Nota
Se o valor tiver 1 byte, recomendamos usar o tipo de dado BOOLEAN no Elasticsearch. |
UInt8 |
|
TINYINT[(M)] |
-128 a 127 |
BIGINT |
SHORT |
Int8 |
|
|
TINYINT[(M)] [UNSIGNED] |
0 a 255 |
BIGINT |
INTEGER |
UInt8 |
|
|
SMALLINT[(M)] |
-32768 a 32767 |
BIGINT |
SHORT |
Int16 |
|
|
SMALLINT[(M)] [UNSIGNED] |
0 a 65535 |
BIGINT |
INTEGER |
UInt16 |
|
|
MEDIUMINT[(M)] |
-8388608 a 8388607 |
BIGINT |
INTEGER |
Int32 |
|
|
MEDIUMINT[(M)] [UNSIGNED] |
0 a 16777215 |
BIGINT |
INTEGER |
Int32 |
|
|
INT[(M)] |
-2147483648 a 2147483647 |
BIGINT |
INTEGER |
Int32 |
|
|
INT[(M)] [UNSIGNED] |
0 a 4294967295 |
BIGINT |
LONG |
UInt32 |
|
|
BIGINT[(M)] |
-9223372036854775808 a 9223372036854775807 |
BIGINT |
LONG |
Int64 |
|
|
BIGINT[(M)] [UNSIGNED] |
0 a 18446744073709551615 |
BIGINT |
LONG |
UInt64 |
|
|
Decimal |
DECIMAL[(M[,D])] |
M: 0 a 65; D: 0 a 30 |
DOUBLE |
DOUBLE Nota
Se um valor DECIMAL contiver ponto decimal, recomendamos usar o tipo de dado TEXT no Elasticsearch para garantir a consistência dos dados. |
DECIMAL |
|
FLOAT(p) |
1,175494351E-38 a 3,402823466E+38 |
DOUBLE |
FLOAT |
Float32 |
|
|
DOUBLE[(M,D)] |
2,2250738585072014E-308 a 1,7976931348623157E+308 |
DOUBLE |
DOUBLE |
Float64 |
|
|
Data e hora |
DATE |
1000-01-01 a 9999-12-31 Nota
O formato é YYYY-MM-DD. |
DATETIME |
DATE Nota
O formato é YYYY-MM-DD. Para mais informações, consulte formato de data. |
DATE32 Nota
A faixa de valores do tipo de dado DATE no ClickHouse é menor que no MySQL. Se você usar o tipo de dado DATE no ClickHouse, as operações de gravação poderão falhar. |
|
DATETIME[(fsp)] |
1000-01-01 00:00:00.000000 a 9999-12-31 23:59:59.999999 Nota
O formato é YYYY-MM-DD hh:mm:ss[.fraction] (UTC). |
DATETIME |
DATE Nota
O formato DATE é yyyy-MM-dd'T'HH:mm:ss (UTC). Para precisão de microssegundos, o formato é yyyy-MM-dd'T'HH:mm:ss.S. Para mais informações, consulte formato de data. |
DATETIME64 Nota
A faixa de valores do tipo de dado DATETIME no ClickHouse é menor que no MySQL. Se você usar o tipo de dado DATETIME no ClickHouse, as operações de gravação poderão falhar. |
|
|
TIMESTAMP[(fsp)] |
1970-01-01 00:00:01.000000 a 2038-01-19 03:14:07.999999 Nota
O formato é YYYY-MM-DD hh:mm:ss[.fraction] (UTC). |
DATETIME |
DATE Nota
O formato DATE é yyyy-MM-dd'T'HH:mm:ss (UTC). Para precisão de microssegundos, o formato é yyyy-MM-dd'T'HH:mm:ss.S. Para mais informações, consulte formato de data. |
DATETIME Nota
As informações de fuso horário não estão incluídas. |
|
|
TIME[(fsp)] |
-838:59:59.000000 a 838:59:59.000000 Nota
O formato é hh:mm:ss[.fraction] (UTC). |
STRING |
DATE Nota
Para mais informações, consulte formato de data. |
STRING |
|
|
YEAR[(4)] |
1901 a 2155 ou 0000 |
STRING |
DATE Nota
O formato DATE é yyyy. Para mais informações, consulte formato de data. |
Int16 |
|
|
String |
CHAR[(M)] |
0 a 255 caracteres |
STRING |
KEYWORD |
STRING |
|
VARCHAR(M) |
0 a 65.535 caracteres |
STRING |
|
STRING |
|
|
BINARY[(M)] |
0 a 255 bytes |
STRING |
BINARY |
STRING |
|
|
VARBINARY(M) |
0 a 65.535 bytes |
STRING |
BINARY |
STRING |
|
|
TINYBLOB |
255 (2^8 - 1) bytes |
STRING |
BINARY |
STRING |
|
|
TINYTEXT |
255 (2^8 - 1) caracteres |
STRING |
TEXT |
STRING |
|
|
BLOB |
65.535 (2^16 - 1) bytes |
STRING |
BINARY |
STRING |
|
|
TEXT |
65.535 (2^16 - 1) caracteres |
STRING |
TEXT |
STRING |
|
|
MEDIUMBLOB |
16.777.215 (2^24 - 1) bytes |
STRING |
BINARY |
STRING |
|
|
MEDIUMTEXT |
16.777.215 (2^24 - 1) caracteres |
STRING |
TEXT |
STRING |
|
|
LONGBLOB |
4.294.967.295 ou 4 GB (2^32 - 1) bytes |
STRING |
BINARY |
STRING |
|
|
LONGTEXT |
4.294.967.295 ou 4 GB (2^32 - 1) caracteres |
STRING |
TEXT |
STRING |
|
|
ENUM('value1','value2',...) |
Até 65.535 valores enumerados |
STRING |
KEYWORD |
ENUM |
|
|
SET('value1','value2',...) |
Até 64 membros |
STRING |
KEYWORD |
STRING |
|
|
Tipo espacial |
GEOMETRY |
Um valor de qualquer tipo de geometria |
STRING |
GEO_SHAPE |
STRING |
|
POINT |
N/A |
STRING |
GEO_POINT |
STRING |
|
|
LINESTRING |
N/A |
STRING |
GEO_SHAPE |
STRING |
|
|
POLYGON |
N/A |
STRING |
GEO_SHAPE |
STRING |
|
|
MULTIPOINT |
N/A |
STRING |
GEO_SHAPE Nota
|
STRING |
|
|
MULTILINESTRING |
N/A |
STRING |
GEO_SHAPE |
STRING |
|
|
MULTIPOLYGON |
N/A |
STRING |
GEO_SHAPE |
STRING |
|
|
GEOMETRYCOLLECTION |
Uma coleção de valores de qualquer tipo de geometria |
STRING |
GEO_SHAPE |
STRING |
|
|
Tipo JSON |
JSON |
N/A |
STRING |
OBJECT Nota
|
STRING |
Instância de destino: Tablestore
|
Tipo da source |
Tipo do Tablestore |
|
INTEGER |
INTEGER |
|
INT |
INTEGER |
|
SMALLINT |
INTEGER |
|
TINYINT |
INTEGER |
|
MEDIUMINT |
INTEGER |
|
BIGINT |
INTEGER |
|
DECIMAL |
DOUBLE |
|
NUMERIC |
DOUBLE |
|
FLOAT |
DOUBLE |
|
DOUBLE |
DOUBLE |
|
BIT |
BOOLEAN |
|
DATE |
STRING ou INTEGER Nota
Padrão: STRING. |
|
TIMESTAMP |
|
|
DATETIME |
|
|
TIME |
|
|
YEAR |
|
|
CHAR |
STRING |
|
VARCHAR |
STRING |
|
BINARY |
BINARY |
|
VARBINARY |
BINARY |
|
TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB |
BINARY |
|
TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT |
STRING |
|
ENUM |
STRING |
|
SET |
STRING |
|
GEOMETRY |
STRING |
|
POINT |
STRING |
|
LINESTRING |
STRING |
|
POLYGON |
STRING |
|
MULTIPOINT |
STRING |
|
MULTILINESTRING |
STRING |
|
MULTIPOLYGON |
STRING |
|
GEOMETRYCOLLECTION |
STRING |
|
JSON |
STRING |
Instância de destino: Lindorm
|
Tipo da source |
Tipo do Lindorm |
|
BOOLEAN |
BOOLEAN |
|
BIT |
BOOLEAN |
|
TINYINT |
TINYINT |
|
SMALLINT |
SMALLINT |
|
INTEGER |
INTEGER |
|
BIGINT |
BIGINT |
|
BIGINT UNSIGNED Importante
O Lindorm aceita apenas valores dentro do intervalo signed do BIGINT (-9223372036854775808 a 9223372036854775807). |
BIGINT |
|
FLOAT |
FLOAT |
|
DOUBLE |
DOUBLE |
|
DECIMAL |
DECIMAL Importante
A precisão deve corresponder à do campo da source. |
|
CHAR/VARCHAR/TEXT/TINYTEXT/MEDIUMTEXT/LONGTEXT |
CHAR/VARCHAR |
|
BINARY |
BINARY |
|
BLOB |
VARBINARY |
|
VARBINARY |
VARBINARY |
|
TIMESTAMP |
TIMESTAMP |
|
YEAR |
INTEGER |
|
DATE |
O tipo de dados mapeado depende da versão da instância Lindorm de destino.
|
|
DATETIME |
VARCHAR Importante
|
|
TIME |
O tipo de dados mapeado depende da versão da instância Lindorm de destino.
|
|
JSON |
JSON |
Instância de destino: Oracle
|
Tipo |
Tipo de dados da source |
Intervalo de valores |
Tipo de dados do Oracle |
|
Tipo inteiro |
BIT[(M)] |
1 a 64 |
NUMBER(2,0) |
|
TINYINT[(M)] |
-128 a 127 |
NUMBER(3,0) |
|
|
TINYINT[(M)] [UNSIGNED] |
0 a 255 |
NUMBER(3,0) |
|
|
SMALLINT[(M)] |
-32768 a 32767 |
NUMBER(5,0) |
|
|
SMALLINT[(M)] [UNSIGNED] |
0 a 65535 |
NUMBER(5,0) |
|
|
MEDIUMINT[(M)] |
-8388608 a 8388607 |
NUMBER(7,0) |
|
|
MEDIUMINT[(M)] [UNSIGNED] |
0 a 16777215 |
NUMBER(7,0) |
|
|
INT[(M)] |
-2147483648 a 2147483647 |
INT |
|
|
INT[(M)] [UNSIGNED] |
0 a 4294967295 |
NUMBER(10,0) |
|
|
BIGINT[(M)] |
-9223372036854775808 a 9223372036854775807 |
NUMBER(20,0) |
|
|
BIGINT[(M)] [UNSIGNED] |
0 a 18446744073709551615 |
NUMBER(20,0) |
|
|
Tipo decimal |
DECIMAL[(M[,D])] |
M: 0 a 65; D: 0 a 30 |
NUMBER(M,D) Nota
Se a precisão e a escala forem omitidas, o tipo de dados assumirá o padrão |
|
FLOAT(p) |
1.175494351E-38 a 3.402823466E+38 |
FLOAT |
|
|
DOUBLE[(M,D)] |
2.2250738585072014E-308 a 1.7976931348623157E+308 |
DOUBLE |
|
|
Tipo de data e hora |
DATE |
1000-01-01 a 9999-12-31 Nota
Formato: AAAA-MM-DD. |
DATE |
|
DATETIME[(fsp)] |
1000-01-01 00:00:00.000000 a 9999-12-31 23:59:59.999999 Nota
Formato: AAAA-MM-DD hh:mm:ss[.fração] (UTC). |
TIMESTAMP[(fsp)] Nota
Se a precisão for omitida, o tipo de dados assumirá o padrão |
|
|
TIMESTAMP[(fsp)] |
1970-01-01 00:00:01.000000 a 2038-01-19 03:14:07.999999 Nota
Formato: AAAA-MM-DD hh:mm:ss[.fração] (UTC). |
TIMESTAMP[(fsp)] WITH LOCAL TIME ZONE Nota
Se a precisão for omitida, o tipo de dados assumirá o padrão |
|
|
TIME[(fsp)] |
-838:59:59.000000 a 838:59:59.000000 Nota
Formato: hh:mm:ss[.fração] (UTC). |
Não suportado |
|
|
YEAR[(4)] |
1901 a 2155, ou 0000 |
INT |
|
|
Tipo string |
CHAR[(M)] |
0 a 255 caracteres |
CHAR[(M)] Nota
Se o comprimento for omitido, o tipo de dados assumirá o padrão |
|
VARCHAR(M) |
0 a 65.535 caracteres |
VARCHAR(M) |
|
|
BINARY[(M)] |
0 a 255 bytes |
RAW(M) Nota
Se o comprimento for omitido, o tipo de dados assumirá o padrão |
|
|
VARBINARY(M) |
0 a 65.535 bytes |
RAW(M) |
|
|
TINYBLOB |
255 (2^8 - 1) bytes |
BLOB |
|
|
TINYTEXT |
255 (2^8 - 1) caracteres |
CLOB |
|
|
BLOB |
65.535 (2^16 - 1) bytes |
BLOB |
|
|
TEXT |
65.535 (2^16 - 1) caracteres |
CLOB |
|
|
MEDIUMBLOB |
16.777.215 (2^24 - 1) bytes |
BLOB |
|
|
MEDIUMTEXT |
16.777.215 (2^24 - 1) caracteres |
CLOB |
|
|
LONGBLOB |
4.294.967.295 (2^32 - 1) bytes |
BLOB |
|
|
LONGTEXT |
4.294.967.295 (2^32 - 1) caracteres |
CLOB |
|
|
ENUM('value1','value2',...) |
Até 65.535 valores de enumeração |
Não suportado |
|
|
SET('value1','value2',...) |
Até 64 membros |
Não suportado |
|
|
Tipo espacial |
GEOMETRY |
Um valor de qualquer tipo geométrico |
Não suportado |
|
POINT |
N/A |
Não suportado |
|
|
LINESTRING |
N/A |
Não suportado |
|
|
POLYGON |
N/A |
Não suportado |
|
|
MULTIPOINT |
N/A |
Não suportado |
|
|
MULTILINESTRING |
N/A |
Não suportado |
|
|
MULTIPOLYGON |
N/A |
Não suportado |
|
|
GEOMETRYCOLLECTION |
Uma coleção de valores de qualquer tipo geométrico |
Não suportado |
|
|
Tipo JSON |
JSON |
N/A |
CLOB |