前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Clickhouse部署和基本使用1

Clickhouse部署和基本使用1

原创
作者头像
TDSQL-A助手
修改2022-02-18 16:52:24
1.6K0
修改2022-02-18 16:52:24
举报
文章被收录于专栏:clickhouse-Aclickhouse-A

1. 部署结构

在Clickhouse中, 一般的有2种部署方式,3种使用方式:

clickhouse部署结构.png
clickhouse部署结构.png

部署方式:

  • 部署方式1: 部署一个单节点的Clickhouse集群, 比如小白使用的集群。
  • 部署方式2: 部署一个多节点的集群, 比如Tom和Jim使用的集群

使用方式:

  • 使用方式1:单节点集群,单节点执行SQL直接操作。比如上图中的小白(sql中无on cluster语句)
  • 使用方式2::多节点集群,和使用方式1一样,比如上图中的Tom(sql中无on cluster语句) 这种方式,用户如果连接到不同的节点看到的数据可能是不一样的。
  • 使用方式3: 多节点集群,用户集群化操作,比如上图中的Sam和Jim 集群化操作时, SQL语句中需要添加 on cluster XXXX, XXX表示集群名。

下面简单介绍集群化操作和单节点操作的基本SQL。

2. 集群化操作Demo SQL

  • 2.1 创建一个数据库
代码语言:javascript
复制
create database db_test on cluster default_cluster
  • 2.2.删除一个数据库
代码语言:javascript
复制
drop database db_test on cluster default_cluster
  • 2.3.创建一个表
代码语言:javascript
复制
CREATE TABLE db_test.tbl_replac_merge_test on cluster default_cluster
(
 id String, 
 code String, 
 create_time DateTime
)
ENGINE = ReplacingMergeTree()
PARTITION BY toYYYYMM(create_time)
PRIMARY KEY id
ORDER BY (id, code);
  • 2.4.删除一个表
代码语言:javascript
复制
drop table db_test.tbl_replac_merge_test on cluster default_cluster

3. 单节点操作Demo SQL

  • 3.1.创建一个数据库
代码语言:javascript
复制
create database db_test;
  • 3.2.删除一个数据库
代码语言:javascript
复制
drop database db_test;
  • 3.3.创建一个表
代码语言:javascript
复制
CREATE TABLE db_test.tbl_replac_merge_test
(
`id` String, 
`code` String, 
`create_time` DateTime
)
ENGINE = ReplacingMergeTree()
PARTITION BY toYYYYMM(create_time)
PRIMARY KEY id
ORDER BY (id, code);

  • 3.4.删除一个数据库表
代码语言:javascript
复制
drop table db_tetbl_replac_merge_test

4. 如何创建分布式表和本地表

  • 4.1 创建数据库
代码语言:javascript
复制
CREATE DATABASE db_100 on cluster default_cluster;
  • 4.2 创建本地表
代码语言:javascript
复制
CREATE TABLE db_100.tb_1_local on cluster default_cluster
(
    `c1` Int64,
    `c2` String,
    `_sign` Int8,
    `_version` UInt64
)
ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/5a165fe5-ab38-4bf2-a6ee-5124a65ed1aa/{shard}', '{replica}', _version)
ORDER BY (c1, c2)
SETTINGS index_granularity = 8192
  • 4.3 创建分布式表
代码语言:javascript
复制
CREATE TABLE db_100.tb_1 on cluster default_cluster
(
    `c1` Int64,
    `c2` String,
    `_sign` Int8,
    `_version` UInt64
)
ENGINE = Distributed('default_cluster', 'db_1', 'tb_1_local', cityHash64(toString((c1, c2))))


更多Clickhouse建表文档:

https://clickhouse.tech/docs/en/sql-reference/statements/create/table/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 部署结构
  • 2. 集群化操作Demo SQL
  • 3. 单节点操作Demo SQL
  • 4. 如何创建分布式表和本地表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档