Berbagai jenis database, yang dikenal sebagai database heterogen, mendukung tipe data yang berbeda. Saat Data Transmission Service (DTS) melakukan migrasi data antar database heterogen, DTS memetakan tipe data selama fase migrasi skema dengan mengonversi tipe data dari database sumber ke tipe data yang didukung oleh database tujuan. Topik ini mencantumkan pemetaan tipe data secara rinci, yang dapat Anda gunakan untuk memeriksa dan menilai dampak migrasi data terhadap layanan Anda.
Ikhtisar
Temukan pemetaan tipe data untuk skenario migrasi Anda:
Jika bidang waktu sumber memiliki tipe data TIMESTAMP WITH TIME ZONE dan bidang waktu tujuan memiliki tipe data yang berbeda, seperti DATETIME, informasi zona waktu akan hilang.
Migrasi data dari PolarDB for MySQL, RDS for MySQL, dan MySQL yang dikelola sendiri
Ketika instans sumber adalah PolarDB for MySQL, RDS for MySQL, atau database MySQL yang dikelola sendiri, dan instans tujuan adalah database heterogen seperti AnalyticDB for MySQL dan 2.0, atau AnalyticDB for PostgreSQL, pemetaan tipe datanya adalah sebagai berikut.
Jika data yang akan dimigrasikan dari instans sumber berada di luar rentang yang didukung oleh DTS, presisi data yang dimigrasikan di instans tujuan akan berkurang.
Instans tujuan adalah AnalyticDB for MySQL atau AnalyticDB for PostgreSQL
Kategori | Tipe data instans sumber | Rentang nilai | Tipe data AnalyticDB for MySQL | Tipe data AnalyticDB for PostgreSQL |
Tipe integer | BIT[(M)] | 1 hingga 64 | VARCHAR | BIT[(M)] |
TINYINT[(M)] | -128 hingga 127 | TINYINT | SMALLINT | |
TINYINT[(M)] [UNSIGNED] | 0 hingga 255 | SMALLINT | SMALLINT | |
SMALLINT[(M)] | -32768 hingga 32767 | SMALLINT | SMALLINT | |
SMALLINT[(M)] [UNSIGNED] | 0 hingga 65535 | INT | INTEGER | |
MEDIUMINT[(M)] | -8388608 hingga 8388607 | INT | INTEGER | |
MEDIUMINT[(M)] [UNSIGNED] | 0 hingga 16777215 | INT | INTEGER | |
INT[(M)] | -2147483648 hingga 2147483647 | INT | INTEGER | |
INT[(M)] [UNSIGNED] | 0 hingga 4294967295 | BIGINT | BIGINT | |
BIGINT[(M)] | -9223372036854775808 hingga 9223372036854775807 | BIGINT | BIGINT | |
BIGINT[(M)] [UNSIGNED] | 0 hingga 18446744073709551615 | DECIMAL(20,0) | NUMERIC(20) | |
Tipe desimal | DECIMAL[(M[,D])] | M: 0 hingga 65. D: 0 hingga 30. | DECIMAL[(M[,D])] | DECIMAL[(M[,D])] |
FLOAT(p) | 1.175494351E-38 hingga 3.402823466E+38 | FLOAT | REAL | |
DOUBLE[(M,D)] | 2.2250738585072014E-308 hingga 1.7976931348623157E+308 | DOUBLE | DOUBLE PRECISION | |
Tipe waktu | DATE | 1000-01-01 hingga 9999-12-31 Catatan Formatnya adalah YYYY-MM-DD. | DATE | DATE |
DATETIME[(fsp)] | 1000-01-01 00:00:00.000000 hingga 9999-12-31 23:59:59.999999 Catatan Formatnya adalah YYYY-MM-DD hh:mm:ss[.fraction] (UTC). | DATETIME | TIMESTAMP | |
TIMESTAMP[(fsp)] | 1970-01-01 00:00:01.000000 hingga 2038-01-19 03:14:07.999999 Catatan Formatnya adalah YYYY-MM-DD hh:mm:ss[.fraction] (UTC). | TIMESTAMP | TIMESTAMP WITH TIME ZONE | |
TIME[(fsp)] | -838:59:59.000000 hingga 838:59:59.000000 Catatan Formatnya adalah hh:mm:ss[.fraction] (UTC). | TIME | TIME WITHOUT TIME ZONE | |
YEAR[(4)] | 1901 hingga 2155, atau 0000 | INT | INTEGER | |
Tipe string | CHAR[(M)] | 0 hingga 255 karakter | VARCHAR | CHAR |
VARCHAR(M) | 0 hingga 65.535 karakter | VARCHAR | VARCHAR | |
BINARY[(M)] | 0 hingga 255 byte | VARBINARY | BYTEA | |
VARBINARY(M) | 0 hingga 65.535 byte | VARBINARY | BYTEA | |
TINYBLOB | 255 (2^8 - 1) byte | VARBINARY | BYTEA | |
TINYTEXT | 255 (2^8 - 1) karakter | VARCHAR | TEXT | |
BLOB | 65.535 (2^16 - 1) byte | VARBINARY | BYTEA | |
TEXT | 65.535 (2^16 - 1) karakter | VARCHAR | TEXT | |
MEDIUMBLOB | 16.777.215 (2^24 - 1) byte | VARBINARY | BYTEA | |
MEDIUMTEXT | 16.777.215 (2^24 - 1) karakter | VARCHAR | TEXT | |
LONGBLOB | 4.294.967.295 atau 4 GB (2^32 - 1) byte | VARBINARY | BYTEA | |
LONGTEXT | 4.294.967.295 atau 4 GB (2^32 - 1) karakter | VARCHAR | TEXT | |
ENUM('value1','value2',...) | Hingga 65.535 nilai enumerasi | VARCHAR | VARCHAR(128) | |
SET('value1','value2',...) | Hingga 64 elemen | VARCHAR | VARCHAR(128) | |
Tipe spasial | GEOMETRY | Nilai dari tipe geometri apa pun | VARBINARY | POLYGON |
POINT | Tidak ada | VARBINARY | POINT | |
LINESTRING | Tidak ada | VARBINARY | PATH | |
POLYGON | Tidak ada | VARBINARY | POLYGON | |
MULTIPOINT | Tidak ada | VARBINARY | POLYGON | |
MULTILINESTRING | Tidak ada | VARBINARY | PATH | |
MULTIPOLYGON | Tidak ada | VARBINARY | POLYGON | |
GEOMETRYCOLLECTION | Kumpulan nilai dari tipe geometri apa pun | VARBINARY | POLYGON | |
Tipe JSON | JSON | Tidak ada | JSON | JSON |
Database tujuan: proyek DataHub, instans ApsaraMQ for Kafka, atau kluster Kafka yang dikelola sendiri
Tipe | Tipe data di database sumber | Rentang nilai | Tipe data di DataHub | Tipe data di instans ApsaraMQ for Kafka atau kluster Kafka yang dikelola sendiri |
Integer | BIT[(M)] | 1 ~ 64 | BOOLEAN | STRING | Konsisten dengan tipe data di MySQL atau PolarDB for MySQL |
TINYINT[(M)] | -128 ~ 127 | BIGINT | ||
TINYINT[(M)] [UNSIGNED] | 0 ~ 255 | BIGINT | ||
SMALLINT[(M)] | -32768 ~ 32767 | BIGINT | ||
SMALLINT[(M)] [UNSIGNED] | 0 ~ 65535 | BIGINT | ||
MEDIUMINT[(M)] | -8388608 ~ 8388607 | BIGINT | ||
MEDIUMINT[(M)] [UNSIGNED] | 0 ~ 16777215 | BIGINT | ||
INT[(M)] | -2147483648 ~ 2147483647 | BIGINT | ||
INT[(M)] [UNSIGNED] | 0 ~ 4294967295 | BIGINT | ||
BIGINT[(M)] | -9223372036854775808 ~ 9223372036854775807 | BIGINT | ||
BIGINT[(M)] [UNSIGNED] | 0 ~ 18446744073709551615 | BIGINT | ||
Desimal | DECIMAL[(M[,D])] | M: 0 hingga 65 D: 0 hingga 30 | DECIMAL | |
FLOAT(p) | 1.175494351E-38 ~ 3.402823466E+38 | DOUBLE | ||
DOUBLE[(M,D)] | 2.2250738585072014E-308 ~ 1.7976931348623157E+308 | DOUBLE | ||
Tanggal dan waktu | DATE | 1000-01-01~9999-12-31 Catatan Formatnya adalah YYYY-MM-DD. | TIMESTAMP | |
DATETIME[(fsp)] | 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999 Catatan Formatnya adalah YYYY-MM-DD hh:mm:ss[.fraction], dalam UTC. | TIMESTAMP | ||
TIMESTAMP[(fsp)] | 1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999 Catatan Formatnya adalah YYYY-MM-DD hh:mm:ss[.fraction], dalam UTC. | TIMESTAMP | ||
TIME[(fsp)] | -838:59:59.000000 ~ 838:59:59.000000 Catatan Formatnya adalah hh:mm:ss[.fraction], dalam UTC. | STRING | ||
YEAR[(4)] | 1901 hingga 2155, atau 0000 | STRING | ||
String | CHAR[(M)] | 0 hingga 255 karakter | STRING | |
VARCHAR(M) | 0 hingga 65.535 karakter | STRING | ||
BINARY[(M)] | 0 hingga 255 byte | STRING | ||
VARBINARY(M) | 0 hingga 65.535 byte | STRING | ||
TINYBLOB | 255 (2^8 - 1) byte | STRING | ||
TINYTEXT | 255 (2^8 - 1) karakter | STRING | ||
BLOB | 65.535 (2^16 - 1) byte | STRING | ||
TEXT | 65.535 (2^16 - 1) karakter | STRING | ||
MEDIUMBLOB | 16.777.215 (2^24 - 1) byte | STRING | ||
MEDIUMTEXT | 16.777.215 (2^24 - 1) karakter | STRING | ||
LONGBLOB | 4.294.967.295 atau 4 GB (2^32 - 1) byte | STRING | ||
LONGTEXT | 4.294.967.295 atau 4 GB (2^32 - 1) karakter | STRING | ||
ENUM('value1','value2',...) | Kolom ENUM dapat memiliki maksimal 65.535 elemen berbeda. | STRING | ||
SET('value1','value2',...) | Kolom SET dapat memiliki maksimal 64 elemen berbeda. | STRING | ||
Spasial | GEOMETRY | Nilai geometri dari tipe apa pun | STRING | |
POINT | T/A | STRING | ||
LINESTRING | T/A | STRING | ||
POLYGON | T/A | STRING | ||
MULTIPOINT | T/A | STRING | ||
MULTILINESTRING | T/A | STRING | ||
MULTIPOLYGON | T/A | STRING | ||
GEOMETRYCOLLECTION | Kumpulan nilai geometri dari tipe apa pun | STRING | ||
JSON | JSON | T/A | STRING |
Database tujuan: proyek MaxCompute, kluster Elasticsearch, atau kluster ClickHouse
Tipe | Tipe data di database sumber | Rentang nilai | MaxCompute | Elasticsearch | ClickHouse |
Integer | BIT[(M)] | 1 ~ 64 | BOOLEAN | STRING | BOOLEAN | LONG Catatan Jika data hanya sepanjang satu byte, kami menyarankan Anda menggunakan tipe data BOOLEAN di Elasticsearch. | UInt8 |
TINYINT[(M)] | -128 ~ 127 | BIGINT | SHORT | Int8 | |
TINYINT[(M)] [UNSIGNED] | 0 ~ 255 | BIGINT | INTEGER | UInt8 | |
SMALLINT[(M)] | -32768 ~ 32767 | BIGINT | SHORT | Int16 | |
SMALLINT[(M)] [UNSIGNED] | 0 ~ 65535 | BIGINT | INTEGER | UInt16 | |
MEDIUMINT[(M)] | -8388608 ~ 8388607 | BIGINT | INTEGER | Int32 | |
MEDIUMINT[(M)] [UNSIGNED] | 0 ~ 16777215 | BIGINT | INTEGER | Int32 | |
INT[(M)] | -2147483648 ~ 2147483647 | BIGINT | INTEGER | Int32 | |
INT[(M)] [UNSIGNED] | 0 ~ 4294967295 | BIGINT | LONG | UInt32 | |
BIGINT[(M)] | -9223372036854775808 ~ 9223372036854775807 | BIGINT | LONG | Int64 | |
BIGINT[(M)] [UNSIGNED] | 0 ~ 18446744073709551615 | BIGINT | LONG | UInt64 | |
Desimal | DECIMAL[(M[,D])] | M: 0 hingga 65 D: 0 hingga 30 | DOUBLE | DOUBLE Catatan Jika nilai DECIMAL mengandung titik desimal, kami menyarankan Anda menggunakan tipe data TEXT di Elasticsearch untuk memastikan konsistensi data. | DECIMAL |
FLOAT(p) | 1.175494351E-38 ~ 3.402823466E+38 | DOUBLE | FLOAT | Float32 | |
DOUBLE[(M,D)] | 2.2250738585072014E-308 ~ 1.7976931348623157E+308 | DOUBLE | DOUBLE | Float64 | |
Tanggal dan waktu | DATE | 1000-01-01~9999-12-31 Catatan Formatnya adalah YYYY-MM-DD. | DATETIME | DATE Catatan Formatnya adalah YYYY-MM-DD. Untuk informasi selengkapnya, lihat format. | DATE32 Catatan Nilai valid tipe data DATE di ClickHouse lebih kecil daripada di MySQL. Jika ClickHouse menggunakan tipe data DATE, operasi penulisan data mungkin gagal. |
DATETIME[(fsp)] | 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999 Catatan Formatnya adalah YYYY-MM-DD hh:mm:ss[.fraction], dalam UTC. | DATETIME | DATE Catatan Format data DATE adalah yyyy-MM-dd'T'HH:mm:ss, dalam UTC. Jika data DATE akurat hingga mikrodetik, format datanya adalah yyyy-MM-dd'T'HH:mm:ss.S. Untuk informasi selengkapnya, lihat format | DATETIME64 Catatan Nilai valid tipe data DATETIME di ClickHouse lebih kecil daripada di MySQL. Jika ClickHouse menggunakan tipe data DATETIME, operasi penulisan data mungkin gagal. | |
TIMESTAMP[(fsp)] | 1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999 Catatan Formatnya adalah YYYY-MM-DD hh:mm:ss[.fraction], dalam UTC. | DATETIME | DATE Catatan Format data DATE adalah yyyy-MM-dd'T'HH:mm:ss, dalam UTC. Jika data DATE akurat hingga mikrodetik, format datanya adalah yyyy-MM-dd'T'HH:mm:ss.S. Untuk informasi selengkapnya, lihat format. | DATETIME Catatan Data DATETIME tidak berisi informasi tentang zona waktu. | |
TIME[(fsp)] | -838:59:59.000000 ~ 838:59:59.000000 Catatan Formatnya adalah hh:mm:ss[.fraction], dalam UTC. | STRING | DATE Catatan Formatnya adalah YYYY-MM-DD. Untuk informasi selengkapnya, lihat format. | STRING | |
YEAR[(4)] | 1901 hingga 2155, atau 0000 | STRING | DATE Catatan Format DATE adalah yyyy, dalam UTC. Untuk informasi selengkapnya, lihat format. | Int16 | |
String | CHAR[(M)] | 0 hingga 255 karakter | STRING | TEXT | STRING |
VARCHAR(M) | 0 hingga 65.535 karakter | STRING | TEXT | STRING | |
BINARY[(M)] | 0 hingga 255 byte | STRING | BINARY | STRING | |
VARBINARY(M) | 0 hingga 65.535 byte | STRING | BINARY | STRING | |
TINYBLOB | 255 (2^8 - 1) byte | STRING | BINARY | STRING | |
TINYTEXT | 255 (2^8 - 1) karakter | STRING | TEXT | STRING | |
BLOB | 65.535 (2^16 - 1) byte | STRING | BINARY | STRING | |
TEXT | 65.535 (2^16 - 1) karakter | STRING | TEXT | STRING | |
MEDIUMBLOB | 16.777.215 (2^24 - 1) byte | STRING | BINARY | STRING | |
MEDIUMTEXT | 16.777.215 (2^24 - 1) karakter | STRING | TEXT | STRING | |
LONGBLOB | 4.294.967.295 atau 4 GB (2^32 - 1) byte | STRING | BINARY | STRING | |
LONGTEXT | 4.294.967.295 atau 4 GB (2^32 - 1) karakter | STRING | TEXT | STRING | |
ENUM('value1','value2',...) | Kolom ENUM dapat memiliki maksimal 65.535 elemen berbeda. | STRING | KEYWORD | ENUM | |
SET('value1','value2',...) | Kolom SET dapat memiliki maksimal 64 elemen berbeda. | STRING | KEYWORD | STRING | |
Spasial | GEOMETRY | Nilai geometri dari tipe apa pun | STRING | GEO_SHAPE | STRING |
POINT | T/A | STRING | GEO_POINT | STRING | |
LINESTRING | T/A | STRING | GEO_SHAPE | STRING | |
POLYGON | T/A | STRING | GEO_SHAPE | STRING | |
MULTIPOINT | T/A | STRING | GEO_SHAPE Catatan Jika data hanya sepanjang satu byte, kami menyarankan Anda menggunakan tipe data BOOLEAN di Elasticsearch. | STRING | |
MULTILINESTRING | T/A | STRING | GEO_SHAPE | STRING | |
MULTIPOLYGON | T/A | STRING | GEO_SHAPE | STRING | |
GEOMETRYCOLLECTION | Kumpulan nilai geometri dari tipe apa pun | STRING | GEO_SHAPE | STRING | |
JSON | JSON | T/A | STRING | OBJECT Catatan Jika data hanya sepanjang satu byte, kami menyarankan Anda menggunakan tipe data BOOLEAN di Elasticsearch. | STRING |
Database tujuan: instans Tablestore
Tipe data di database sumber | Tipe data di 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 atau INTEGER Catatan Nilai default: 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 |
Database tujuan: instans Lindorm
Tipe data di database sumber | Tipe data di Lindorm |
BOOLEAN | BOOLEAN |
BIT | BOOLEAN |
TINYINT | TINYINT |
SMALLINT | SMALLINT |
INTEGER | INTEGER |
BIGINT | BIGINT |
BIGINT UNSIGNED Penting Hanya tipe BIGINT yang berkisar dari -9223372036854775808 hingga 9223372036854775807 yang didukung. | BIGINT |
FLOAT | FLOAT |
DOUBLE | DOUBLE |
DECIMAL | DECIMAL Penting Instans tujuan harus memiliki presisi yang sama dengan bidang di instans sumber. |
CHAR/VARCHAR/TEXT/TINYTEXT/MEDIUMTEXT/LONGTEXT | CHAR/VARCHAR |
BINARY | BINARY |
BLOB | VARBINARY |
VARBINAY | VARBINARY |
TIMESTAMP | TIMESTAMP |
YEAR | INTEGER |
DATE | Pilih tipe data berdasarkan versi instans Lindorm tujuan.
|
DATETIME | VARCHAR Penting
|
TIME | Pilih tipe data berdasarkan versi instans Lindorm tujuan.
|
JSON | JSON |
Migrasi data dari Oracle
Ketika instans sumber adalah database Oracle yang dikelola sendiri dan instans tujuan adalah database heterogen seperti MySQL, PolarDB for MySQL, AnalyticDB for MySQL, AnalyticDB for PostgreSQL, atau PolarDB for PostgreSQL (Kompatibel dengan Oracle), pemetaan tipe datanya adalah sebagai berikut.
Jika data yang akan dimigrasikan dari instans sumber berada di luar rentang yang didukung oleh DTS, presisi data yang dimigrasikan di instans tujuan akan berkurang.
Kategori | Tipe data Oracle | Rentang nilai | Tipe data MySQL, PolarDB for MySQL, dan PolarDB-X | Tipe data ApsaraDB RDS for PPAS | Tipe data AnalyticDB for MySQL | Tipe data AnalyticDB for PostgreSQL | Tipe data PolarDB for PostgreSQL (Kompatibel dengan Oracle) |
Tipe numerik | NUMBER(p,s) | 1 hingga 22 byte. p merepresentasikan presisi dan berkisar dari 1 hingga 38. s merepresentasikan tempat desimal dan berkisar dari -84 hingga 127. | DECIMAL[(p[,s])] Catatan Jika baik presisi maupun tempat desimal tidak ada, dipetakan ke DECIMAL(65,30). | NUMBER[(p[,s])] | DECIMAL | TINYINT | SMALLINT | INTEGER | BIGINT | DECIMAL | TINYINT | SMALLINT | INTEGER | BIGINT | NUMBER(p,s) |
FLOAT(p) | 1 hingga 22 byte. p merepresentasikan variabel pointer dan berkisar dari 1 hingga 126 bit. | FLOAT | DOUBLE PRECISION | DOUBLE | DOUBLE PRECISION | DOUBLE PRECISION | |
BINARY_FLOAT | bilangan titik mengambang 32-bit, yaitu 4 byte. | FLOAT | REAL | DOUBLE | DOUBLE PRECISION | REAL | |
BINARY_DOUBLE | bilangan titik mengambang 64-bit, yaitu 8 byte. | DOUBLE | DOUBLE PRECISION | DOUBLE | DOUBLE PRECISION | DOUBLE PRECISION | |
Tipe tanggal | DATE | Tidak ada | DATETIME | DATE | DATETIME | TIMESTAMP(0) | DATE |
TIMESTAMP [(fractional_seconds_precision)] | Tidak ada | DATETIME[(fractional_seconds_precision)] | TIMESTAMP [(fractional_seconds_precision)] | DATETIME | TIMESTAMP | TIMESTAMP [(fractional_seconds_precision)] | |
TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE | Tidak ada | DATETIME[(fractional_seconds_precision)] | TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE | TIMESTAMP | TIMESTAMP WITH TIME ZONE | TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE | |
TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE | Tidak ada | DATETIME[(fractional_seconds_precision)] | TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE | DATETIME | TIMESTAMP WITH TIME ZONE | TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE | |
INTERVAL YEAR [(year_precision)] TO MONTH | Tidak ada | Tidak didukung | Tidak didukung | VARCHAR | VARCHAR(32) | INTERVAL | |
INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)] | Tidak ada | Tidak didukung | Tidak didukung | VARCHAR | VARCHAR(32) | INTERVAL | |
Tipe string | CHAR [(size [BYTE | CHAR])] | 2000 byte. | CHAR[(n)] Catatan Jika panjang tidak ada, dipetakan ke CHAR(1). | CHAR[(n)] | VARCHAR | CHAR | CHAR [(size [BYTE | CHAR])] |
NCHAR[(size)] | 2000 byte. | NATIONAL CHAR[(n)] Catatan Jika panjang tidak ada, dipetakan ke NATIONAL CHAR(1). | NCHAR[(n)] | VARCHAR | VARCHAR | NCHAR[(size)] | |
VARCHAR(size [BYTE | CHAR]) | Saat MAX_STRING_SIZE = EXTENDED, panjang maksimum adalah 32767 byte. Saat MAX_STRING_SIZE = STANDARD, panjang maksimum adalah 4000 byte. | VARCHAR(n) | VARCHAR(n) | VARCHAR(n) | VARCHAR(n) | VARCHAR(n) | |
VARCHAR2(size [BYTE | CHAR]) | Saat MAX_STRING_SIZE = EXTENDED, panjang maksimum adalah 32767 byte. Saat MAX_STRING_SIZE = STANDARD, panjang maksimum adalah 4000 byte. | VARCHAR(n) | VARCHAR2[(n)] | VARCHAR | VARCHAR | VARCHAR2(size [BYTE | CHAR]) | |
NVARCHAR2(size) | Saat MAX_STRING_SIZE = EXTENDED, panjang maksimum adalah 32767 byte. Saat MAX_STRING_SIZE = STANDARD, panjang maksimum adalah 4000 byte. | NATIONALVARCHAR[(n)] | VARCHAR2[(n)] | VARCHAR | VARCHAR | NVARCHAR2(size) | |
LONG | Panjang maksimum 2 GB (2^31-1). | LONGTEXT | LONG | VARCHAR | TEXT | LONG | |
RAW(size) | Panjang maksimum 32767 byte atau 2000 byte. | BINARY(2*size) | RAW(size) | VARBINARY | BYTEA | RAW(size) | |
LONG RAW | Panjang maksimum 2 GB. | LONGBLOB | LONG RAW | VARBINARY | BYTEA | LONG RAW | |
CLOB | Panjang maksimum (4 GB - 1) × DB_BLOCK_SIZE. | LONGTEXT | CLOB | VARCHAR | TEXT | CLOB | |
NCLOB | Panjang maksimum (4 GB - 1) × DB_BLOCK_SIZE. | LONGTEXT | NCLOB | VARCHAR | TEXT | CLOB | |
BLOB | Panjang maksimum (4 GB - 1) × DB_BLOCK_SIZE. | LONGBLOB | BLOB | VARBINARY | BYTEA | BLOB | |
BFILE | 4G. | Tidak didukung | Tidak didukung | Tidak didukung | Tidak didukung | Tidak didukung | |
Tipe JSON | JSON | Panjang maksimum 32 MB. | Tidak didukung | Tidak didukung | JSON | JSON | JSON |
Tipe ROWID | ROWID | 64 karakter. | Tidak didukung | Tidak didukung | ROWID | OID | VARCHAR |
UROWID | 64 karakter. | Tidak didukung | Tidak didukung | Tidak didukung | Tidak didukung | Tidak didukung | |
Tipe spasial | Memerlukan kustomisasi | Tidak didukung | |||||
Saat instans tujuan adalah MySQL, PolarDB for MySQL, atau PolarDB-X:
Untuk tipe CHAR, jika panjang yang ditentukan melebihi 255, DTS mengonversi tipe tersebut menjadi VARCHAR(n).
MySQL tidak mendukung tipe data seperti BFILE, INTERVAL YEAR TO MONTH, dan INTERVAL DAY TO SECOND yang tersedia di Oracle. Selama migrasi skema, DTS tidak dapat menemukan tipe data yang sesuai di MySQL. Oleh karena itu, ketiga tipe ini tidak dikonversi.
Jika sebuah tabel berisi ketiga tipe data ini, migrasi skema akan gagal. Saat memilih objek migrasi, Anda harus mengecualikan kolom yang menggunakan ketiga tipe data ini.
Tipe TIMESTAMP di MySQL tidak menyertakan informasi zona waktu. Tipe TIMESTAMP WITH TIME ZONE dan TIMESTAMP WITH LOCAL TIME ZONE di Oracle menyertakan informasi zona waktu secara default. Saat DTS memigrasikan data dari kedua tipe ini, DTS mengonversi data ke UTC sebelum menyimpannya di instans tujuan.
Saat instans tujuan adalah ApsaraDB RDS for PPAS:
ApsaraDB RDS for PPAS tidak mendukung TIMESTAMP[(fractional_seconds_precision)] WITH LOCAL TIME ZONE. Saat DTS memigrasikan data dari tipe ini, DTS mengonversi data ke UTC lalu menyimpannya di kolom TIMESTAMP[(fractional_seconds_precision)] WITH TIME ZONE di instans tujuan ApsaraDB RDS for PPAS.
Saat instans tujuan adalah AnalyticDB for PostgreSQL:
Untuk tipe bidang yang tidak didukung oleh AnalyticDB for PostgreSQL, DTS mengonversinya langsung ke BYTEA. Jika konversi gagal, konten data diatur ke NULL.
Migrasi data dari SQL Server
Ketika instans sumber adalah SQL Server (termasuk SQL Server yang dikelola sendiri dan RDS for SQL Server) dan instans tujuan adalah database heterogen seperti AnalyticDB for MySQL, AnalyticDB for PostgreSQL, PostgreSQL, atau kluster PolarDB for MySQL, pemetaan tipe datanya adalah sebagai berikut.
Jika data yang akan dimigrasikan dari instans sumber berada di luar rentang yang didukung oleh DTS, presisi data yang dimigrasikan di instans tujuan akan berkurang.
Kategori | Tipe data SQL Server | Rentang nilai | Tipe data AnalyticDB for MySQL | Tipe data PostgreSQL dan AnalyticDB for PostgreSQL | Tipe data MySQL dan PolarDB for MySQL |
Tipe integer | BIT | Tipe data INTEGER yang bisa bernilai 1, 0, atau NULL | BOOLEAN | BIT(1) | BIT(1) |
TINYINT | 0 hingga 255 | TINYINT | SMALLINT | TINYINT UNSIGNED | |
SMALLINT | -2^15 (-32768) hingga 2^15-1 (32767) | SMALLINT | SMALLINT | SMALLINT | |
INT | -2^31 (-2147483648) hingga 2^31-1 (2147483647) | INTEGER | INTEGER | INT | |
BIGINT | -2^63 (-9223372036854775808) hingga 2^63-1 (9223372036854775807) | BIGINT | BIGINT | BIGINT | |
Tipe desimal | NUMERIC[ (p[ ,s] )] | -10^38+1 hingga 10^38-1; 1 <= p <= 38 | DECIMAL | DECIMAL | DECIMAL[ (p[ ,s] )] |
DECIMAL[ (p[ ,s] )] | -10^38+1 hingga 10^38-1; 1 <= p <= 38 | DECIMAL | DECIMAL | DECIMAL[ (p[ ,s] )] | |
FLOAT | -1.79E+308 hingga -2.23E -308, 0, dan 2.23E-308 hingga 1.79E+308 | DOUBLE | DOUBLE PRECISION | DOUBLE | |
REAL | -3.40E+38 hingga -1.18E- 38, 0, dan 1.18E-38 hingga 3.40E +38 | FLOAT | REAL | DOUBLE | |
Tipe mata uang | MONEY | -922.337.203.685.477,5808 hingga 922.337.203.685.477,5807 | DECIMAL(19, 4) | DECIMAL(19, 4) | DECIMAL(19, 4) |
SMALLMONEY | -214.748,3648 hingga 214.748,3647 | DECIMAL(10, 4) | DECIMAL(10, 4) | DECIMAL(10, 4) | |
Tipe tanggal | DATE | 0001-01-01 hingga 9999-12-31 | DATE | DATE | DATE |
DATETIME | Rentang tanggal: 1 Januari 1753 hingga 31 Desember 9999. Rentang waktu: 00:00:00 hingga 23:59:59.997 | DATETIME | TIMESTAMP(3) WITHOUT TIME ZONE | DATETIME(3) | |
DATETIME2[ (fractional seconds precision) ] | Rentang tanggal: 1 Januari 0001 hingga 31 Desember 9999. Rentang waktu: 00:00:00 hingga 23:59:59.9999999 | DATETIME | TIMESTAMP(7) WITHOUT TIME ZONE | DATETIME(p) Catatan Presisi default adalah 6. | |
DATETIMEOFFSET [ (fractional seconds precision) ] | Rentang tanggal: 1 Januari 0001 hingga 31 Desember 9999. Rentang waktu: 00:00:00 hingga 23:59:59.9999999. Rentang offset zona waktu: -14:00 hingga +14:00. | TIMESTAMP | TIMESTAMP(7) WITH TIME ZONE | DATETIME(p) Catatan Presisi default adalah 6. | |
SMALLDATETIME | Detik selalu nol (:00) dan tidak memiliki bagian pecahan. | DATETIME | TIMESTAMP WITHOUT TIME ZONE | DATETIME | |
TIME [ (fractional second scale) ] | 00:00:00.0000000 hingga 23:59:59.9999999 | TIME | TIME(7) WITH TIME ZONE | TIME(p) | |
TIMESTAMP[(fsp)] | 1970-01-01 00:00:01.000000 hingga 2038-01-19 03:14:07.999999 Catatan Formatnya adalah YYYY-MM-DD hh:mm:ss[.fraction] (UTC). | VARBINARY(8) | BYTEA | VARBINARY(8) | |
Tipe string | BINARY [ ( n ) ] | n berkisar dari 1 hingga 8.000. | VARBINARY | BYTEA |
|
VARBINARY [ ( n | max) ] | n berkisar dari 1 hingga 8.000. max menunjukkan ukuran penyimpanan maksimum adalah 2^31-1 byte. | VARBINARY | BYTEA |
| |
CHAR [ ( n ) ] | n berkisar dari 1 hingga 8.000. Ukuran penyimpanan adalah n byte. | VARCHAR | CHARACTER |
| |
VARCHAR [ ( n | max ) ] | n berkisar dari 1 hingga 8.000. max menunjukkan ukuran penyimpanan maksimum adalah 2^31-1 byte (2 GB). | VARCHAR | CHARACTER |
| |
NCHAR [ ( n ) ] | Dalam satuan byte ganda, n berkisar dari 1 hingga 4.000. Ukuran penyimpanan adalah dua kali n byte. | VARCHAR | CHARACTER VARYING | VARCHAR(200) | |
NVARCHAR [ ( n | max ) ] | Dalam satuan byte ganda, n berkisar dari 1 hingga 4.000. max menunjukkan ukuran penyimpanan maksimum adalah 2^30-1 karakter (2 GB). | VARCHAR | TEXT |
| |
NTEXT | Data Unicode panjang variabel dengan panjang string maksimum 2^30-1 (1.073.741.823) byte. | VARCHAR | TEXT | LONGTEXT | |
TEXT | Panjang string maksimum adalah 2^31-1 (2.147.483.647) byte. | VARCHAR | TEXT | LONGTEXT | |
IMAGE | Data biner panjang variabel dari 0 hingga 2^31-1 (2.147.483.647) byte. | VARBINARY | BYTEA | LONGBLOB | |
Tipe spasial dan geometri | GEOGRAPHY | Tidak ada | VARCHAR | Tidak didukung | BLOB |
GEOMETRY | Tidak ada | VARCHAR | Tidak didukung | BLOB | |
Tipe XML | XML ( [ CONTENT | DOCUMENT ] xml_schema_collection ) | Tidak ada | VARCHAR | XML | LONGTEXT |
Tipe lainnya | UNIQUEIDENTIFIER | Tidak ada | VARCHAR | CHARACTER(36) | CHAR(36) |
SQL_VARIANT | Tidak ada | Tidak didukung | Tidak didukung | VARCHAR(200) | |
HIERARCHYID | Tidak ada | Tidak didukung | Tidak didukung | VARCHAR(200) | |
SYSNAME | Tidak ada | VARCHAR | CHARACTER VARYING(128) | VARCHAR(200) |
Migrasi data dari TiDB yang dikelola sendiri
Ketika instans sumber adalah database TiDB yang dikelola sendiri dan instans tujuan adalah database heterogen, seperti MySQL atau AnalyticDB for MySQL 3.0, pemetaan tipe datanya adalah sebagai berikut:
Tipe data TiDB | Tipe data MySQL |
BIGINT | BIGINT |
BIGINT UNSIGNED | DECIMAL(20,0) |
BINARY | BINARY |
BIT | BIT |
BOOL\ BOOLEAN | TINYINT |
CHAR | CHAR |
DATE | DATE |
DATETIME | DATETIME |
DECIMAL | DECIMAL |
DOUBLE | DOUBLE |
ENUM | ENUM |
FLOAT | FLOAT |
INT | INT |
INT UNSIGNED | BIGINT |
INTEGER | INTEGER |
JSON | JSON |
MEDIUMBLOB/LONGBLOB TINYBLOB / BLOB | MEDIUMBLOB/LONGBLOB TINYBLOB atau BLOB |
MEDIUMINT | MEDIUMINT |
SET | SET |
SMALLINT | SMALLINT |
SMALLINT UNSIGNED | INT |
TEXT/LONGTEXT | TEXT/LONGTEXT |
TIME | TIME |
TIMESTAMP | TIMESTAMP |
TINYINT | TINYINT |
TINYINT UNSIGNED | SMALLINT |
VARBINARY | VARBINARY |
VARCHAR | VARCHAR |
YEAR | YEAR |
Migrasi data dari DB2 for LUW
Ketika instans sumber adalah DB2 for LUW dan instans tujuan adalah database heterogen, seperti MySQL, pemetaan tipe datanya adalah sebagai berikut:
Jika data yang akan dimigrasikan dari instans sumber berada di luar rentang yang didukung oleh DTS, presisi data yang dimigrasikan di instans tujuan akan berkurang.
Kategori | Tipe data DB2 for LUW | Rentang nilai | Tipe data MySQL |
Tipe integer | SMALLINT | -32.768 hingga +32.767 | SMALLINT |
INTEGER | -2.147.483.648 hingga +2.147.483.647 | INT | |
BIGINT | -9.223.372.036.854.775.808 hingga +9.223.372.036.854.775.807 | BIGINT | |
Tipe desimal | DECIMAL(precision-integer, scale-integer) | p <= 38 | DECIMAL |
FLOAT(integer) | Rentang nilai adalah 1 hingga 53. Nilai dari 1 hingga 24 menunjukkan presisi tunggal. Nilai dari 25 hingga 53 menunjukkan presisi ganda. | FLOAT | |
DECFLOAT(precision-integer) | Tidak ada | DECIMAL(65,10) | |
Tipe tanggal | DATE | 0001-01-01 hingga 9999-12-31 | DATE |
TIME | 00:00:00 hingga 24:00:00 | TIME | |
TIMESTAMP(integer) | 0001-01-01-00.00.00.000000000000 hingga 9999-12-31-24.00.00.000000000000; 0 <= p <= 12 | DATETIME | |
Tipe string | CHARACTER(integer) | 254 | CHAR | VARCHAR |
VARCHAR(integer) | 32.672 | VARCHAR | |
CHARACTER(integer) FOR BIT DATA | 254 | BLOB | |
CLOB | 2.147.483.647 | LONGTEXT | |
GRAPHIC(integer) | 127 | CHAR(length*4) | |
VARGRAPHIC(integer) | 16.336 | CHAR(length*4) | |
DBCLOB(integer) | 1.073.741.823 | VARCHAR | LONGTEXT | |
BLOB | 2.147.483.647 | LONGBLOB | |
Tipe lainnya | XML | 2.147.483.647 | VARCHAR | LONGTEXT |
Migrasi data dari Db2 for i
Ketika instans sumber adalah Db2 for i dan instans tujuan adalah database heterogen, seperti MySQL, pemetaan tipe datanya adalah sebagai berikut:
Jika data yang akan dimigrasikan dari instans sumber berada di luar rentang yang didukung oleh DTS, presisi data yang dimigrasikan di instans tujuan akan berkurang.
Kategori | Tipe data Db2 for i | Rentang nilai | Tipe data MySQL |
Tipe integer | SMALLINT | -32.768 hingga +32.767 | SMALLINT |
INTEGER | -2.147.483.648 hingga +2.147.483.647 | INT | |
BIGINT | -9.223.372.036.854.775.808 hingga +9.223.372.036.854.775.807 | BIGINT | |
Tipe desimal | DECIMAL(precision-integer, scale-integer) | p <= 63 | DECIMAL |
NUMERIC | Tidak ada | DECIMAL | |
FLOAT(integer) | Tidak ada | FLOAT | |
DECFLOAT(precision-integer) | Tidak ada | DECIMAL(65,10) | |
Tipe tanggal | DATE | 0001-01-01 hingga 9999-12-31 | DATE |
TIME | 00:00:00 hingga 24:00:00 | TIME | |
TIMESTAMP(integer) | 0001-01-01-00.00.00.000000000000 hingga 9999-12-31-24.00.00.000000000000; 0 <= p <= 12 | DATETIME | |
Tipe string | CHAR(integer) | 32.765 | CHAR | VARCHAR |
VARCHAR(integer) | 32.739 | VARCHAR | |
CHAR(integer) FOR BIT DATA | Tidak ada | BLOB | |
CLOB | 2.147.483.647 | LONGTEXT | |
GRAPHIC(integer) | 16.382 | CHAR | |
VARGRAPHIC(integer) | 16.369 | VARCHAR | |
DBCLOB(integer) | 1.073.741.823 | LONGTEXT | |
BINARY | 32.765 | BINARY | |
VARBIN | 32.739 | VARBINARY | |
BLOB | 2.147.483.647 | LONGBLOB | |
Tipe lainnya | DATALINK | Tidak ada | VARCHAR | LONGTEXT |
ROWID | 40 | VARCHAR | LONGTEXT | |
XML | 2.147.483.647 | VARCHAR | LONGTEXT |
Migrasi data dari Teradata
Ketika instans sumber adalah Teradata dan instans tujuan adalah database heterogen, seperti AnalyticDB for PostgreSQL, pemetaan tipe datanya adalah sebagai berikut:
Tipe data Teradata | Tipe data AnalyticDB for PostgreSQL |
BYTEINT | SMALLINT |
SMALLINT | SMALLINT |
BIGINT | BIGINT |
INTEGER | INTEGER |
DATE | DATE |
JSON | JSON |
XML | XML |
CLOB | text |
Float | real |
CHAR | CHAR |
VARCHAR | VARCHAR |
Timestamp | Timestamp |
TIME | TIME |
Timestamp With Time Zone | Timestamp With Time Zone |
Time With Time Zone | Time With Time Zone |
Decimal | Decimal |
Number | numeric |
BYTE | bytea |
VARBYTE | bytea |
BLOB | bytea |
PERIOD | varchar(100) |
INTERVAL | varchar(100) |
Tipe data Teradata | Tipe data AnalyticDB for PostgreSQL |
SMALLINT | SMALLINT |
INTEGER | INT |
BIGINT | BIGINT |
DECIMAL(precision-integer, scale-integer) | DECIMAL |
NUMERIC | DECIMAL |
FLOAT(integer) | FLOAT |
DECFLOAT(precision-integer) | DECIMAL(65,10) |
DATE | DATE |
TIME | TIME |
TIMESTAMP(integer) | DATETIME |
CHAR(integer) | CHAR | VARCHAR |
VARCHAR(integer) | VARCHAR |
CHAR(integer) FOR BIT DATA | BLOB |
CLOB | LONGTEXT |
GRAPHIC(integer) | CHAR |
VARGRAPHIC(integer) | VARCHAR |
DBCLOB(integer) | LONGTEXT |
BINARY | BINARY |
VARBIN | VARBINARY |
BLOB | LONGBLOB |
DATALINK | VARCHAR | LONGTEXT |
ROWID | VARCHAR | LONGTEXT |
XML | VARCHAR | LONGTEXT |