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
Di halaman SQL Console pada Konsol DMS, jalankan pernyataan
CREATE TABLEuntuk membuat tabel lokal.CatatanTabel 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
dbNama database. Nilai default adalah nama database yang dipilih.
local_table_nameNama tabel lokal.
clusterNama kluster. Nilainya adalah default.
name1,name2Nama kolom.
type1,type2Tipe kolom.
engine_nameTipe 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.
PentingKetika 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 BYKunci partisi.
ORDER BYKunci pengurutan.
PRIMARY KEYKunci utama.
SAMPLE BYEkspresi sampel. Jika Anda ingin menggunakan ekspresi sampel, sertakan ekspresi sampel dalam kunci utama.
SETTINGSParameter lain yang dapat memengaruhi performa pembuatan tabel.
CatatanUntuk 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 ;Buat tabel terdistribusi untuk menulis data dan melakukan query.
CatatanTabel 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
dbNama database. Nilai default adalah nama database yang dipilih.
d_table_nameNama tabel terdistribusi.
clusterNama kluster. Nilainya adalah default.
local_table_nameNama tabel lokal yang Anda buat.
sharding_keyEkspresi sharding.
CatatanUntuk 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());