Cette rubrique explique comment utiliser Data Management (DMS) pour créer une table dans ApsaraDB for ClickHouse.
Prérequis
Avez-vous effectué les étapes suivantes du Guide de démarrage rapide ?
Procédure
-
Sur la page SQL Console de la console DMS, exécutez l'instruction
CREATE TABLEpour créer une table locale.RemarqueLes tables locales stockent réellement les données. Chaque nœud ApsaraDB for ClickHouse possède ses propres tables locales. Elles servent à gérer et interroger les données stockées sur ce nœud. Les tables locales conviennent en tant que shards de données pour chaque nœud 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, ...];Description des paramètres :
Paramètre
Description
dbNom de la base de données. La valeur par défaut correspond au nom de la base de données sélectionnée.
local_table_nameNom de la table locale.
clusterNom du cluster. La valeur est default.
name1,name2Nom de la colonne.
type1,type2Type de la colonne.
engine_nameType du moteur de table. Pour plus d'informations, consultez Moteurs de table.
Le moteur de table MergeTree est utilisé pour l'édition Single-replica. Le moteur de table ReplicatedMergeTree est utilisé pour l'édition Double-replica.
ImportantPARTITION BYClé de partitionnement.
ORDER BYClé de tri.
PRIMARY KEYClé primaire.
SAMPLE BYExpression d'échantillonnage. Si vous souhaitez utiliser l'expression d'échantillonnage, incluez-la dans la clé primaire.
SETTINGSAutres paramètres susceptibles d'affecter les performances de création de la table.
RemarquePour plus d'informations, consultez CREATE 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 ; -
Créez une table distribuée pour écrire des données et exécuter des requêtes.
RemarqueLes tables distribuées sont des tables virtuelles qui ne stockent aucune donnée directement. Elles servent de couche de requête pour distribuer les interrogations vers les tables locales situées sur un ou plusieurs nœuds, puis agrègent les résultats renvoyés. Les tables distribuées conviennent aux requêtes et au traitement distribués dans un cluster ApsaraDB for 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])Description des paramètres :
Paramètre
Description
dbNom de la base de données. La valeur par défaut correspond au nom de la base de données sélectionnée.
d_table_nameNom de la table distribuée.
clusterNom du cluster. La valeur est default.
local_table_nameNom de la table locale créée.
sharding_keyExpression de sharding.
RemarquePour plus d'informations, consultez CREATE TABLE.
Exemple :
CREATE TABLE ontime_local_distributed ON CLUSTER default AS clickhouse_demo.ontime_local ENGINE = Distributed(default, clickhouse_demo, ontime_local, rand());