mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 10:52:30 +00:00
59 lines
3.3 KiB
Markdown
59 lines
3.3 KiB
Markdown
---
|
||
sidebar_position: 1
|
||
sidebar_label: テーブルの作成
|
||
---
|
||
|
||
# ClickHouseにおけるテーブルの作成
|
||
|
||
ほとんどのデータベースと同様に、ClickHouseはテーブルを**データベース**に論理的にグループ化します。ClickHouseで新しいデータベースを作成するには、`CREATE DATABASE`コマンドを使用します。
|
||
|
||
```sql
|
||
CREATE DATABASE IF NOT EXISTS helloworld
|
||
```
|
||
|
||
同様に、`CREATE TABLE`を使用して新しいテーブルを定義します。(データベース名を指定しない場合、テーブルは`default`データベースに作成されます。)次のテーブルは`helloworld`データベース内に`my_first_table`という名前で作成されます。
|
||
|
||
```sql
|
||
CREATE TABLE helloworld.my_first_table
|
||
(
|
||
user_id UInt32,
|
||
message String,
|
||
timestamp DateTime,
|
||
metric Float32
|
||
)
|
||
ENGINE = MergeTree()
|
||
PRIMARY KEY (user_id, timestamp)
|
||
```
|
||
|
||
上記の例では、`my_first_table`は四つのカラムを持つ`MergeTree`テーブルです。
|
||
|
||
- `user_id`: 32ビットの符号なし整数
|
||
- `message`: `String`データ型で、他のデータベースシステムの`VARCHAR`、`BLOB`、`CLOB`などの型の代替
|
||
- `timestamp`: 時間の瞬間を表す`DateTime`値
|
||
- `metric`: 32ビットの浮動小数点数
|
||
|
||
:::note
|
||
テーブルエンジンは以下を決定します。
|
||
- データの保存方法と保存場所
|
||
- サポートされているクエリ
|
||
- データがレプリケートされるかどうか
|
||
|
||
選択できるエンジンは多くありますが、単一ノードのClickHouseサーバーでの単純なテーブルには、[MergeTree](/ja/engines/table-engines/mergetree-family/mergetree.md)が適しています。
|
||
:::
|
||
|
||
## 主キーの簡単な紹介
|
||
|
||
先に進む前に、ClickHouseにおける主キーの働きを理解することが重要です(主キーの実装は意外に感じるかもしれません!)。
|
||
|
||
- ClickHouseでは、主キーは各行に対して**一意ではありません**
|
||
|
||
ClickHouseテーブルの主キーは、データがディスクに書き込まれるときのソート方法を決定します。8,192行または10MBのデータごと(**インデックスの粒度**と呼ばれる)に主キーインデックスファイルにエントリが作成されます。この粒度の概念により、メモリに簡単に収まる**スパースインデックス**が作成され、グラニュールは`SELECT`クエリの処理中に最小のカラムデータ量のストライプを表します。
|
||
|
||
主キーは`PRIMARY KEY`パラメータを使用して定義できます。`PRIMARY KEY`を指定せずにテーブルを定義すると、キーは`ORDER BY`句で指定されたタプルになります。`PRIMARY KEY`と`ORDER BY`の両方を指定した場合、主キーはソート順序の接頭辞でなければなりません。
|
||
|
||
主キーはまたソートキーでもあり、`(user_id, timestamp)`のタプルです。 したがって、各カラムファイルに保存されるデータは、`user_id`、次に`timestamp`の順にソートされます。
|
||
|
||
:::tip
|
||
詳細については、ClickHouse Academyの[データモデリングトレーニングモジュール](https://learn.clickhouse.com/visitor_catalog_class/show/1328860/?utm_source=clickhouse&utm_medium=docs)をチェックしてください。
|
||
:::
|