Tipe data Hologres kompatibel dengan tipe data PostgreSQL. Topik ini menjelaskan tipe data dan tipe array yang didukung oleh Hologres.
Tipe data
Hologres mendukung sebagian tipe data PostgreSQL. Tabel berikut mencantumkan tipe data yang didukung.
|
Name |
Supported versions |
Storage size |
Description |
Value range |
Example |
|
INTEGER (alias INT atau INT4) |
Semua versi Hologres |
4 byte |
Bilangan bulat umum |
-2147483648 hingga +2147483647 |
2147483647 |
|
BIGINT (alias INT8) |
Semua versi Hologres |
8 byte |
Bilangan bulat rentang besar |
-9223372036854775808 hingga +9223372036854775807 |
9223372036854775807 |
|
BOOLEAN (alias BOOL) |
Semua versi Hologres |
1 byte |
Tipe boolean |
|
True |
|
REAL (alias FLOAT4) |
Semua versi Hologres |
4 byte |
Persisi variabel, tidak eksak. Catatan
Dalam ekosistem PostgreSQL, FLOAT tanpa presisi yang ditentukan secara default mengacu pada DOUBLE PRECISION (FLOAT8). |
Presisi 6 digit desimal. |
123.123 |
|
DOUBLE PRECISION (alias FLOAT8) |
Semua versi Hologres |
8 byte |
Persisi variabel, tidak eksak. |
Presisi 15 digit desimal. |
123.123456789123 |
|
TEXT |
Semua versi Hologres |
Panjang variabel |
String panjang variabel. TEXT menawarkan fleksibilitas lebih dibanding VARCHAR(n) atau CHAR(n). Gunakan TEXT alih-alih VARCHAR(n) atau CHAR(n). |
Tidak ada |
abcdefg |
|
TIMESTAMP WITH TIME ZONE (alias TIMESTAMPTZ) |
Semua versi Hologres |
8 byte |
Timestamp dengan zona waktu. Disimpan dengan presisi milidetik. Catatan
PostgreSQL standar menggunakan simbol |
4713 SM hingga 294276 M |
2004-10-19 10:23:54+02 |
|
DECIMAL (alias NUMERIC) |
Semua versi Hologres |
Panjang variabel |
Anda harus menentukan PRECISION dan SCALE:
|
Maksimum 38 digit (termasuk bagian bilangan bulat dan pecahan). |
DECIMAL(38, 10) |
|
DATE |
Ditambahkan di Hologres V0.8 |
4 byte |
Unitnya satu hari. |
4713 SM hingga 5874897 M |
2004-10-19 |
|
TIMESTAMP |
Ditambahkan di Hologres V0.8 |
8 byte |
Timestamp tanpa zona waktu, disimpan dengan presisi mikrodetik. |
4713 SM hingga 5874897 M |
2020-01-01 01:01:01.123456 |
|
CHAR(n) |
Ditambahkan di Hologres V0.8 |
Panjang karakter tetap, hingga n karakter. |
Ukuran penyimpanan tidak melebihi 1 GB. |
String karakter panjang tetap. |
|
|
VARCHAR(n) |
Ditambahkan di Hologres V0.8 |
Panjang variabel, hingga n karakter. |
Ukuran penyimpanan tidak melebihi 1 GB. |
String panjang variabel dengan jumlah karakter terbatas. |
abcdefg |
|
SERIAL (auto-increment sequence) |
Ditambahkan di Hologres V0.8 |
Untuk detailnya, lihat Auto-increment sequence. |
Tidak ada |
Tidak ada |
Tidak ada |
|
SMALLINT |
Ditambahkan di Hologres V0.9 |
2 byte |
Bilangan bulat rentang kecil |
-32768 hingga +32767 |
32767 |
|
JSON dan JSONB |
Ditambahkan di Hologres V0.9 |
Untuk detailnya, lihat Tipe JSON. |
Tidak ada |
Tidak ada |
Tidak ada |
|
BYTEA |
Ditambahkan di Hologres V0.9 |
Panjang variabel. Untuk detailnya, lihat Binary Data Types. |
String biner panjang variabel. |
Ukuran penyimpanan tidak melebihi 1 GB. |
Tidak ada |
|
RoaringBitmap |
Ditambahkan di Hologres V0.10 |
Panjang variabel. Untuk detailnya, lihat Fungsi RoaringBitmap. |
Array INT efisien yang mendukung operasi bitmap array konstan. |
Tidak ada |
Tidak ada |
|
RoaringBitmap64 |
Ditambahkan di Hologres V3.1 |
Panjang variabel. Untuk detailnya, lihat Fungsi RoaringBitmap. |
Array BIGINT efisien yang mendukung operasi bitmap array konstan. |
Tidak ada |
Tidak ada |
|
BIT(n) |
Ditambahkan di Hologres V0.9 |
String biner n-bit |
String biner panjang tetap. |
Ukuran penyimpanan tidak melebihi 1 GB. |
Tidak ada |
|
VARBIT(n) |
Hologres V0.9 |
Panjang variabel, hingga n bit |
String biner dengan jumlah bit terbatas |
Ukuran penyimpanan tidak melebihi 1 GB. |
Tidak ada |
|
INTERVAL |
Semua versi Hologres |
16 byte |
Tidak ada |
-178000000 tahun hingga 178000000 tahun |
interval '1 year' |
|
TIMETZ |
Ditambahkan di Hologres V0.9 |
12 byte |
Waktu dalam sehari dengan zona waktu, dengan presisi mikrodetik. |
00:00:00 hingga 24:00:00 |
12:00:00+08 |
|
TIME |
Ditambahkan di Hologres V0.9 |
8 byte |
Waktu dalam sehari tanpa zona waktu, dengan presisi mikrodetik. |
00:00:00 hingga 24:00:00 |
12:00:00 |
|
INET |
Ditambahkan di Hologres V0.9 |
Untuk informasi selengkapnya, lihat Jenis alamat jaringan. |
INET menyimpan alamat host IPv4 atau IPv6 dalam satu domain data. |
Tidak ada |
192.168.100.128/25 |
|
MONEY |
Ditambahkan di Hologres V0.9 |
8 byte. Untuk detailnya, lihat Currency types. |
Tipe money menyimpan jumlah mata uang dengan presisi pecahan tetap. |
-92233720368547758.08 hingga +92233720368547758.07 |
12.34 USD |
|
OID |
Ditambahkan di Hologres V0.9 |
4 byte |
Identifier objek numerik. |
Tidak ada |
1024 |
|
UUID |
Ditambahkan di Hologres V0.9 |
16 byte |
Identifier unik universal, panjang tetap 128 bit. Catatan
Algoritma yang diimplementasikan dalam uuid-ossp saat ini tidak didukung. |
00000000-0000-0000-0000-000000000000~ffffffff-ffff-ffff-ffff-ffffffffffff |
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 |
Pernyataan SQL berikut memberikan contoh TIMESTAMP WITH TIME ZONE, DATE, dan DECIMAL.
CREATE TABLE test_data_type (
tswtz_column TIMESTAMP WITH TIME ZONE,
date_column date,
decimal_column decimal(38, 10),
char_column char(20),
varchar_volumn varchar(225)
);
INSERT INTO test_data_type
VALUES ('2004-10-19 08:08:08', '2004-10-19', 123.456, 'abcd', 'a');
SELECT * FROM test_data_type;
tswtz_column | date_column | decimal_column | char_column | varchar_volumn
------------------------+-------------+----------------+----------------------+----------------
2004-10-19 08:08:08+08 | 2004-10-19 | 123.4560000000 | abcd | a
(1 row)
Pernyataan SQL berikut memberikan contoh BIT, VARBIT, dan BYTEA.
//BIT, VARBIT
CREATE TABLE test (a BIT(3), b BIT VARYING(5));
INSERT INTO test VALUES (B'101', B'00');
INSERT INTO test VALUES (B'10', B'101');
ERROR: bit string length 2 does not match type bit(3)
INSERT INTO test VALUES (B'10'::bit(3), B'101');
SELECT * FROM test;
a | b
-----+-----
101 | 00
100 | 101
//BYTEA
SET bytea_output = 'escape';
SELECT 'abc \153\154\155 \052\251\124'::bytea;
bytea
----------------
abc klm *\251T
RESET bytea_output; -- 'hex' by default
SELECT 'abc \153\154\155 \052\251\124'::bytea;
bytea
--------------------------
\x616263206b6c6d202aa954
(1 row)
Tipe array
Hologres hanya mendukung array satu dimensi berikut:
-
int4[]
-
int8[]
-
float4[]
-
float8[]
-
boolean[]
-
text[]
Contoh penggunaan:
-
Deklarasikan array.
CREATE TABLE array_example( int4_array int4[], int8_array int8[], float4_array float4[], float8_array float8[], boolean_array boolean[], text_array text[]); -
Masukkan array.
-
Gunakan kata kunci ARRAY.
INSERT INTO array_example( int4_array, int8_array, float4_array, float8_array, boolean_array, text_array) VALUES (ARRAY[1, 2, 3, 4], ARRAY[1, 2, 3, 4], ARRAY[1.0, 2.0], ARRAY[1.0, 2.0, 3.0], ARRAY[true, true, false], ARRAY['foo1', 'foo2', 'foo3']); -
Gunakan ekspresi
{}.INSERT INTO array_example( int4_array, int8_array, float4_array, float8_array, boolean_array, text_array) VALUES ('{1, 2, 3, 4}', '{1, 2, 3, 4}', '{1.0, 2.0}', '{1.0, 2.0, 3.0}', '{true, true, false}', '{"foo1", "foo2", "foo3"}');
-
-
Kueri array.
-
Kueri satu elemen dalam array.
SELECT int4_array[3] FROM array_example; -
Kueri beberapa elemen dalam array.
SELECT int4_array[1:2] FROM array_example;
-
Pemetaan tipe data antara MaxCompute dan Hologres
Tabel berikut menunjukkan pemetaan tipe data antara MaxCompute dan Hologres saat Anda membuat tabel eksternal MaxCompute.
|
Tipe data MaxCompute |
Tipe data Hologres |
Versi pemetaan yang didukung |
Deskripsi |
|
JSON |
JSONB |
Ditambahkan di Hologres V4.1 |
|
|
TEXT |
Semua versi Hologres |
Tidak ada |
|
BIGINT |
INT8 |
Semua versi Hologres |
Tidak ada |
|
INT |
|
Semua versi Hologres |
Tidak ada |
|
FLOAT |
|
Semua versi Hologres |
Tidak ada |
|
DOUBLE |
|
Semua versi Hologres |
Tidak ada |
|
BOOLEAN |
BOOL |
Semua versi Hologres |
Tidak ada |
|
DATETIME |
TIMESTAMP WITH TIME ZONE |
Semua versi Hologres |
DATETIME MaxCompute adalah tipe tanggal-waktu yang menggunakan China Standard Time (UTC+8) sebagai waktu sistem standar. Rentang nilainya dari 1 Januari 0000 hingga 31 Desember 9999, dengan presisi milidetik. |
|
DECIMAL |
NUMERIC |
Semua versi Hologres |
Jika tidak ada presisi yang ditentukan untuk DECIMAL MaxCompute, nilai default-nya adalah (38,18). Saat Anda menggunakan IMPORT FOREIGN SCHEMA untuk membuat tabel, sistem secara otomatis mengonversi presisinya. |
|
TIMESTAMP |
TIMESTAMP WITH TIME ZONE |
Ditambahkan di Hologres V0.8 |
|
|
CHAR(n) |
Default ke CHAR(n). Hologres juga mendukung pemetaan CHAR(n) MaxCompute ke TEXT. Atur parameter |
Ditambahkan di Hologres V0.8 |
CHAR(n) MaxCompute adalah tipe karakter panjang tetap, di mana n adalah panjangnya. Nilai maksimumnya adalah 255. Jika panjangnya kurang, akan diisi spasi. |
|
VARCHAR(n) |
Default ke VARCHAR(n). Hologres juga mendukung pemetaan VARCHAR(n) MaxCompute ke TEXT. Atur parameter |
Ditambahkan di Hologres V0.8 |
VARCHAR(n) MaxCompute adalah tipe karakter panjang variabel, di mana n adalah panjangnya. Rentang nilainya adalah 1 hingga 65535. |
|
DATE |
DATE |
Ditambahkan di Hologres V0.8 |
Tidak ada |
|
SMALLINT |
Default ke INT2. Hologres juga mendukung pemetaan SMALLINT MaxCompute ke INT8. Atur parameter |
Semua versi Hologres (INT4 di V0.8, INT2 di V0.9) |
Tidak ada |
|
TINYINT |
Default ke INT2. Hologres juga mendukung pemetaan TINYINT MaxCompute ke INT8. Atur parameter |
Semua versi Hologres (INT4 di V0.8, INT2 di V0.9) |
Tidak ada |
|
CHAR |
Tidak didukung |
Tidak didukung |
Tidak ada |
|
ARRAY<INT> |
INT4[] |
Ditambahkan di Hologres V0.8 |
Tidak ada |
|
ARRAY<BIGINT> |
INT8[] |
Ditambahkan di Hologres V0.8 |
Tidak ada |
|
ARRAY<FLOAT> |
FLOAT4[] |
Ditambahkan di Hologres V0.8 |
Tidak ada |
|
ARRAY<DOUBLE> |
FLOAT8[] |
Ditambahkan di Hologres V0.8 |
Tidak ada |
|
ARRAY<BOOLEAN> |
BOOLEAN[] |
Ditambahkan di Hologres V0.8 |
Tidak ada |
|
ARRAY<STRING> |
TEXT[] |
Ditambahkan di Hologres V0.8 |
Tidak ada |
|
BINARY |
BYTEA |
Ditambahkan di Hologres V0.9 |
Tidak ada |
|
ARRAY<TINYINT> |
Tidak didukung |
Tidak didukung |
Tidak ada |
|
ARRAY<SMALLINT> |
Tidak didukung |
Tidak didukung |
Tidak ada |
Jika tabel data MaxCompute berisi field dengan tipe data yang tidak didukung oleh Hologres, Anda tetap dapat mengkueri field yang didukung, asalkan kueri tersebut tidak mengakses field yang tidak didukung.
Pemetaan tipe data antara Blink/Flink dan Hologres
Tabel berikut menunjukkan pemetaan tipe data antara Blink/Flink dan Hologres.
Tabel sumber Binlog hanya mendukung sebagian tipe data. Untuk informasi lebih lanjut, lihat Konsumsi Binlog Hologres secara real-time dengan Flink/Blink.
|
Tipe data Flink |
Tipe data Hologres |
Versi Hologres yang didukung |
Versi Flink yang didukung |
|
INT |
|
Semua versi Hologres |
Semua versi |
|
BIGINT |
INT8 |
Semua versi Hologres |
Semua versi |
|
VARCHAR |
TEXT |
Semua versi Hologres |
Semua versi |
|
DOUBLE |
|
Semua versi Hologres |
Semua versi |
|
BOOLEAN |
BOOL |
Semua versi Hologres |
Semua versi |
|
DECIMAL |
NUMERIC Catatan
Saat menggunakan CTAS untuk menyinkronkan data ke Hologres:
Untuk informasi lebih lanjut, lihat Mengapa kunci utama tabel MySQL dengan bigint unsigned menjadi decimal saat mendaftarkan Flink Catalog, tetapi menjadi text setelah disinkronkan ke Hologres menggunakan CTAS?. |
Semua versi Hologres |
Semua versi |
|
DATE |
DATE |
Ditambahkan di Hologres V0.8 |
Semua versi |
|
TIMESTAMP |
TIMESTAMP WITH TIME ZONE |
Semua versi Hologres |
Semua versi |
|
FLOAT |
|
Semua versi Hologres |
Semua versi |
|
TIME |
TIME dan TIMETZ |
Semua versi Hologres Catatan
Mulai dari Hologres V2.1.24, Fixed Plan mempercepat eksekusi SQL mendukung tipe TIME dan TIMETZ. |
|
|
VARCHAR |
JSONB |
Ditambahkan di Hologres V0.10 |
|
|
VARCHAR |
JSON |
Ditambahkan di Hologres V0.9 |
|
|
BYTES |
RoaringBitmap |
Ditambahkan di Hologres V0.10 |
|
|
VARCHAR |
GEOMETRY dan GEOGRAPHY |
Semua versi Hologres Catatan
Mulai dari Hologres V2.1, Fixed Plan mempercepat eksekusi SQL mendukung penulisan data GEOMETRY dan GEOGRAPHY. |
|
|
TINYINT |
SMALLINT |
Semua versi Hologres |
|
|
SMALLINT |
SMALLINT |
Semua versi Hologres |
|
|
ARRAY<INT> |
int4[] |
Ditambahkan di Hologres V0.8 |
|
|
ARRAY<BIGINT> |
int8[] |
Ditambahkan di Hologres V0.8 |
|
|
ARRAY<FLOAT> |
float4[] |
Ditambahkan di Hologres V0.8 |
|
|
ARRAY<DOUBLE> |
float8[] |
Ditambahkan di Hologres V0.8 |
|
|
ARRAY<BOOLEAN> |
boolean[] |
Ditambahkan di Hologres V0.8 |
|
|
ARRAY<VARCHAR> |
TEXT[] |
Ditambahkan di Hologres V0.8 |
|
|
ARRAY<VARCHAR> |
VARCHAR[] |
Ditambahkan di Hologres V0.8 |
|
|
CHAR |
Tidak didukung |
Tidak didukung |
Tidak didukung |
|
BINARY |
Tidak didukung |
Tidak didukung |
Tidak didukung |
Pemetaan tipe data antara MySQL dan Hologres
Tabel berikut menunjukkan pemetaan tipe data antara MySQL dan Hologres. Untuk informasi lebih lanjut, lihat Migrasi MySQL ke Hologres.
|
Tipe data MySQL |
Tipe data Hologres |
|
BIGINT |
BIGINT |
|
BINARY(n) |
BYTEA |
|
BIT |
BOOLEAN |
|
|
|
DATE |
DATE |
|
DATETIME |
TIMESTAMP [WITHOUT TIME ZONE] |
|
|
|
DOUBLE |
DOUBLE PRECISION |
|
FLOAT |
REAL |
|
|
|
MEDIUMINT |
INTEGER |
|
NUMERIC(p,s) |
NUMERIC(p,s) |
|
SMALLINT |
SMALLINT |
|
BYTEA |
|
TINYINT |
SMALLINT |
|
TEXT |
|
TIME |
TIME [WITHOUT TIME ZONE] |
|
TIMESTAMP |
TIMESTAMP [WITH TIME ZONE] |
|
BYTEA |
|
VARCHAR(n) |
VARCHAR(n) |
|
VARCHAR(max) |
TEXT |
Pemetaan tipe data antara DLF dan Hologres
|
Tipe data DLF |
Tipe data Hologres |
|
TINYINT |
SMALLINT |
|
SMALLINT |
SMALLINT |
|
INT |
INT |
|
BIGINT |
BIGINT |
|
BOOLEAN |
BOOLEAN |
|
FLOAT |
REAL |
|
DOUBLE |
DOUBLE PRECISION |
|
DATE |
DATE |
|
TIMESTAMP |
TIMESTAMP WITHOUT TIME ZONE |
|
STRING |
TEXT |
|
BINARY |
BYTEA |
|
DECIMAL(m,n) |
NUMERIC(m,n) |
|
VARCHAR(n) |
CHARACTER VARYING(n) |
|
CHAR(n) |
CHARACTOR(n) |
|
ARRAY<type> |
ARRAY<hologres_data_type> Tipe yang didukung:
|
Pemetaan tipe data antara Hive dan Hologres
|
Tipe data Hive |
Tipe data Hologres |
|
TINYINT |
SMALLINT |
|
SMALLINT |
SMALLINT |
|
INT |
INT |
|
BIGINT |
BIGINT |
|
FLOAT |
REAL |
|
DOUBLE |
DOUBLE PRECISION |
|
DECIMAL |
NUMERIC |
|
NUMERIC |
NUMERIC |
|
DATE |
DATE |
|
TIMESTAMP |
TIMESTAMP WITHOUT TIME ZONE |
|
STRING |
TEXT |
|
VARCHAR |
VARCHAR |
|
CHAR |
CHAR |
|
BINARY |
BYTEA |
|
BOOL |
BOOLEAN |
|
ARRAY<type> |
ARRAY<hologres_data_type> Tipe yang didukung:
|
Pemetaan tipe data antara Hudi dan Hologres
Fitur ini didukung di Hologres V1.3 dan versi selanjutnya.
|
Tipe data Hudi |
Tipe data Hologres |
|
IntegerType |
INT |
|
LongType |
BIGINT |
|
FloatType |
REAL |
|
DoubleType |
DOUBLE PRECISION |
|
DecimalType |
NUMERIC |
|
TimestampType |
TIMESTAMP WITHOUT TIME ZONE |
|
DateType |
DATE |
|
YearMonthIntervalType |
Tidak didukung |
|
DayTimeIntervalType |
Tidak didukung |
|
StringType |
TEXT |
|
VarcharType |
Tidak didukung |
|
CharType |
Tidak didukung |
|
BooleanType |
BOOL |
|
BinaryType |
BYTEA |
|
ByteType |
Tidak didukung |
|
ShortType |
Tidak didukung |
|
ArrayType(elementType, containsNull) |
ARRAY<hologres_data_type> Tipe yang didukung:
|
Pemetaan tipe data antara Delta Lake dan Hologres
Fitur ini didukung di Hologres V1.3 dan versi selanjutnya.
|
Tipe data Delta Lake |
Tipe data Hologres |
|
TINYINT |
SMALLINT |
|
SMALLINT |
SMALLINT |
|
INT |
INT |
|
BIGINT |
BIGINT |
|
FLOAT |
REAL |
|
DOUBLE |
DOUBLE PRECISION |
|
DECIMAL(p,s) |
NUMERIC |
|
TIMESTAMP |
TIMESTAMP WITHOUT TIME ZONE |
|
DATE |
DATE |
|
INTERVAL intervalQualifier |
Tidak didukung |
|
STRING |
TEXT |
|
BOOLEAN |
BOOLEAN |
|
BINARY |
BYTEA |
|
ARRAY<elementType> |
ARRAY<hologres_data_type> Tipe yang didukung:
|
Pemetaan tipe data antara Paimon dan Hologres
|
Tipe data Paimon |
Tipe data Hologres |
|
TINYINT |
SMALLINT |
|
SMALLINT |
SMALLINT |
|
INT |
INT |
|
BIGINT |
BIGINT |
|
FLOAT |
REAL |
|
DOUBLE |
DOUBLE PRECISION |
|
DECIMAL(p,s) |
DECIMAL |
|
TIMESTAMP |
TIMESTAMP WITHOUT TIME ZONE |
|
DATE |
DATE |
|
CHAR |
CHAR |
|
VARCHAR |
VARCHAR |
|
BINARY |
BYTEA |
|
ARRAY |
ARRAY<hologres_data_type> Tipe yang didukung:
|
Pemetaan tipe data antara Iceberg dan Hologres
|
Tipe data Iceberg |
Tipe data Hologres |
|
BOOLEAN |
BOOLEAN |
|
INT |
INTEGER |
|
LONG |
BIGINT |
|
FLOAT |
REAL |
|
DOUBLE |
DOUBLE PRECISION |
|
DECIMAL(P,S) |
NUMERIC(P,S) |
|
DATE |
DATE |
|
TIME |
TEXT (Spark tidak mendukung tipe TIME. Tipe TIME Flink menjadi STRING saat ditulis ke DLF.) |
|
TIMESTAMP |
TIMESTAMP WITHOUT TIME ZONE |
|
TIMESTAMPTZ |
Tidak didukung |
|
STRING |
TEXT |
|
UUID |
Tidak didukung (Flink/Spark tidak dapat menulis tipe ini.) |
|
FIXED(L) |
BYTEA |
|
BINARY |
BYTEA |
|
LIST |
ARRAY<hologres_data_type> Tipe yang didukung:
|
|
STRUCT |
Tidak didukung |
|
MAP |
Tidak didukung |