Tous les produits
Search
Centre de documentation

ApsaraDB for ClickHouse:Créer une table

Dernière mise à jour :Sep 17, 2026

Vous pouvez créer des tables locales et distribuées dans ApsaraDB for ClickHouse via Data Management Service (DMS).

Prérequis

Avez effectué les étapes suivantes du guide de démarrage rapide.

Procédure

  1. Sur la page SQL Console de la console DMS, saisissez une instruction CREATE TABLE pour créer une table locale.

    Remarque

    Les tables locales stockent les données réelles. Chaque nœud ClickHouse possède ses propres tables locales qui gèrent et interrogent les données sur ce nœud. Utilisez les tables locales pour partitionner les données entre les nœuds du cluster.

    Syntaxe :

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

    Paramètres :

    Paramètre

    Description

    db

    Nom de la base de données. La base de données actuelle est utilisée par défaut.

    local_table_name

    Nom de la table locale.

    cluster

    Nom du cluster. La valeur est fixée à default.

    name1,name2

    Noms des colonnes.

    type1,type2

    Types des colonnes.

    engine_name

    Type de moteur de table. Pour plus d'informations, consultez la section Moteurs de table.

    Définissez ce paramètre sur MergeTree pour les clusters à réplica unique ou sur ReplicatedMergeTree pour les clusters maître-réplica.

    Important

    Lorsque vous créez des tables dans un cluster Double-replica Edition, vous devez utiliser des moteurs de table répliqués de la famille MergeTree. Si vous utilisez des moteurs de table non répliqués, les données ne peuvent pas être répliquées entre les réplicas, ce qui peut entraîner une incohérence des données.

    PARTITION BY

    Clé de partitionnement.

    ORDER BY

    Clé de tri.

    PRIMARY KEY

    Clé primaire.

    SAMPLE BY

    Expression d'échantillonnage. Si vous utilisez une expression d'échantillonnage, la clé primaire doit inclure cette expression.

    SETTINGS

    Autres paramètres affectant les performances, tels que index_granularity.

    Remarque

    Pour plus d'informations sur les paramètres, consultez la section Créer une table.

    Exemple :

    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. Créez une table distribuée pour faciliter l'écriture et l'interrogation des données.

    Remarque
    • ApsaraDB for ClickHouse Enterprise Edition ne nécessite pas la création de tables distribuées. Pour plus de détails sur les moteurs de table pris en charge par l'Enterprise Edition, consultez le Guide de compatibilité ApsaraDB for ClickHouse Enterprise Edition.

    • Les tables distribuées ne stockent pas directement les données. Elles servent de couche d'interrogation qui achemine les requêtes vers les tables locales sur les différents nœuds et agrège les résultats. Utilisez les tables distribuées pour interroger les données entre les nœuds d'un cluster ClickHouse.

    Syntaxe :

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

    Paramètres :

    Paramètre

    Description

    db

    Nom de la base de données. La base de données actuelle est utilisée par défaut.

    d_table_name

    Nom de la table distribuée.

    cluster

    Nom du cluster. La valeur est fixée à default.

    local_table_name

    Nom de la table locale créée.

    sharding_key

    Expression de fragmentation.

    Remarque

    Pour plus d'informations sur les paramètres, consultez la section Créer une table.

    Exemple :

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

Étapes suivantes

Importer des données