All Products
Search
Document Center

ApsaraDB for ClickHouse:Buat tabel

Last Updated:Sep 17, 2026

Anda dapat membuat tabel lokal dan tabel terdistribusi di ApsaraDB for ClickHouse menggunakan Data Management Service (DMS).

Prasyarat

Anda telah menyelesaikan langkah-langkah berikut dalam panduan Quick Start.

Prosedur

  1. Di halaman SQL Console pada DMS console, masukkan pernyataan CREATE TABLE untuk membuat tabel lokal.

    Catatan

    Tabel lokal menyimpan data aktual. Setiap node ClickHouse memiliki tabel lokalnya sendiri yang mengelola dan menjalankan kueri terhadap data pada node tersebut. Gunakan tabel lokal untuk partisi data di seluruh node kluster.

    Sintaks:

    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, ...];

    Parameter:

    Parameter

    Deskripsi

    db

    Nama database. Secara default, database saat ini digunakan.

    local_table_name

    Nama tabel lokal.

    cluster

    Nama kluster. Nilainya tetap default.

    name1,name2

    Nama kolom.

    type1,type2

    Tipe kolom.

    engine_name

    Tipe mesin tabel. Untuk informasi lebih lanjut, lihat Table engines.

    Atur parameter ini ke MergeTree untuk kluster edisi single-replica atau ReplicatedMergeTree untuk kluster master-replika.

    Penting

    Saat membuat tabel di kluster Edisi Double-replica, Anda harus menggunakan mesin tabel Replicated dari family MergeTree. Jika Anda menggunakan mesin tabel non-replikasi, data tidak dapat direplikasi antar replika, yang dapat menyebabkan inkonsistensi data.

    PARTITION BY

    Kunci partisi.

    ORDER BY

    Kunci pengurutan.

    PRIMARY KEY

    Kunci primary.

    SAMPLE BY

    Ekspresi sampling. Jika Anda menggunakan ekspresi sampling, kunci primary harus mencakup ekspresi ini.

    SETTINGS

    Parameter lain yang memengaruhi performa, seperti index_granularity.

    Catatan

    Untuk informasi lebih lanjut tentang parameter, lihat Create Table.

    Contoh:

    CREATE TABLE clickhouse_demo.ontime_local ON CLUSTER default
    (
        `Year`                            UInt16,
        `Quarter`                         UInt8,
        `Month`                           UInt8,
        `DayofMonth`                      UInt8,
        `DayOfWeek`                       UInt8,
        `FlightDate`                      Date,
        `Reporting_Airline`               String,
        `DOT_ID_Reporting_Airline`        Int32,
        `IATA_CODE_Reporting_Airline`     String,
        `Tail_Number`                     String,
        `Flight_Number_Reporting_Airline` String,
        `OriginAirportID`                 Int32,
        `OriginAirportSeqID`              Int32,
        `OriginCityMarketID`              Int32,
        `Origin`                          FixedString(5),
        `OriginCityName`                  String,
        `OriginState`                     FixedString(2),
        `OriginStateFips`                 String,
        `OriginStateName`                 String,
        `OriginWac`                       Int32,
        `DestAirportID`                   Int32,
        `DestAirportSeqID`                Int32,
        `DestCityMarketID`                Int32,
        `Dest`                            FixedString(5),
        `DestCityName`                    String,
        `DestState`                       FixedString(2),
        `DestStateFips`                   String,
        `DestStateName`                   String,
        `DestWac`                         Int32,
        `CRSDepTime`                      Int32,
        `DepTime`                         Int32,
        `DepDelay`                        Int32,
        `DepDelayMinutes`                 Int32,
        `DepDel15`                        Int32,
        `DepartureDelayGroups`            String,
        `DepTimeBlk`                      String,
        `TaxiOut`                         Int32,
        `WheelsOff`                       Int32,
        `WheelsOn`                        Int32,
        `TaxiIn`                          Int32,
        `CRSArrTime`                      Int32,
        `ArrTime`                         Int32,
        `ArrDelay`                        Int32,
        `ArrDelayMinutes`                 Int32,
        `ArrDel15`                        Int32,
        `ArrivalDelayGroups`              Int32,
        `ArrTimeBlk`                      String,
        `Cancelled`                       UInt8,
        `CancellationCode`                FixedString(1),
        `Diverted`                        UInt8,
        `CRSElapsedTime`                  Int32,
        `ActualElapsedTime`               Int32,
        `AirTime`                         Nullable(Int32),
        `Flights`                         Int32,
        `Distance`                        Int32,
        `DistanceGroup`                   UInt8,
        `CarrierDelay`                    Int32,
        `WeatherDelay`                    Int32,
        `NASDelay`                        Int32,
        `SecurityDelay`                   Int32,
        `LateAircraftDelay`               Int32,
        `FirstDepTime`                    String,
        `TotalAddGTime`                   String,
        `LongestAddGTime`                 String,
        `DivAirportLandings`              String,
        `DivReachedDest`                  String,
        `DivActualElapsedTime`            String,
        `DivArrDelay`                     String,
        `DivDistance`                     String,
        `Div1Airport`                     String,
        `Div1AirportID`                   Int32,
        `Div1AirportSeqID`                Int32,
        `Div1WheelsOn`                    String,
        `Div1TotalGTime`                  String,
        `Div1LongestGTime`                String,
        `Div1WheelsOff`                   String,
        `Div1TailNum`                     String,
        `Div2Airport`                     String,
        `Div2AirportID`                   Int32,
        `Div2AirportSeqID`                Int32,
        `Div2WheelsOn`                    String,
        `Div2TotalGTime`                  String,
        `Div2LongestGTime`                String,
        `Div2WheelsOff`                   String,
        `Div2TailNum`                     String,
        `Div3Airport`                     String,
        `Div3AirportID`                   Int32,
        `Div3AirportSeqID`                Int32,
        `Div3WheelsOn`                    String,
        `Div3TotalGTime`                  String,
        `Div3LongestGTime`                String,
        `Div3WheelsOff`                   String,
        `Div3TailNum`                     String,
        `Div4Airport`                     String,
        `Div4AirportID`                   Int32,
        `Div4AirportSeqID`                Int32,
        `Div4WheelsOn`                    String,
        `Div4TotalGTime`                  String,
        `Div4LongestGTime`                String,
        `Div4WheelsOff`                   String,
        `Div4TailNum`                     String,
        `Div5Airport`                     String,
        `Div5AirportID`                   Int32,
        `Div5AirportSeqID`                Int32,
        `Div5WheelsOn`                    String,
        `Div5TotalGTime`                  String,
        `Div5LongestGTime`                String,
        `Div5WheelsOff`                   String,
        `Div5TailNum`                     String
    )ENGINE = ReplicatedMergeTree()
     PARTITION BY toYYYYMM(FlightDate)
     PRIMARY KEY (intHash32(FlightDate))
     ORDER BY (intHash32(FlightDate))
     SAMPLE BY intHash32(FlightDate)
    SETTINGS index_granularity= 8192 ;
  2. Buat tabel terdistribusi untuk memudahkan penulisan dan kueri data.

    Catatan
    • ApsaraDB for ClickHouse Enterprise Edition tidak mengharuskan Anda membuat tabel terdistribusi. Untuk detail tentang mesin tabel yang didukung oleh Enterprise Edition, lihat ApsaraDB for ClickHouse Enterprise Edition Compatibility Guide.

    • Tabel terdistribusi tidak menyimpan data secara langsung. Tabel ini berfungsi sebagai lapisan kueri yang mengarahkan kueri ke tabel lokal di berbagai node dan menggabungkan hasilnya. Gunakan tabel terdistribusi untuk kueri data lintas node dalam kluster ClickHouse.

    Sintaks:

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

    Parameter:

    Parameter

    Deskripsi

    db

    Nama database. Secara default, database saat ini digunakan.

    d_table_name

    Nama tabel terdistribusi.

    cluster

    Nama kluster. Nilainya tetap default.

    local_table_name

    Nama tabel lokal yang telah dibuat.

    sharding_key

    Ekspresi sharding.

    Catatan

    Untuk informasi lebih lanjut tentang parameter, lihat Create Table.

    Contoh:

    CREATE TABLE ontime_local_distributed ON CLUSTER default
     AS clickhouse_demo.ontime_local  
    ENGINE = Distributed(default, clickhouse_demo, ontime_local, rand());

Langkah berikutnya

Import data