clickhouse创建分布式表和本地表并远程同步mysql数据
此处以mergetree引擎举例,如果是用于高可用开发,还是需要换成replicatemergetree系列引擎1234567891011121314151617181920212223242526272829303132333435363738394041424344454647-- tablename和clustername不用提前建立好,会自动建立-- 分布式表和本地表都需要删除drop table if exists <database>.<tablename_local> on cluster <clustername>;drop table if exists <database>.<tablename_local> on cluster <clustername>;-- 先创建本地表(因为同步远程表没办法以集群模式同步,所以可以先同步表结构,不插入数据,然后再使用insert同步数据到各个节点)CREATE TABLE <database>.<tablename_local&g...
clickhouse简述
clickhouse什么是clickhouse?优势是什么,为什么选择ch? 全称 :Click Stream Data WareHouse 简称ClickHouse 是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 ClickHouse的核心特性 ClickHouse拥有完备的管理功能,所以它称得上是一个DBMS(Database Management System,数据库管理系统),而不仅是一个数据库。 DDL(数据定义语言):可以动态地创建、修改或删除数据库、表和视图,而无须重启服务。 DML(数据操作语言):可以动态查询、插入、修改或删除数据。 权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性。 数据备份与恢复:提供了数据备份导出与导入恢复机制,满足生产环境的要求。 分布式管理:提供集群模式,能够自动管理多个数据库节点。 列式存储与数据压缩 列式存储:想让查询变得更快,最简单且有效的方法是减少数据扫描范围和数据传输时的大小。假设一张数据表A拥有50个字段A1~A50,以及100行数据。现在需要查询前5个字段并进行数据分析...
clickhouse安装及简单使用
官方文档 安装(centos7) 检测环境许可 1$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported" 添加官方存储库 123sudo yum install yum-utilssudo rpm --import https://repo.clickhouse.com/CLICKHOUSE-KEY.GPGsudo yum-config-manager --add-repo https://repo.clickhouse.com/rpm/stable/x86_64 如果您想使用最新的版本,请用testing替代stable(我们只推荐您用于测试环境)。prestable有时也可用。 安装 1sudo yum install clickhouse-server clickhouse-client 启动 配置文件/etc/clickhouse-server/config.xml 1注释掉...
clickhouse工作中常用命令(长期)
全量从mysql导入数据到clickhouse(并建表)123clickhouse-client -m -u default --password 123456 --query="CREATE TABLE clickhouse_database_name.clickhouse_table_name ENGINE = MergeTree ORDER BY id AS SELECT * FROM mysql('ip:port', 'database_name', 'table_name','name', 'password');"; clickhouse数据导出到csv文件1clickhouse-client -h 127.0.0.1 --database="db" --query="select * from db.test_table FORMAT CSV" > test.csv csv文件导入到clickho...
clickhouse常用函数
group_concat(distinct xxx)1groupUniqArray(toString(xxx)) :得到的是数组 列转行1groupArray(xxx) :得到的是数组 合并数组成一个字符串1arrayStringConcat(arr, separator) 行转列1arrayJoin(groupArray(xxx)) 去重函数1arrayDistinct(array) 将数组拼接成一行12arrayConcat(array):此函数只有一个数组参数,无法设置分割符,可使用arrayStringConcat(array,'分隔符')设置分隔符 结果的最后一个1anyLast(xxx) 取出现次数前(3)的值1topK(3)(xxx) 复杂函数,过滤数组,取其中不等于a的第一个值1arrayElement(arrayFilter(x -> x!='a',['a','b','c'],1) 格式化日期1formatDateTime(currentTime...
关于clickhouse分区问题
最近项目在尝试clickhouse集群部署,但是我们在做etl的时候,有个表想着为了加快响应速度,建立了分区,所以对分区知识进行了二次调研首先分区并不能加快查询速度,而更加适用于更新或者删除数据用.分区数量限制由max_partitions_per_insert_block控制,默认是100当插入数据到100以上的时候,会报错提示 12345678DB::Exception: Too many partitions for single INSERT block (more than 100). The limit is controlled by 'max_partitions_per_insert_block' setting. Large number of partitions is a common misconception. It will lead to severe negative performance impact, including slow server startup, slow INSERT queries and slow ...
记录elementary OS的安装以及配置(基于elementaryos-6.0-stable)
记录elementary OS的安装以及配置(基于elementaryos-6.0-stable)elementary OS官网 下载好镜像<elementaryos-6.0-stable.20211103.iso> rufus官网 再下载好刻录启动盘工具 依次点击选择,开始即可(uefi对应gtp,mbr对应bios) 然后重启机器,f12进入,选择对应uefi下的usb选项,进入。elementaryos-6.0-stable镜像基于ubuntu20.04,开始页面是三个选项,第二个是清空磁盘做系统,选择进入,然后分区。最开始的加密密码不用选,麻烦。直接don‘t加密,然后进入。 最佳分区方案12345678910111213SWAP分区:实现虚拟内存,建议大小是物理内存的1-2倍/boot分区:用来存放与系统启动有关的程序,建议大小为200MB以内/usr分区:用来存放系统中的应用程序,相关数据较多,建议总硬盘的40%/var分区:用来存放系统中经常变化的数据以及日志文件,建议大小为5GB/home分区:存放普通用户的数据,建议大小为剩下的空间。/分区...
windows共享文件夹
首先需要启用Guest用户,一般默认是禁用的,按下Win+R打开运行窗口,输入lusrmgr.msc命令,回车,打开本地用户和组(本地) 右键Guest用户,打开属性,把“账户已禁用”前边的勾去掉,点击应用,确定。如果有必要,可右键Guest,点击设置密码(有时访问必须得有密码才行,此时也可不用设置,等需要的时候再设置也行)。此时账户就没有问题了,接下来共享文件夹。 右键需要共享的文件夹,打开属性,切换到共享界面,点击“共享”按钮。 点击“添加”按钮前边的下拉框,选中Guest账户,点击添加按钮,此时Guest用户就出现在了共享用户列表中,然后根据自己需求,在权限级别一栏选择对应选取即可,我这里选择的是读取和写入。然后点击下边的“共享”按钮,共享结束后,点击“完成”按钮。 点击“高级共享”按钮,然后点击下方的“权限”按钮 在权限界面,选中Everyone用户,点击删除(请注意,这里设置的权限,也是正常系统用户访问该文件夹的权限,如果非必要或者不清楚,那就不要删除了),然后点击“添加”按钮。 在“输入对象名称”下边输入Guest...
filebeat采集json日志到es
需求描述使用filebeat从log文件中采集json格式的日志,发送到ES中,并在ES中显示json日志的各字段和数据。 问题一:如何让采集Json格式的日志在filebeat.yml文件中进行相应的配置: 12345678910111213141516171819202122232425262728293031323334- type: log enabled: true paths: - E:\testjson.log processors: - script: lang: javascript source: > function process(event) { var message = event.Get("message"); message = message.replace(/\\x22/g,'"'); message = message.replace(/\,-/g,'&...
日志生命周期处理
日志生命周期处理脚本的方式 查出30天以前的索引并删掉 12345678910111213#!/bin/shcurl -H'Content-Type:application/json' -d'{ "query": { "range": { "pt": { "lt": "now-30d", "format": "epoch_millis" } } }}' -XPOST -H "Authorization:Basic ZWxhc3RpYzpTb3BlaU1HcjA5M0AkJV5FTEs=" "https://ip:9200/dev02-*/_delete...
