Hologres, çeşitli PostgreSQL veri türleriyle yerel olarak uyumludur ve SPARSEVECTOR gibi yeni türler ekler. Bu konu, yerel veri türlerini, tek boyutlu dizi türlerini ve MaxCompute, Flink, MySQL, DLF, Hive, Hudi, Delta Lake, Paimon ve Iceberg dahil olmak üzere üst akış sistemlerinden gelen tür eşlemelerini kapsar.
Veri türleri
Aşağıdaki tabloda Hologres tarafından desteklenen tüm veri türleri listelenmiştir. Çoğu PostgreSQL ile uyumludur; RoaringBitmap, RoaringBitmap64 ve SPARSEVECTOR ise Hologres'e özeldir. SQL'de tüm tür adları ve takma adlar büyük/küçük harfe duyarlı değildir ancak kural gereği büyük harfle gösterilir.
|
Name |
Aliases |
Storage size |
Description |
Value range |
Example |
|
INTEGER |
INT, INT4 |
4 bytes |
Common integer. |
-2,147,483,648 to +2,147,483,647 |
2147483647 |
|
BIGINT |
INT8 |
8 bytes |
Large-range integer. |
-9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 |
9223372036854775807 |
|
SMALLINT |
— |
2 bytes |
Small-range integer. |
-32,768 to +32,767 |
32767 |
|
REAL |
FLOAT4 |
4 bytes |
Variable-precision floating point, inexact. In the PostgreSQL ecosystem, |
6 decimal digits of precision |
123.123 |
|
DOUBLE PRECISION |
FLOAT8 |
8 bytes |
Variable-precision floating point, inexact. |
15 decimal digits of precision |
123.123456789123 |
|
DECIMAL |
NUMERIC |
Variable |
Exact numeric. Specify both PRECISION (total digits, 0–38) and SCALE (digits after the decimal point, 0–PRECISION). From V4.2, high-precision mode supports up to 76 digits: PRECISION (0–76) and SCALE (0–PRECISION). |
Up to 38 digits before and 38 digits after the decimal point. From V4.2, supports up to 76 digits with high precision. |
DECIMAL(38, 10) |
|
BOOLEAN |
BOOL |
1 byte |
Boolean. |
True / False |
True |
|
TEXT |
— |
Variable |
Variable-length string. Prefer TEXT over VARCHAR(n) or CHAR(n) for maximum flexibility. |
None |
abcdefg |
|
CHAR(n) |
— |
Fixed, up to n characters |
Fixed-length character string. Storage size does not exceed 1 GB. |
Up to n characters |
abcd |
|
VARCHAR(n) |
— |
Variable, up to n characters |
Variable-length string with a character limit. Storage size does not exceed 1 GB. |
Up to n characters |
abcdefg |
|
TIMESTAMP WITH TIME ZONE |
TIMESTAMPTZ |
8 bytes |
Timestamp with time zone, stored with millisecond precision. If no time zone offset is specified, the system automatically adds the default time zone to the data. |
4713 BC to 294276 AD |
2004-10-19 10:23:54+02 |
|
TIMESTAMP |
— |
8 bytes |
Timestamp without time zone, stored with microsecond precision. |
4713 BC to 5874897 AD |
2020-01-01 01:01:01.123456 |
|
DATE |
— |
4 bytes |
Date, with day granularity. |
4713 BC to 5874897 AD |
2004-10-19 |
|
TIME |
— |
8 bytes |
Time of day without time zone, with microsecond precision. |
00:00:00 to 24:00:00 |
12:00:00 |
|
TIMETZ |
— |
12 bytes |
Time of day with time zone, with microsecond precision. |
00:00:00 to 24:00:00 |
12:00:00+08 |
|
INTERVAL |
— |
16 bytes |
Time interval. |
-178,000,000 years to 178,000,000 years |
interval '1 year' |
|
JSON |
— |
Variable |
JSON type. For details, see . |
None |
None |
|
JSONB |
— |
Variable |
Binary JSON type. For details, see . |
None |
None |
|
BYTEA |
— |
Variable |
Variable-length binary string. Storage size does not exceed 1 GB. For details, see Binary Data Types. |
None |
None |
|
BIT(n) |
— |
n bits |
Fixed-length bit string. Storage size does not exceed 1 GB. |
None |
None |
|
VARBIT(n) |
— |
Variable, up to n bits |
Variable-length bit string. Storage size does not exceed 1 GB. |
None |
None |
|
INET |
— |
Variable |
IPv4 or IPv6 host address. For details, see Network address types. |
None |
192.168.100.128/25 |
|
MONEY |
— |
8 bytes |
Currency amount with fixed fractional precision. For details, see Currency types. |
-92,233,720,368,547,758.08 to +92,233,720,368,547,758.07 |
12.34 USD |
|
OID |
— |
4 bytes |
Numeric object identifier. |
None |
1024 |
|
UUID |
— |
16 bytes |
Universally unique identifier (UUID), fixed-length 128-bit value. uuid-ossp algorithms are not currently supported. |
00000000-0000-0000-0000-000000000000 to ffffffff-ffff-ffff-ffff-ffffffffffff |
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 |
|
SERIAL |
— |
Variable |
Auto-increment sequence. For details, see Auto-increment sequence. |
None |
None |
|
RoaringBitmap |
— |
Variable |
Efficient INT array that supports constant array bitmap operations. For details, see RoaringBitmap functions. |
None |
None |
|
RoaringBitmap64 |
— |
Variable |
Efficient BIGINT array that supports constant array bitmap operations. For details, see RoaringBitmap functions. |
None |
None |
|
SPARSEVECTOR |
— |
Variable. Depends on the number of non-zero elements. |
Sparse vector type. Stores only the non-zero elements and their index positions, which suits high-dimensional sparse vector workloads such as text retrieval and recommendation systems. |
A set of index-value pairs. Index positions are integers that start at 1 and must be smaller than the term_id_limit value of the sparse vector index; values are floating-point numbers. |
'{1:0.1, 50:0.8, 200:0.3}' |
|
GEOMETRY and GEOGRAPHY |
— |
Variable. For details, see PostGIS-based geographic analysis. |
PostGIS is a spatial extension of PostgreSQL that provides spatial objects, spatial indexes, spatial operation functions, and spatial operators. Performance is improved from V1.3. |
None |
None |
Sürüm kullanılabilirliği: Tüm sürümlerde bulunmayan türler belirli sürümlerde eklenmiştir:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Örnekler
Aşağıdaki örneklerde seçili türler için yaygın DDL ve DML işlemleri gösterilmiştir.
DECIMAL256 kullanımı ve örnekler
Kullanım sınırları:
DECIMAL256 yalnızca Hologres V4.2 ve sonraki sürümlerde desteklenir.
DECIMAL256 dağıtım anahtarı, kümeleme anahtarı, bölümleme anahtarı, segment anahtarı, bitmap dizini veya sözlük kodlamalı sütun olarak kullanılamaz.
CREATE TABLE ve CREATE DYNAMIC TABLE (tam ve artımlı yenileme) deyimlerinde desteklenir.
Satır yönelimli, sütun yönelimli ve satır-sütun hibrit depolamada desteklenir.
Desteklenen işlevler: aritmetik işlemler, karşılaştırma işlemleri, SUM, AVG, MIN, MAX, CAST ve TRY_CAST.
Örnek:
-- Create a table with DECIMAL256 columns
CREATE TABLE financial_transactions (
id INT PRIMARY KEY,
-- Standard DECIMAL(38,19): supports up to 38 digits
amount_standard DECIMAL(38, 19),
-- DECIMAL256(76,38): supports up to 76 digits
amount_high_precision DECIMAL(76, 38),
description TEXT
);
-- Insert high-precision values
INSERT INTO financial_transactions VALUES
(1,
1234567890123456789.1234567890123456789, -- 38-digit precision
'12345678901234567890123456789012345678.12345678901234567890123456789012345678', -- 76-digit precision
'High-precision transaction amount'
);
-- Query the data
SELECT * FROM financial_transactions;
id | amount_standard | amount_high_precision | description
----+-----------------------------------------+-------------------------------------------------------------------------------+----------------------------------
1 | 1234567890123456789.1234567890123456789 | 12345678901234567890123456789012345678.12345678901234567890123456789012345678 | High-precision transaction amount
(1 row)
Zaman türü örnekleri
TIMESTAMPTZ, DATE ve 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_column 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_column
------------------------+-------------+----------------+----------------------+----------------
2004-10-19 08:08:08+08 | 2004-10-19 | 123.4560000000 | abcd | a
(1 row)
BIT, VARBIT ve BYTEA:
-- BIT and 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 (escape output format)
SET bytea_output = 'escape';
SELECT 'abc \153\154\155 \052\251\124'::bytea;
bytea
----------------
abc klm *\251T
RESET bytea_output; -- 'hex' is the default
SELECT 'abc \153\154\155 \052\251\124'::bytea;
bytea
--------------------------
\x616263206b6c6d202aa954
(1 row)
Dizi türleri
Hologres yalnızca tek boyutlu dizileri destekler. Aşağıdaki tabloda, desteklenen dizi türleri ile bunların bildirim ve kullanım sözdizimleri gösterilmektedir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tam örnek:
-- Declare
CREATE TABLE array_example(
int4_array int4[],
int8_array int8[],
float4_array float4[],
float8_array float8[],
boolean_array boolean[],
text_array text[]
);
-- Insert using the ARRAY keyword
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']
);
-- Insert using the {} syntax
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"}'
);
-- Query a single element (1-based index)
SELECT int4_array[3] FROM array_example;
-- Query a range
SELECT int4_array[1:2] FROM array_example;
MaxCompute ve Hologres arasında veri türü eşlemesi
Aşağıdaki tabloda, bir MaxCompute yabancı tablosu oluşturulurken MaxCompute türlerinin Hologres türlerine nasıl eşlendiği gösterilmektedir.
Bir MaxCompute tablosunda desteklenmeyen türlerde alanlar bulunuyorsa, sorgu bu desteklenmeyen alanlara erişmediği sürece desteklenen alanları yine de sorgulayabilirsiniz.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Blink/Flink ile Hologres Arasında Veri Türü Eşleştirmesi
Aşağıdaki tabloda Flink veri türlerinin Hologres veri türleriyle nasıl eşleştiği gösterilmektedir.
Binlog kaynak tabloları yalnızca belirli bir veri türü alt kümesini destekler. Daha fazla bilgi için bkz. Flink/Blink ile Hologres Binlog'u Gerçek Zamanlı Olarak Tüketme .
|
Flink türü |
Hologres türü |
Desteklenen Hologres sürümü |
Desteklenen Flink sürümü |
|
INT |
INT4, INT |
Tüm sürümler |
Tüm sürümler |
|
BIGINT |
INT8 |
Tüm sürümler |
Tüm sürümler |
|
VARCHAR |
TEXT |
Tüm sürümler |
Tüm sürümler |
|
DOUBLE |
FLOAT, FLOAT8, DOUBLE PRECISION |
Tüm sürümler |
Tüm sürümler |
|
BOOLEAN |
BOOL |
Tüm sürümler |
Tüm sürümler |
|
DECIMAL |
NUMERIC |
Tüm sürümler |
Tüm sürümler |
|
DATE |
DATE |
Hologres V0.8 |
Tüm sürümler |
|
TIMESTAMP |
TIMESTAMP WITH TIME ZONE, TIMESTAMPTZ |
Tüm sürümler |
Tüm sürümler |
|
TIMESTAMP |
TIMESTAMP WITHOUT TIME ZONE, TIMESTAMP |
Tüm sürümler |
Tüm sürümler. Not: Fixed Plan şu anda TIME türünü desteklememektedir. Ayrıntılar için bkz. Fixed Plan. |
|
FLOAT |
FLOAT4, REAL |
Tüm sürümler |
Tüm sürümler |
|
TINYINT |
SMALLINT |
Tüm sürümler |
Sink: VVR-4.0.13-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: VVR-4.0.13-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. |
|
SMALLINT |
SMALLINT |
Tüm sürümler |
Sink: Tüm sürümler. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: Tüm sürümler. |
|
TIME |
TIME ve TIMETZ |
Tüm sürümler. Hologres V2.1.24'ten başlayarak Fixed Plan TIME ve TIMETZ türlerini destekler. |
Sink: VVR-4.0.13-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: VVR-4.0.13-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. Not
Fixed Plan TIME türünü desteklemez; bu türü mümkün olduğunca kullanmaktan kaçının. Ayrıntılar için bkz. Fixed Plan. |
|
VARCHAR |
JSONB |
Hologres V0.10 |
Sink: VVR-4.0.12-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: VVR-4.0.12-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. |
|
VARCHAR |
JSON |
Hologres V0.9 |
Sink: VVR-4.0.12-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: VVR-4.0.12-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. |
|
BYTES |
RoaringBitmap |
Hologres V0.10 |
Sink: VVR-4.0.12-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: VVR-4.0.12-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. |
|
VARCHAR |
GEOMETRY ve GEOGRAPHY |
Tüm sürümler. Hologres V2.1'den başlayarak Fixed Plan GEOMETRY ve GEOGRAPHY verilerinin yazılmasını destekler. |
Sink: VVR-4.0.13-Flink-1.13 ve sonraki sürümler. RPC modu desteklenmez. Source: Desteklenmez. Dimension: Desteklenmez. |
|
ARRAY\<INT\> |
int4[] |
Hologres V0.8 |
Sink: Tüm sürümler. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: Tüm sürümler. |
|
ARRAY\<BIGINT\> |
int8[] |
Hologres V0.8 |
Sink: Tüm sürümler. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: Tüm sürümler. |
|
ARRAY\<FLOAT\> |
float4[] |
Hologres V0.8 |
Sink: Tüm sürümler. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: Tüm sürümler. |
|
ARRAY\<DOUBLE\> |
float8[] |
Hologres V0.8 |
Sink: Tüm sürümler. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: Tüm sürümler. |
|
ARRAY\<BOOLEAN\> |
boolean[] |
Hologres V0.8 |
Sink: Tüm sürümler. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: Tüm sürümler. |
|
ARRAY\<VARCHAR\> |
TEXT[] |
Hologres V0.8 |
Sink: Tüm sürümler. Source: VVR-6.0.3-Flink-1.15 ve sonraki sürümler. RPC modu desteklenmez. Dimension: Tüm sürümler. |
|
ARRAY\<VARCHAR\> |
VARCHAR[] |
Hologres V0.8 |
Sink: Tüm sürümler. Source: Hologres V4.0.19 ve sonraki sürümler, Flink motoru VVR-11.6-JDK11-Flink-1.20 ile. Dimension: Tüm sürümler. |
|
CHAR |
Desteklenmez |
Desteklenmez |
Desteklenmez |
|
BINARY |
Desteklenmez |
Desteklenmez |
Desteklenmez |
CTAS kullanarak verileri Hologres'e senkronize ederken DECIMAL birincil anahtarlar TEXT olarak eşlenirken, birincil anahtar olmayan DECIMAL alanları DECIMAL olarak eşlenir. Daha fazla bilgi için bkz. bigint unsigned birincil anahtara sahip MySQL tablosunun Flink Kataloğu kaydedilirken neden decimal'a dönüştüğünü ancak CTAS kullanılarak Hologres'e senkronize edilirken text'e dönüştüğünü açıklayın?
MySQL ile Hologres Arasında Veri Türü Eşleştirmesi
Geçiş kılavuzu için bkz. MySQL'i Hologres'e Geçirme.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DLF ile Hologres Arasında Veri Türü Eşleştirmesi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hive ile Hologres Arasında Veri Türü Eşleştirmesi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hudi ile Hologres Arasında Veri Türü Eşleştirmesi
Bu eşleştirme Hologres V1.3 ve sonraki sürümlerde desteklenmektedir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Delta Lake ile Hologres Arasında Veri Türü Eşleştirmesi
Bu eşleştirme Hologres V1.3 ve sonraki sürümlerde desteklenmektedir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Paimon ile Hologres Arasında Veri Türü Eşleştirmesi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Iceberg ile Hologres Arasında Veri Türü Eşleştirmesi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|