このトピックでは、データ管理 (DMS) を使用してApsaraDB for ClickHouseでテーブルを作成する方法について説明します。
前提条件
クイックスタートに記載されている次の手順は完了です。
手順
DMSコンソールの [SQLコンソール] ページで、
CREATE TABLE
文を実行してローカルテーブルを作成します。説明ローカルテーブルは、実際にデータを格納するテーブルです。 各ApsaraDB for ClickHouseノードには、独自のローカルテーブルがあります。 これらのテーブルは、そのノードに格納されているデータを管理およびクエリするために使用されます。 ローカルテーブルは、クラスター内の各ノードのデータシャードとして機能するのに適しています。
構文:
クラスタークラスターでの
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, ...];
パラメーターの説明:
項目
説明
db
データベースの名前。 デフォルト値は、選択されているデータベースの名前です。
local_table_name
ローカルテーブルの名前。
クラスター
クラスターの名前。 値はデフォルトです。
name1,name2
列の名前。
type1,type2
列のタイプ。
engine_name
テーブルエンジンのタイプ。 詳細については、「テーブルエンジン」をご参照ください。
説明MergeTreeテーブルエンジンは、Single-replica Editionに使用されます。 ReplicatedMergeTreeテーブルエンジンは、Double-replica Editionに使用されます。
PARTITION BY
パーティションキー。
注文単位
ソートキー。
主要なキー
主キー。
サンプルバイ
サンプル式。 サンプル式を使用する場合は、サンプル式を主キーに含めます。
設定
テーブル作成のパフォーマンスに影響を与える可能性のあるその他のパラメーター。
説明詳細については、「CREATE TABLE」をご参照ください。
例:
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 ;
分散テーブルを作成してデータを書き込み、クエリを実行します。
説明分散テーブルは、データを直接格納しない仮想テーブルです。 代わりに、1つ以上のノード上のローカルテーブルにクエリを分散し、返された結果を集計するクエリ層として機能します。 分散テーブルは、ApsaraDB for ClickHouseクラスターでの分散クエリと処理に適しています。
構文:
クラスタークラスターで
CREATE TABLE [db.]d_table_name ON CLUSTER cluster AS db.local_table_name ENGINE = Distributed(cluster, db, local_table_name [, sharding_key])
パラメーターの説明:
項目
説明
db
データベースの名前。 デフォルト値は、選択されているデータベースの名前です。
d_table_name
分散テーブルの名前。
クラスター
クラスターの名前。 値はデフォルトです。
local_table_name
作成したローカルテーブルの名前。
sharding_key
シャーディング式。
説明詳細については、「CREATE TABLE」をご参照ください。
例:
CREATE TABLE ontime_local_distributed ON CLUSTER default AS clickhouse_demo.ontime_local ENGINE = Distributed(default, clickhouse_demo, ontime_local, rand());