Crie tabelas locais e distribuídas no ApsaraDB for ClickHouse pelo Data Management Service (DMS).
Pré-requisitos
Conclua as etapas a seguir no guia de Início Rápido.
Procedimento
-
Na página SQL Console do DMS console, insira uma instrução
CREATE TABLEpara criar uma tabela local.NotaTabelas locais armazenam os dados reais. Cada nó do ClickHouse possui suas próprias tabelas locais para gerenciar e consultar dados nesse nó específico. Use tabelas locais para particionar dados entre os nós do cluster.
Sintaxe:
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
Descrição
dbNome do banco de dados. O sistema usa o banco de dados atual por padrão.
local_table_nameNome da tabela local.
clusterNome do cluster. O valor é fixo como default.
name1,name2Nomes das colunas.
type1,type2Tipos de dados das colunas.
engine_nameTipo de mecanismo da tabela. Para mais informações, consulte Table engines.
Defina este parâmetro como MergeTree para clusters da edição de réplica única ou ReplicatedMergeTree para clusters mestre-réplica.
ImportanteAo criar tabelas em um cluster da Edição de Réplica Dupla, use obrigatoriamente mecanismos de tabela replicados da família MergeTree. O uso de mecanismos não replicados impede a replicação de dados entre réplicas, o que pode causar inconsistência nos dados.
PARTITION BYChave de partição.
ORDER BYChave de ordenação.
PRIMARY KEYChave primária.
SAMPLE BYExpressão de amostragem. Caso utilize essa expressão, a chave primária deve incluí-la.
SETTINGSOutros parâmetros que afetam o desempenho, como
index_granularity.NotaPara obter mais detalhes sobre os parâmetros, consulte Create Table.
Exemplo:
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 ; -
Crie uma tabela distribuída para facilitar a gravação e consulta de dados.
NotaApsaraDB for ClickHouse Enterprise Edition não exige a criação de tabelas distribuídas. Para detalhes sobre os mecanismos de tabela compatíveis com a Enterprise Edition, consulte ApsaraDB for ClickHouse Enterprise Edition Compatibility Guide.
Tabelas distribuídas não armazenam dados diretamente. Elas funcionam como uma camada de consulta que encaminha solicitações às tabelas locais em vários nós e agrega os resultados. Use tabelas distribuídas para consultas de dados entre nós em um cluster ClickHouse.
Sintaxe:
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
Descrição
dbNome do banco de dados. O sistema usa o banco de dados atual por padrão.
d_table_nameNome da tabela distribuída.
clusterNome do cluster. O valor é fixo como default.
local_table_nameNome da tabela local criada.
sharding_keyExpressão de sharding.
NotaPara obter mais detalhes sobre os parâmetros, consulte Create Table.
Exemplo:
CREATE TABLE ontime_local_distributed ON CLUSTER default AS clickhouse_demo.ontime_local ENGINE = Distributed(default, clickhouse_demo, ontime_local, rand());