Puede crear tablas locales y distribuidas en ApsaraDB for ClickHouse mediante Data Management Service (DMS).
Requisitos previos
Complete los pasos indicados a continuación en la guía de inicio rápido.
Procedimiento
-
En la página SQL Console de la consola de DMS, introduzca una sentencia
CREATE TABLEpara crear una tabla local.NotaLas tablas locales almacenan los datos reales. Cada nodo de ClickHouse cuenta con sus propias tablas locales para gestionar y consultar los datos en ese nodo. Use las tablas locales para particionar los datos entre los nodos del clúster.
Sintaxis:
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, ...];Parámetros:
Parámetro
Descripción
dbNombre de la base de datos. De forma predeterminada, se usa la base de datos actual.
local_table_nameNombre de la tabla local.
clusterNombre del clúster. El valor es fijo: default.
name1,name2Nombres de las columnas.
type1,type2Tipos de datos de las columnas.
engine_nameTipo de motor de la tabla. Para más información, consulte Table engines.
Establezca este parámetro en MergeTree para clústeres de edición de réplica única o en ReplicatedMergeTree para clústeres maestro-réplica.
ImportanteAl crear tablas en un clúster Double-replica Edition, debe usar motores de tabla Replicated de la familia MergeTree. Si usa motores de tabla no replicados, los datos no se pueden replicar entre réplicas, lo que podría provocar inconsistencias.
PARTITION BYClave de partición.
ORDER BYClave de ordenación.
PRIMARY KEYClave principal.
SAMPLE BYExpresión de muestreo. Si usa una expresión de muestreo, la clave principal debe incluirla.
SETTINGSOtros parámetros que afectan el rendimiento, como
index_granularity.NotaPara más información sobre los parámetros, consulte Create Table.
Ejemplo:
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 ; -
Cree una tabla distribuida para facilitar la escritura y consulta de datos.
NotaApsaraDB for ClickHouse Enterprise Edition no requiere crear tablas distribuidas. Para conocer los detalles sobre los motores de tabla compatibles con Enterprise Edition, consulte ApsaraDB for ClickHouse Enterprise Edition Compatibility Guide.
Las tablas distribuidas no almacenan datos directamente. Funcionan como una capa de consulta que enruta las solicitudes a las tablas locales de cada nodo y agrega los resultados. Úselas para consultar datos entre distintos nodos de un clúster de ClickHouse.
Sintaxis:
CREATE TABLE [db.]d_table_name ON CLUSTER cluster AS db.local_table_name ENGINE = Distributed(cluster, db, local_table_name [, sharding_key])Parámetros:
Parámetro
Descripción
dbNombre de la base de datos. De forma predeterminada, se usa la base de datos actual.
d_table_nameNombre de la tabla distribuida.
clusterNombre del clúster. El valor es fijo: default.
local_table_nameNombre de la tabla local creada.
sharding_keyExpresión de fragmentación.
NotaPara más información sobre los parámetros, consulte Create Table.
Ejemplo:
CREATE TABLE ontime_local_distributed ON CLUSTER default AS clickhouse_demo.ontime_local ENGINE = Distributed(default, clickhouse_demo, ontime_local, rand());