全部产品
Search
文档中心

创建表

更新时间: 2022-01-25

本文介绍如何使用DMS(Data Management Service)在云数据库ClickHouse中创建表。

前提条件

已完成快速入门的如下步骤。

说明

新建云数据库ClickHouse集群时,系统会自动为云数据库ClickHouse集群创建一个名为dms的白名单分组,并将DMS服务器的IP地址加入该分组中,若自动添加失败需手动添加。DMS服务器不同地域的IP地址列表,具体请参见DMS IP地址列表

操作步骤

1.在数据管理DMS控制台SQL Console页面中,输入CREATE TABLE语句创建本地表。

  • 语法:

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

本地表名。

cluster

指定集群的名称,固定为default。

name1,name2

列名。

type1,type2

列类型。

engine_name

表引擎类型,具体请参见表引擎

说明

单副本版为MergeTree,双副本版为ReplicatedMergeTree。

PARTITION BY

指定分区键。

ORDER BY

指定排序键。

PRIMARY KEY

指定主键。

SAMPLE BY

抽样表达式。如果要使用抽样表达式,主键中必须包含这个表达式。

SETTINGS

影响性能的其他参数。

说明

更多参数说明,请参见Create Table

  • 示例:

CREATE TABLE IF NOT EXISTS clickhouse_demo.test_local ON CLUSTER default (
`v1` Int8, 
`v2` Int16, 
`v3` Int32, 
`v4` Int64, 
`v5` UInt8, 
`v6` UInt16, 
`v7` UInt32, 
`v8` UInt64, 
`v9` Decimal(10, 2), 
`v10` Float32, 
`v11` Float64, 
`v12` String, 
`v13` FixedString(10), 
`v14` UUID, `v15` Date, 
`v16` DateTime, 
`v17` Enum8('hello' = 1, 'world' = 2), 
`v18` Enum16('hello' = 1, 'world' = 2), 
`v19` IPv4, 
`v20` IPv6) 
ENGINE = ReplicatedMergeTree()
PARTITION BY toYYYYMMDD(v16) ORDER BY v4 SETTINGS index_granularity = 8192;

2.创建分布式表,方便数据的写入和查询。

  • 语法:

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

分布式表名。

cluster

指定集群的名称,固定为default。

local_table_name

已创建的本地表名。

sharding_key

分片表达式。

说明

更多参数说明,请参见Create Table

  • 示例:

CREATE TABLE clickhouse_demo.test_distributed1 ON CLUSTER default as clickhouse_demo.test_local ENGINE = Distributed(default, clickhouse_demo, test_local, rand());

下一步

导入数据和查询