上云无忧 > 文档中心 > 天翼云云数据库ClickHouse使用教程 - CREATE TABLE
云数据库ClickHouse
天翼云云数据库ClickHouse使用教程 - CREATE TABLE

文档简介:
云数据库ClickHouse提供本地表与分布式表两种建表方式。 云数据库ClickHouse建表语句基本语法如下: CREATE TABLE [IF NOT EXISTS] [db.]table_name ON CLUSTER cluster
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

云数据库ClickHouse提供本地表与分布式表两种建表方式。

云数据库ClickHouse建表语句基本语法如下:

CREATE TABLE [IF NOT EXISTS] [db.]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:指定数据库名称,如果当前语句没有包含‘db’,则默认使用当前选择的数据库为‘db’。
  • cluster:指定集群名称,目前固定为default。ON CLUSTER 将在每一个节点上都创建一个本地表。
  • type:该列数据类型,例如 UInt32。
  • DEFAULT:该列缺省值。如果INSERT中不包含指定的列,那么将通过表达式计算它的默认值并填充它。
  • MATERIALIZED:物化列表达式,表示该列不能被INSERT,是被计算出来的; 在INSERT语句中,不需要写入该列;在SELECT *查询语句结果集不包含该列。
  • ALIAS :别名列。这样的列不会存储在表中。 它的值不能够通过INSERT写入,同时使用SELECT查询星号时,这些列也不会被用来替换星号。 但是它们可以用于SELECT中,在这种情况下,在查询分析中别名将被替换。
  • 物化列与别名列的区别: 物化列是会保存数据,查询的时候不需要计算,而别名列不会保存数据,查询的时候需要计算,查询时候返回表达式的计算结果

以下选项与表引擎相关,只有MergeTree系列表引擎支持:

  • PARTITION BY:指定分区键。通常按照日期分区,也可以用其他字段或字段表达式。
  • ORDER BY:指定排序键。可以是一组列的元组或任意的表达式。
  • PRIMARY KEY: 指定主键,默认情况下主键跟排序键相同。因此,大部分情况下不需要再专门指定一个 PRIMARY KEY 子句。
  • SAMPLE BY :抽样表达式,如果要用抽样表达式,主键中必须包含这个表达式。
  • SETTINGS:影响性能的额外参数。
  • GRANULARITY :索引粒度参数。

示例,创建一个本地表:

CREATE TABLE ontime_local ON CLUSTER default
(
    Year UInt16,
    Quarter UInt8,
    Month UInt8,
    DayofMonth UInt8,
    DayOfWeek UInt8,
    FlightDate Date,
    FlightNum String,
    Div5WheelsOff String,
    Div5TailNum String
)ENGINE = ReplicatedMergeTree(
    '/clickhouse/tables/{database}/{table}/{shard}',
    '{replica}')
 PARTITION BY toYYYYMM(FlightDate)
 PRIMARY KEY (intHash32(FlightDate))
 ORDER BY (intHash32(FlightDate),FlightNum)
 SAMPLE BY intHash32(FlightDate)
SETTINGS index_granularity= 8192 ;复制

说明:高可用集群(双副本),要用ReplicatedMergeTree等Replicated系列引擎,否则副本之间不进行数据复制,导致数据查询结果不一致。ReplicatedMergeTree创建的时候只有两种方式填写参数。

  • ReplicatedMergeTree('/clickhouse/tables/{database}/{table}/{shard}', '{replica}') ,参数中的字符不允许修改。

  • ReplicatedMergeTree(),参数会自动默认填成和方式1一样。

相似文档
  • 本页面介绍云数据库ClickHouse的数据插入基本语法。 云数据库ClickHouse INSERT INTO 语句基本格式如下: INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...
  • 本页面介绍云数据库ClickHouse数据查询基本语法。 云数据库ClickHouse SELECT语句基本格式如下: SELECT [DISTINCT] expr_list [FROM [db.]table | (subquery) | table_function] [FINAL] [SAMPLE sample_coeff] [ARRAY JOIN ...]
  • 云数据库ClickHouse计费类常见问题。 云数据库ClickHouse计费类常见问题汇总如下: Q:云数据库ClickHouse的计费项包括哪些? A:云数据库ClicKHouse的计费项包括主机的CPU/内存与存储。
  • 云数据库ClickHouse实例管理方面的常见问题。 云数据库ClickHouse实例开通后的管理类常见问题总结: 实例开通后能否扩容? 云数据库ClickHouse开通后支持多种扩容方式,包括存储空间扩容,升级已有计算节点的CPU/内存,增加节点。
  • 云数据库ClickHouse实例操作类常见问题。 云数据库ClickHouse实例开通后实例操作相关常见问题总结: 云数据库ClickHouse如何获取连接地址? 在实例开通后,可进入控制台从集群详情页获取连接地址,连接地址为任意一个计算节点IP及其对应的端口。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部