首页 > 其他分享 >clickhouse

clickhouse

时间:2023-06-14 09:22:53浏览次数:28  
标签:code uid -- label bit clickhouse

1.配置

安装

以Centos7系统为例,首先添加官方存储库

Ssudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client

设置用户名和密码

生成密文和明文密码

PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; 
echo -n "$PASSWORD" | sha256sum | tr -d '-'

image

这样可以得到两行数据,第一行是密码明文,第二行是密码密文

然后编辑users.xml

vim /etc/clickhouse-server/users.xml

将password改成以下内容,将密文填进去

<password_sha256_hex>密码密文</password_sha256_hex>

再找到 config.xml,允许所有人访问

<listen_host>0.0.0.0</listen_host>

启动

这个时候本地连接需要指定端口 127.0.0.1

sudo clickhouse-client --host='127.0.0.1' --port='9000' --user='default' --password='明文密码'

启动服务,日志文件在/var/log/clickhouse-server/目录下

sudo /etc/init.d/clickhouse-server start

客户端连接命令如下,参数如下:

  • --host 主机
  • --port 端口
  • --user 用户名
  • -- password 密码
clickhouse-client

image

3.bitmap解决数据量大计算慢问题

创建测试表

create table label_bit_map
(
    label_code       String comment '标签名称',
    label_name       String comment '标签名称',
    uid               AggregateFunction(groupBitmap, UInt64) comment 'uid'
)
    engine = AggregatingMergeTree PARTITION BY label_code
        ORDER BY label_code
        SETTINGS index_granularity = 8192;

往表中插入 age 一千万条数据

INSERT INTO label_bit_map (label_code, label_name, uid)
SELECT 'age', '年龄', groupBitmapState(toUInt64(rand()%1000000000))
FROM numbers(10000000);

往表中插入sex 一千万条数据

INSERT INTO label_bit_map (label_code, label_name, uid)
SELECT 'sex', '性别', groupBitmapState(toUInt64(rand()%1000000000))
FROM numbers(10000000);

四秒完成

completed in 4 s 720 ms

交并(取交集)

with
(select uid from label_bit_map where label_code='age') as t1,
(select uid from label_bit_map where label_code='sex') as t2
select bitmapAnd(t1,t2)

取并集

with
(select uid from label_bit_map where label_code='age') as t1,
(select uid from label_bit_map where label_code='sex') as t2
select bitmapOr(t1,t2)

取具体数量

with
(select uid from label_bit_map where label_code='age') as t1,
(select uid from label_bit_map where label_code='sex') as t2
select bitmapCardinality(bitmapCardinality())

标签:code,uid,--,label,bit,clickhouse
From: https://www.cnblogs.com/wlstudy09/p/17479229.html

相关文章

  • clickhouse 为什么快?
    文章目录@[TOC](文章目录)前言一、什么是列式数据库?为什么要用列式数据库,优点是什么?二、clickhouse入门1.个人猜想2.使用clickhouse引入依赖yml配置扫描mapper2.生成相应代码,执行测试用例查询结果总结前言例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启......
  • MySQL表结构转换为ClickHouse表结构
    MySQL表结构转换为ClickHouse表结构https://github.com/hcymysql/binlog_parse_sql/blob/main/mysql_to_clickhose_schema.pyhttps://github.com/hcymysql/binlog_parse_sql/blob/main/mysql_to_clickhose_schema_test.py(MySQL表结构转换为ClickHouse表结构,该工具仅为单表测试使用)C......
  • clickhouse 21.1.5 单机性能测试
    数据集1英国房地产支付价格https://clickhouse.com/docs/zh/getting-started/example-datasets/uk-price-paid问题由于公司电脑的Ubuntu子系统访问不了内网,下载不了数据,我是在电脑之间下载csv文件然后在子系统Ubuntu进行如下SQL导入的错误是因为在尝试解析CSV文件的过程中,C......
  • 使用clickhouse和mysql查询时间对比
    业务场景,对于数据量过大的数据统计,跑脚本会很吃力先建立一个clickhouse的mysql引擎表关联本地mysql数据表,以下这个表会自动同步mysql主表数据CREATETABLEtest_table(idUInt32,messageString,contentString,remarkString,order_idString,user_idUInt......
  • 干货|开源OLAP引擎(ClickHouse、Doris、Presto、ByConity)性能对比分析
    随着数据量和数据复杂性的不断增加,越来越多的企业开始使用OLAP(联机分析处理)引擎来处理大规模数据并提供即时分析结果。在选择OLAP引擎时,性能是一个非常重要的因素。 因此,本文将使用TPC-DS基准测试的99个查询语句来对比开源的ClickHouse、Doris、Presto以及ByConity这4个OLAP引......
  • binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse
    binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse原理:将解析binlog和执行SQL语句两个过程由两个线程来执行。其中,解析binlog的线程每次解析完一个事件后通过队列将SQL语句传给SQL执行线程,SQL执行线程从队列中取出SQL语句并按顺序依次执行,这样就保......
  • 【Clickhouse】ReplaceingMergeTree引擎final实现合并去重探索
    前言在OLAP实践中,在有数据更新的场景中,比如存储订单数据,我们经常会用到ReplaceingMergeTree引擎来去重数据,以获取数据的最新状态。但是ReplaceingMergeTree引擎实现数据的去重合并的操作是异步的,这样在实际查询的时候,其实是仍然有一部分数据是未进行合并的。为了保证统计数据的准......
  • clickhouse读写数据库3-- clickhouse_driver 模块
    这是用百度的文心一言生成的代码。刚开始2次都是错误的,明确指出clickhouse_driver没有占位符,让AI重新生成。重新生成了2次之后,才得到正确代码  #!/usr/bin/envpython#-*-coding:utf-8-*-#author:henry#desc:整理clickhouse读写的范例,方便日后读写click......
  • laravel clickhouse join
    (79条消息)列式存储数据库ClickHouse的安装及使用Laravel连接使用_larvalclickhouse_风中一匹狼2333的博客-CSDN博客https://blog.csdn.net/qq_32404231/article/details/118930322$bd=DB::connection("clickhouse")->table('teacher')->as("a")-&......
  • FLink写入Clickhouse优化
    一、背景ck因为有合并文件操作,适合批量写入。如单条插入则速度太慢二、Flink写入ck优化改为分批插入,代码如下DataStream<Row>stream=...stream.addSink(JdbcSink.sink("INSERTINTOmytable(col1,col2)VALUES(?,?)",(ps,row)->{ps.setString(1,row.ge......