前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ClickHouse系列1--入门

ClickHouse系列1--入门

作者头像
IT云清
发布2021-12-06 14:16:10
2590
发布2021-12-06 14:16:10
举报
文章被收录于专栏:IT云清

1.配置文件

服务器配置文件位于/etc/clickhouse-server/config.xml中的<path>元素,它决定了数据存储的位置,因此它应该位于磁盘容量的卷上;默认值是/var/lib/clickhouse/。如果你想调整配置,直接编辑config是不方便的。考虑到它可能会在将来的包更新中被重写。建议重写配置元素的方法是在配置中创建config.d文件夹,作为config.xml的重写方式。

2.启动

clickhouse-server安装后不会自动启动,可以如下方式:

代码语言:javascript
复制
sudo service clickhouse-server start
sudo /etc/init.d/clickhouse-server start

服务端日志的默认位置是/var/log/clickhouse-server/。当服务端在日志中记录Ready for connections消息,即表示服务端已准备好处理客户端连接。

3.客户端连接

交互模式:

代码语言:javascript
复制
clickhouse-client
clickhouse-client --host=... --port=... --user=... --password=...

启用多行查询:

代码语言:javascript
复制
clickhouse-client -m
clickhouse-client --multiline

以批处理模式运行查询:

代码语言:javascript
复制
clickhouse-client --query='SELECT 1'
echo 'SELECT 1' | clickhouse-client
clickhouse-client <<< 'SELECT 1'

从指定格式的文件中插入数据:

代码语言:javascript
复制
clickhouse-client --query='INSERT INTO table VALUES' < data.txt
clickhouse-client --query='INSERT INTO table FORMAT TabSeparated' < data.tsv

4.创建数据库

与大多数数据库管理系统一样,ClickHouse在逻辑上将表分组为数据库。包含一个default数据库,但我们可以创建自己的数据库tutorial:

代码语言:javascript
复制
clickhouse-client --query "CREATE DATABASE IF NOT EXISTS tutorial"

5.创建表

与创建数据库相比,创建表的语法要复杂得多。一般CREATE TABLE声明必须指定三个关键的事情:

6.查询配置项的含义

我们可能需要调整一些参数,如倒入数据时,设置最大的插入条数:

代码语言:javascript
复制
clickhouse-client --query "INSERT INTO tutorial.hits_v1 FORMAT TSV" --max_insert_block_size=100000 < hits_v1.tsv

找出可用的设置、含义及其默认值的最简单方法是查询system.settings 表:

代码语言:javascript
复制
SELECT name, value, changed, description
FROM system.settings
WHERE name LIKE '%max_insert_b%'
FORMAT TSV

max_insert_block_size    1048576    0    "The maximum block size for insertion, if we control the creation of blocks for insertion."

7.查询示例

clickhouse的查询还是比较像mysql的,例如:

代码语言:javascript
复制
SELECT
    StartURL AS URL,
    AVG(Duration) AS AvgDuration
FROM tutorial.visits_v1
WHERE StartDate BETWEEN '2014-03-23' AND '2014-03-30'
GROUP BY URL
ORDER BY AvgDuration DESC
LIMIT 10
代码语言:javascript
复制
SELECT
    sum(Sign) AS visits,
    sumIf(Sign, has(Goals.ID, 1105530)) AS goal_visits,
    (100. * goal_visits) / visits AS goal_percent
FROM tutorial.visits_v1
WHERE (CounterID = 912887) AND (toYYYYMM(StartDate) = 201403) AND (domain(StartURL) = 'yandex.ru')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/05/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.配置文件
    • 2.启动
    • 3.客户端连接
    • 4.创建数据库
    • 5.创建表
    • 6.查询配置项的含义
    • 7.查询示例
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档