Tüm Ürünler
Search
Belge Merkezi

ApsaraDB for ClickHouse:CREATE TABLE

Son Güncelleme:Oct 07, 2026

ApsaraDB for ClickHouse tablo oluşturmak için dört yöntem destekler: açık şema belirtme, mevcut bir tablonun şemasını kopyalama, bir SELECT sonuç kümesinin yapısını yansıtma ve birden çok yerel tabloyu kapsayan dağıtılmış bir tablo oluşturma.

Yerel bir tablo oluşturun

Yerel bir tablo verileri oluşturulduğu düğümlerde saklar. Tablo tanımının kümedeki tüm düğümlere çoğaltılmasını sağlamak için ON CLUSTER default ifadesini kullanın.

Sözdizimi

CREATE TABLE [IF NOT EXISTS] [db.]local_table_name ON CLUSTER cluster
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
    INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,
    INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2
) ENGINE = engine_name()
[PARTITION BY expr]
ORDER BY expr
[PRIMARY KEY expr]
[SAMPLE BY expr]
[SETTINGS name=value, ...];

Parametreler

Parametre Açıklama
db Veritabanı adı. Varsayılan olarak geçerli veritabanı kullanılır.
local_table_name Yerel tablonun adı.
ON CLUSTER cluster Tabloyu her düğümde oluşturur. Sabit değer: ON CLUSTER default.
name1, name2 Sütun adları.
type1, type2 Sütun veri türleri. Desteklenen türler için bkz. Veri türleri.
ENGINE = engine_name() Tablo motoru. Desteklenen motorlar için bkz. Tablo motorları.
ORDER BY expr Sıralama anahtarı. Gereklidir. Bir sütun demetini veya herhangi bir ifadeyi kabul eder.
[DEFAULT|MATERIALIZED|ALIAS expr] Bir sütun için varsayılan ifade türü: DEFAULT değer belirtilmediğinde otomatik olarak bir değer üretir; MATERIALIZED somutlaştırılmış bir ifadedir; ALIAS takma ad ifadesidir.
GRANULARITY Dizin tane büyüklüğü.
[PARTITION BY expr] Bölümleme anahtarı. Genellikle bir tarih alanı veya tarih ifadesi olur. Diğer alanları veya ifadeleri de kabul eder.
[PRIMARY KEY expr] Birincil anahtar. Varsayılan olarak sıralama anahtarıyla aynı değeri alır. Çoğu durumda bu yan tümceyi atlayabilirsiniz.
[SAMPLE BY expr] Örnekleme ifadesi. Belirtilirse bunu birincil anahtara dahil edin.
[SETTINGS name=value, ...] Performansı etkileyen ek ayarlar. Bkz. SETTINGS yapılandırma öğeleri.
ORDER BY , GRANULARITY , PARTITION BY , PRIMARY KEY , SAMPLE BY ve SETTINGS yalnızca MergeTree ailesi tablo motorları tarafından desteklenir. Bkz. CREATE TABLE .

ReplicatedMergeTree yapılandırması

Bir ReplicatedMergeTree motoru kullanırken aşağıdaki iki form eşdeğerdir:

  • ReplicatedMergeTree('/clickhouse/tables/{database}/{table}/{shard}', '{replica}') — tam form; yol şablonunu değiştirmeyin.

  • ReplicatedMergeTree() — otomatik olarak tam forma genişleyen kısaltma.

Önemli

Çift çoğaltmalı (Double-replica) Edition kümelerinde tüm tablolar MergeTree ailesinden Replicated tablo motorlarını kullanmalıdır. Replicated olmayan motorlar verileri çoğaltmalar arasında çoğaltmaz ve bu durum veri tutarsızlığına neden olabilir.

Örnek

CREATE TABLE local_table ON CLUSTER default
(
    Year UInt16,
    Quarter UInt8,
    Month UInt8,
    DayofMonth UInt8,
    DayOfWeek UInt8,
    FlightDate Date,
    FlightNum String,
    Div5WheelsOff String,
    Div5TailNum String
)ENGINE = MergeTree()
 PARTITION BY toYYYYMM(FlightDate)
 PRIMARY KEY (intHash32(FlightDate))
 ORDER BY (intHash32(FlightDate),FlightNum)
 SAMPLE BY intHash32(FlightDate)
SETTINGS index_granularity= 8192;

Dağıtılmış bir tablo oluşturun

Dağıtılmış bir tablo bir dizi yerel tablo üzerinde mantıksal bir görünümdür. Dağıtılmış bir tabloya yapılan yazma işlemleri bölümleme anahtarına göre temel alınan yerel tablolara otomatik olarak yönlendirilir. Sorgular sonuçları döndürmeden önce tüm yerel tablolardan gelen sonuçları toplar.

Yalnızca ApsaraDB for ClickHouse Community-Compatible Edition Distributed motorunu kullanan dağıtılmış tabloları destekler. Enterprise Edition'da birden çok düğüm parça yerine çoğaltma olarak çalıştığından dağıtılmış tablolara gerek yoktur.

Dağıtılmış bir tablo oluşturmadan önce tüm düğümlerde yerel tablolar oluşturun.

Sözdizimi

CREATE TABLE [db.]distributed_table_name ON CLUSTER default
 AS db.local_table_name ENGINE = Distributed(cluster, db, local_table_name [, sharding_key])

Parametreler

Parametre Açıklama
db Veritabanı adı. Varsayılan olarak geçerli veritabanı kullanılır.
distributed_table_name Dağıtılmış tablonun adı.
ON CLUSTER cluster Tabloyu her düğümde oluşturur. Sabit değer: ON CLUSTER default.
local_table_name Temel alınan yerel tablonun adı.
sharding_key Her satırın hangi parçaya gideceğini belirleyen bölümleme ifadesi. rand() gibi bir ifadeyi veya user_id gibi bir tamsayı sütununu kabul eder.

Örnek

CREATE TABLE distributed_table ON CLUSTER default
 AS default.local_table
ENGINE = Distributed(default, default, local_table, rand());

Bir tablo şemasını kopyalayın

Mevcut bir tabloyla aynı sütun tanımlarına ve tablo motoruna sahip yeni bir tablo oluşturun.

Sözdizimi

CREATE TABLE [IF NOT EXISTS] [db.]table_name2 ON CLUSTER cluster AS [db.]table_name1 [ENGINE = engine_name];

Parametreler

Parametre Açıklama
db Veritabanı adı. Varsayılan olarak geçerli veritabanı kullanılır.
table_name1 Şeması kopyalanan kaynak tablo.
table_name2 Oluşturulacak yeni tablo.
ON CLUSTER cluster Tabloyu her düğümde oluşturur. Sabit değer: ON CLUSTER default.
[ENGINE = engine_name] Yeni tablo için tablo motoru. Atlanırsa yeni tablo kaynak tablo ile aynı motoru kullanır. Bkz. Tablo motorları.

Örnek

CREATE TABLE t2 ON CLUSTER default as default.local_table;

Bir SELECT sorgusundan tablo oluşturun

Şeması bir SELECT deyiminin sonuç kümesiyle eşleşen ve sorgu sonuçlarıyla doldurulan bir tablo oluşturun.

Sözdizimi

CREATE TABLE [IF NOT EXISTS] [db.]s_table_name ON CLUSTER cluster ENGINE = engine_name() AS SELECT ...

Parametreler

Parametre Açıklama
db Veritabanı adı. Varsayılan olarak geçerli veritabanı kullanılır.
s_table_name Oluşturulacak tablonun adı.
ON CLUSTER cluster Tabloyu her düğümde oluşturur. Sabit değer: ON CLUSTER default.
ENGINE = engine_name() Tablo motoru. Bkz. Tablo motorları.
SELECT ... Şemayı ve başlangıç verilerini tanımlayan sonuç kümesine sahip sorgu.

Örnek

CREATE TABLE t3 ON CLUSTER default ENGINE =MergeTree() order by Year as select * from default.local_table;

Sonraki adımlar