Tüm Ürünler
Search
Belge Merkezi

Hologres:ClickHouse işlevleri

Son Güncelleme:Oct 06, 2026

Hologres, ClickHouse işlevlerinin bir alt kümesini yerel olarak destekler ve diğer yaygın ClickHouse işlevleri için eşdeğer uygulamalar sunar. Aşağıdaki bölümlerde her işlev kategorisi ele alınır, Hologres eşdeğerleri listelenir ve çalıştırılabilir örnekler verilir.

Dize işlevleri

LENGTH, LOWER, UPPER, CONCAT, SUBSTRING ve TRIM dahil olmak üzere yaygın ClickHouse dize işlevlerinin sözdizimi, Hologres karşılıklarıyla aynıdır. Tam liste için bkz. Dize işlevleri.

Matematiksel işlevler

CBRT, DEGREES, EXP, IN, LOG, PI, RADIANS, SIGN ve SQRT dahil olmak üzere yaygın ClickHouse matematiksel işlevlerinin sözdizimi, Hologres karşılıklarıyla aynıdır. Tam liste için bkz. Matematiksel işlevler.

Tür dönüştürme işlevleri

Hologres V1.3.36 ve sonraki sürümler aşağıdaki ClickHouse tarzı tür dönüştürme işlevlerini destekler. Sabit değerler giriş parametresi olarak kullanılamaz. Bu işlevlerin kapsamadığı veri türlerini dönüştürmek için bunun yerine CAST(col AS type) veya col::type sözdizimini kullanın.

Uyumsuz bir türde değer geçirildiğinde hata döndürülür. Örneğin, sayısal olmayan bir dizeyi toInt64 işlevine geçirmek, kaynak ve hedef türler uyumsuz olduğu için başarısız olur.
ClickHouse işlevi Hologres eşdeğeri Dönüş türü
toString(anyelement) toString(anyelement) TEXT
toInt64(anyelement) toInt64(anyelement) BIGINT
toInt32(anyelement) toInt32(anyelement) INT
toDate(text) toDate(text) DATE
toFloat64(anyelement) toFloat64(anyelement) DOUBLE PRECISION

Aşağıdaki örneklerde, şu şekilde oluşturulan public.tb1 tablosu kullanılır:

CREATE TABLE public.tb1 (
  id bigint NOT NULL,
  id_text text,
  data_date text,
  data_float text,
  data_text text
);
INSERT INTO public.tb1 VALUES (1234,'123','20190102','1.23','hologres');

toString(anyelement)

Herhangi bir türdeki değeri TEXT türüne dönüştürür.

SELECT toString(id) FROM public.tb1;
1234

toInt64(anyelement)

BIGINT dışındaki sayısal bir değeri BIGINT türüne dönüştürür.

SELECT toInt64(id_text) FROM public.tb1;
1234

toInt32(anyelement)

INT dışındaki sayısal bir değeri INT türüne dönüştürür.

SELECT toInt32(id_text) FROM public.tb1;
123

toDate(text)

Bir TEXT değerini DATE türüne dönüştürür. Giriş geçerli bir tarih biçiminde olmalıdır; aksi takdirde hata döndürülür.

Başarılı dönüştürme:

SELECT toDate(data_date) FROM public.tb1;
2019-01-02

Başarısız dönüştürme (uyumsuz biçim):

SELECT toDate(data_text) FROM public.tb1;
ERROR: *** invalid input syntax for type date ***

toFloat64(anyelement)

DOUBLE PRECISION dışındaki sayısal bir değeri DOUBLE PRECISION türüne dönüştürür.

SELECT toFloat64(data_float) FROM public.tb1;
1.23

Tarih/saat işlevleri

Hologres tarafından desteklenen tarih/saat işlevlerinin tam listesi için bkz. Tarih/saat dönüştürme işlevleri.

ClickHouse işlevi Hologres eşdeğeri
toYear, toMonth, toQuarter extract(field FROM timestamp) veya date_part(text, timestamp)
addDays, addMonths, addYears + işleci ile interval
subtractDays, subtractMonths, subtractYears - işleci ile interval

toYear, toMonth ve toQuarter

Bir zaman damgasından yıl, ay veya çeyreği çıkarır. extract(field FROM timestamp) veya date_part(text, timestamp) kullanın. Ayrıntılar için bkz. Tarih/saat kesme işlevleri.

Ayı çıkarın:

SELECT extract(month FROM timestamp '2001-02-16 20:38:40');
2

Çeyreği çıkarın:

SELECT extract(quarter FROM timestamp '2001-02-16 20:38:40');
1

addDays, addMonths ve addYears

+ işlecini kullanarak bir tarihe veya zaman damgasına bir zaman aralığı ekler.

SELECT date '2001-09-28' + interval '1 hour';
2001-09-28 01:00:00

subtractDays, subtractMonths ve subtractYears

- işlecini kullanarak bir tarihten veya zaman damgasından bir zaman aralığı çıkarır.

SELECT date '2001-09-28' - interval '1 day';
2001-09-27 00:00:00

Toplama işlevleri

Hologres tarafından desteklenen toplama işlevlerinin tam listesi için bkz. Genel amaçlı toplama işlevleri. Özel işlevler için bkz. APPROX_COUNT_DISTINCT, UNIQ ve MAX_BY ve MIN_BY.

ClickHouse işlevi Hologres eşdeğeri Kullanılabilirlik başlangıcı
argMin(x, y) min_by(x, y) V1.3.36
argMax(x, y) max_by(x, y) V1.3.36
groupArray(anyelement) array_agg(anyelement) —

argMin(x, y)

y minimum değerine karşılık gelen x değerini döndürür. Minimum y değeri birden fazla x değerine eşleniyorsa bu x değerlerinin minimumu döndürülür.

Hologres V1.3.36 veya sonraki bir sürüm gerektirir. Örnek tablo tanımı için bkz. Örnek veriler.

SELECT min_by(name, cost) FROM test;
 min_by
--------
 cc
(1 row)

argMax(x, y)

y maksimum değerine karşılık gelen x değerini döndürür. Maksimum y değeri birden fazla x değerine eşleniyorsa bu x değerlerinin maksimumu döndürülür.

Hologres V1.3.36 veya sonraki bir sürüm gerektirir. Örnek tablo tanımı için bkz. Örnek veriler.

SELECT id, max_by(name, cost) FROM test GROUP BY id;
 id | max_by
----+--------
  2 | bb
  1 | aaa
  3 | c
(3 rows)

groupArray(anyelement)

Bir ifadenin tüm değerlerini bir dizi halinde birleştirir. array_agg(anyelement) kullanın.

CREATE TABLE test_array_agg_int (c1 int);
INSERT INTO test_array_agg_int VALUES (1), (2);

SELECT array_agg(c1) FROM test_array_agg_int;
 array_agg
-----------
 {1,2}
(1 row)

Dizi işlevleri

Hologres tarafından desteklenen dizi işlevlerinin tam listesi için bkz. Dizi işlevleri.

ClickHouse işlevi Hologres eşdeğeri Kullanılabilirlik başlangıcı
arrayJoin(anyarray) unnest(anyarray) —
arrayConcat(anyarray, anyarray...) array_cat(anyarray, anyarray) —
arrayDistinct(anyarray) array_distinct(anyarray) V1.3.19
arrayMin(anyarray) array_min(anyarray) 1.3.19
arrayMax(anyarray) array_max(anyarray) 1.3.19
arraySum(anyarray) unnest + sum —

arrayJoin(anyarray)

Her dizi öğesini ayrı bir satıra genişletir. unnest(anyarray) kullanın.

SELECT unnest(ARRAY[1,2]);
1
2

arrayConcat(anyarray, anyarray...)

Dizileri birleştirir. array_cat(anyarray, anyarray) kullanın. array_cat aynı anda iki dizi kabul ettiğinden, ikiden fazla diziyi birleştirmek için çağrıları zincirleyin.

SELECT array_cat(array_cat(ARRAY[1,2], ARRAY[3,4]), ARRAY[5,6]);
{1,2,3,4,5,6}

arrayDistinct(anyarray)

Yinelenen öğeleri kaldırarak yeni bir dizi döndürür. array_distinct(anyarray) kullanın.

Hologres V1.3.19 veya sonraki bir sürüm gerektirir. Sabit değerler giriş parametresi olarak kullanılamaz.

CREATE TABLE test_array_distinct_text (c1 text[]);
INSERT INTO test_array_distinct_text
    VALUES (ARRAY['holo', 'hello', 'holo', 'SQL', 'SQL']), (ARRAY[]::text[]);

SELECT c1, array_distinct(c1) FROM test_array_distinct_text;
            c1             |  array_distinct
---------------------------+------------------
 {holo,hello,holo,SQL,SQL} | {SQL,hello,holo}
 {}                        | {NULL}
(2 rows)

arrayMin(anyarray)

Bir dizideki minimum değeri döndürür. array_min(anyarray) kullanın.

Hologres 1.3.19 veya sonraki bir sürüm gerektirir. Sabit değerler giriş parametresi olarak kullanılamaz.

CREATE TABLE test_array_min_text (c1 text[]);
INSERT INTO test_array_min_text
    VALUES (NULL), (ARRAY['hello', 'holo', 'blackhole', 'array']);

SELECT c1, array_min(c1) FROM test_array_min_text;
              c1              | array_min
------------------------------+-----------
                              |
 {hello,holo,blackhole,array} | array
(2 rows)

arrayMax(anyarray)

Bir dizideki maksimum değeri döndürür. array_max(anyarray) kullanın.

Hologres 1.3.19 veya sonraki bir sürüm gerektirir. Sabit değerler giriş parametresi olarak kullanılamaz.

CREATE TABLE test_array_max_int (c1 int[]);
INSERT INTO test_array_max_int VALUES (NULL), (ARRAY[-2, NULL, -3, -12, -7]);

SELECT c1, array_max(c1) FROM test_array_max_int;
        c1        | array_max
------------------+-----------
                  |
 {-2,0,-3,-12,-7} |         0
(2 rows)

arraySum(anyarray)

Bir dizideki tüm öğelerin toplamını döndürür. Diziyi satırlara genişletmek için unnest kullanın, ardından sum uygulayın.

SELECT sum(ele) FROM (SELECT unnest(ARRAY[1,2,4]) AS ele) a;
7

Bit eşlem işlevleri

Hologres tarafından desteklenen Roaring bit eşlem işlevlerinin tam listesi için bkz. Roaring bit eşlem işlevleri.

ClickHouse işlevi Hologres eşdeğeri
bitmapToArray(roaringbitmap) rb_to_array(roaringbitmap)
groupBitmapState(integer) rb_build_agg(integer)
groupBitmap(integer) rb_cardinality(rb_build_agg(integer))
groupBitmapAndState(roaringbitmap) rb_and_agg(roaringbitmap)
groupBitmapOrState(roaringbitmap) rb_or_agg(roaringbitmap)
groupBitmapAnd(roaringbitmap) rb_and_cardinality_agg(roaringbitmap)
groupBitmapOr(roaringbitmap) rb_or_cardinality_agg(roaringbitmap)

bitmapToArray(roaringbitmap)

Bir Roaring bit eşlemi tamsayı dizisine dönüştürür. rb_to_array(roaringbitmap) kullanın.

SELECT rb_to_array(rb_build('{1,2,3}'));
{1,2,3}

groupBitmapState(integer)

Bir grup tamsayı değerinden bir Roaring bit eşlemi oluşturur. rb_build_agg(integer) kullanın.

SELECT rb_build_agg(1);
\x3a3000000100000000000000100000000100

groupBitmap(integer)

Bir grup tamsayı değerinden oluşturulan Roaring bit eşleminin kardinalitesini hesaplar. rb_cardinality(rb_build_agg(integer)) kullanın—rb_build_agg önce değerleri bir Roaring bit eşlemine toplar, ardından rb_cardinality farklı öğeleri sayar.

SELECT rb_cardinality(rb_build_agg(1));
1

groupBitmapAndState(roaringbitmap)

Roaring bit eşlemleri arasında AND toplama işlemi gerçekleştirir ve sonuçta oluşan bit eşlemi döndürür. rb_and_agg(roaringbitmap) kullanın.

SELECT rb_and_agg(rb_build('{1,2,3}'));
\x3a300000010000000000020010000000010002000300

groupBitmapOrState(roaringbitmap)

Roaring bit eşlemleri arasında OR toplama işlemi gerçekleştirir ve sonuçta oluşan bit eşlemi döndürür. rb_or_agg(roaringbitmap) kullanın.

SELECT rb_or_agg(rb_build('{1,2,3}'));
\x3a300000010000000000020010000000010002000300

groupBitmapAnd(roaringbitmap)

Roaring bit eşlemleri arasında AND toplama işlemi gerçekleştirir ve sonuçta oluşan bit eşlemin kardinalitesini döndürür. rb_and_cardinality_agg(roaringbitmap) kullanın.

SELECT rb_and_cardinality_agg(rb_build('{1,2,3}'));
3

groupBitmapOr(roaringbitmap)

Roaring bit eşlemleri arasında OR toplama işlemi gerçekleştirir ve sonuçta oluşan bit eşlemin kardinalitesini döndürür. rb_or_cardinality_agg(roaringbitmap) kullanın.

SELECT rb_or_cardinality_agg(rb_build('{1,2,3}'));
3

Karma işlevleri

sipHash64(text)

Metin girişi için 64 bitlik bir SipHash değeri döndürür. ClickHouse'ta dönüş türü UInt64 iken Hologres'te BIGINT'dir. hg_sip_hash_64(text) kullanın.

Hologres V2.0.1 veya sonraki bir sürüm gerektirir. Sabit değerler giriş parametresi olarak kullanılamaz.

CREATE TABLE test_hg_sip_hash_64_text (c1 text);
INSERT INTO test_hg_sip_hash_64_text VALUES ('abc');

SELECT hg_sip_hash_64(c1) FROM test_hg_sip_hash_64_text;
4596069200710135518

Diğer işlevler

Hologres çoğu PostgreSQL işleviyle uyumludur. Bu konuda açıklanan dize ve matematiksel işlevlerin ötesinde birçok PostgreSQL işlevi, ClickHouse karşılıklarıyla aynı anlamlara sahiptir. Ayrıntılar için bkz. PostgreSQL.