全部产品
Search
文档中心

ApsaraDB for ClickHouse:Buat tabel

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggunakan Data Management (DMS) untuk membuat tabel di ApsaraDB for ClickHouse.

Prasyarat

Langkah-langkah berikut dalam Panduan Cepat sudah selesai:

Prosedur

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

    Catatan

    Tabel lokal adalah tabel yang menyimpan data secara fisik. Setiap node ApsaraDB for ClickHouse memiliki tabel lokalnya sendiri, yang digunakan untuk mengelola dan menanyakan data yang disimpan pada node tersebut. Tabel lokal cocok untuk dijadikan sebagai sharding data dari setiap node dalam 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, ...];

    Deskripsi parameter:

    Parameter

    Deskripsi

    db

    Nama database. Nilai default adalah nama database yang dipilih.

    local_table_name

    Nama tabel lokal.

    cluster

    Nama kluster. Nilainya adalah default.

    name1,name2

    Nama kolom.

    type1,type2

    Tipe kolom.

    engine_name

    Tipe mesin tabel. Untuk informasi lebih lanjut, lihat Mesin tabel.

    Mesin tabel MergeTree digunakan untuk Edisi Single-replika. Mesin tabel ReplicatedMergeTree digunakan untuk Edisi Double-replika.

    Penting

    Ketika Anda membuat tabel di kluster Edisi Double-replika, pastikan bahwa tabel menggunakan mesin replikasi dari keluarga MergeTree. Jika tabel menggunakan mesin non-Replikasi, data pada tabel tidak direplikasi di seluruh replika. Hal ini dapat menyebabkan ketidaksesuaian data.

    PARTITION BY

    Kunci partisi.

    ORDER BY

    Kunci pengurutan.

    PRIMARY KEY

    Kunci utama.

    SAMPLE BY

    Ekspresi sampel. Jika Anda ingin menggunakan ekspresi sampel, sertakan ekspresi sampel dalam kunci utama.

    SETTINGS

    Parameter lain yang dapat memengaruhi performa pembuatan tabel.

    Catatan

    Untuk informasi lebih lanjut, 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 menulis data dan melakukan query.

    Catatan
    • Tabel terdistribusi adalah tabel virtual yang tidak menyimpan data secara langsung. Sebagai gantinya, tabel ini berfungsi sebagai lapisan query untuk mendistribusikan query ke tabel lokal pada satu atau lebih node dan mengumpulkan hasil yang dikembalikan. Tabel terdistribusi cocok untuk query dan pemrosesan terdistribusi dalam kluster ApsaraDB for 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])

    Deskripsi parameter:

    Parameter

    Deskripsi

    db

    Nama database. Nilai default adalah nama database yang dipilih.

    d_table_name

    Nama tabel terdistribusi.

    cluster

    Nama kluster. Nilainya adalah default.

    local_table_name

    Nama tabel lokal yang Anda buat.

    sharding_key

    Ekspresi sharding.

    Catatan

    Untuk informasi lebih lanjut, 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());

Apa yang harus dilakukan selanjutnya

Impor Data