概述
ClickHouse的功能
- 列式数据库管理系统
- 数据压缩
- 数据存储在磁盘中
- 多核心并行处理
- 多服务器分布式处理
即数据可以保存在不同的分区上,每一个分区都由一组用于容错的replica组成,查询可以并行地在所有分区上处理。 - 支持SQL
支持的查询包括GROUP BY,ORDER BY,IN,JOIN以及非相关子查询,不支持窗口函数和相关子查询 - 向量引擎
即数据不仅仅按列存储,同时还按向量处理 - 实时数据更新
- 支持索引
- 适合在线查询
- 支持近似计算
- 支持数据复制和数据完整性
ClickHouse的缺点
- 没有完整的事务支持
- 缺少高频率,低延迟的修改或删除已存在数据的能力
- 不适合通过其键检索单行的点查询
ClickHouse的客户端
-命令行客户端
可以选择使用交互式与非交互式(批量)两种模式
-
批量模式:
默认的数据格式是TabSeparated分隔的。在 TabSeparated 格式中,数据按行写入。每行包含由制表符分隔的值。除了行中的最后一个值(后面紧跟换行符)之外,每个值都跟随一个制表符。
命令行参数:- –host, -h -->服务器的host名称,默认是‘localhost’
- –port -->连接端口,默认9000
- –user -->用户名
- –password -->密码
- –query, -q -->批量模式下查询语句
- –database -->操作数据库
- –multiline, -m–>允许多行语句查询,Enter仅代表换行,不代表查询语句结束
- –multiquery, -n–>允许处理用逗号分隔的多个查询,仅在批量模式下生效
- –format, -f -->使用指定的默认格式输出结果。
- –vertical, -E --> 默认情况下使用垂直格式输出结果。
- –time, -t -->非交互模式下会打印查询执行的时间到 ‘stderr’ 中。
- –stacktrace -->如果出现异常,会打印堆栈跟踪信息。
- –config-file -->配置文件的名称。
-
交互模式:
进入交互模式:clickhouse-client
如果端口不是9000的,可以通过–port自行设定
clickhouse-client --port xxxx退出客户端:exit;
-
原生客户端接口(TCP)
可以从ClickHouse源代码进行逆向工程 从这里开始)和/或拦截和分析TCP流量。 -
HTTP客户端
默认情况下,返回的数据是 TabSeparated 格式的,
默认情况下,clickhouse-server 会在端口 8123 上监控 HTTP 请求。
INSERT 必须通过 POST 方法来插入数据。将查询的开头部分放在 URL 参数中,然后用 POST 主体传入插入的数据。
相比起 TCP 原生接口,HTTP 接口不支持会话和会话设置的概念,不允许中止查询(准确地说,只在少数情况下允许),不显示查询处理的进展。执行解析和数据格式化都是在服务端处理,网络上会比 TCP 原生接口更低效。
ClickHouse的数据库引擎
-
ClickHouse自己的数据库引擎(默认)
-
MySQL
MySQL引擎用于ClickHouse与MySQL之间进行数据交换。
在ClickHouse创建MySQL类型数据库并于MySQL服务器交换数据:CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] ENGINE = MySQL('host:port', 'database', 'user', 'password')
MySQL数据库引擎参数
host:port — 链接的MySQL地址。
database — 链接的MySQL数据库。
user — 链接的MySQL用户。
password — 链接的MySQL用户密码。
参考:[link]https://clickhouse.yandex/docs/zh/getting_started/install/
最后
以上就是怡然小笼包为你收集整理的初步认识clickhouse的全部内容,希望文章能够帮你解决初步认识clickhouse所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复