Kettle 安装及支持 ClickHouse 开发配置
Kettle 下载地址 选择需要的版本,进入这个路径,下载这个 CE 解压 Kettle 安装包下载 ClickHouse 所需驱动包 将 clickhouse-plugins 文件夹复制到 Kettle 的 data-integration\plugins 文件夹里 复制驱动包里的其余 jar 包,粘贴到 Kettle 的 data-integration\libswt\xxx 目录下根据自己的系统而定,Linux 环境使用 uname -r 先看下系统。 启动 Kettle 编辑工具双击 data-integration 目录下 Spoon.bat 启动。
ClickHouse 简述
ClickHouse什么是 ClickHouse?优势是什么,为什么选择 CH?全称:Click Stream Data WareHouse,简称 ClickHouse,是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 ClickHouse 的核心特性1. 完备的管理功能ClickHouse 拥有完备的管理功能,所以它称得上是一个 DBMS(Database Management System,数据库管理系统),而不仅是一个数据库。 DDL(数据定义语言):可以动态地创建、修改或删除数据库、表和视图,而无须重启服务 DML(数据操作语言):可以动态查询、插入、修改或删除数据 权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性 数据备份与恢复:提供了数据备份导出与导入恢复机制,满足生产环境的要求 分布式管理:提供集群模式,能够自动管理多个数据库节点 2. 列式存储与数据压缩列式存储:想让查询变得更快,最简单且有效的方法是减少数据扫描范围和数据传输时的大小。假设一张数据表 A 拥有 50 个字段 A1~A50,以及 100 行数据。现在需要查询...
ClickHouse 常用函数
group_concat(distinct xxx)1groupUniqArray(toString(xxx)) -- 得到的是数组 列转行1groupArray(xxx) -- 得到的是数组 合并数组成一个字符串1arrayStringConcat(arr, separator) 行转列1arrayJoin(groupArray(xxx)) 去重函数1arrayDistinct(array) 将数组拼接成一行12arrayConcat(array) -- 此函数只有一个数组参数,无法设置分割符-- 可使用 arrayStringConcat(array, '分隔符') 设置分隔符 结果的最后一个1anyLast(xxx) 取出现次数前 N 的值1topK(3)(xxx) -- 取出现次数前 3 的值 复杂函数:过滤数组,取其中不等于 a 的第一个值1arrayElement(arrayFilter(x -> x != 'a', ['a','b','c'...
关于 ClickHouse 分区问题
最近项目在尝试 ClickHouse 集群部署,但是我们在做 ETL 的时候,有个表想着为了加快响应速度,建立了分区,所以对分区知识进行了二次调研。 重要结论首先分区并不能加快查询速度,而更加适用于更新或者删除数据用。 分区数量限制by 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 ...
ClickHouse 解决连接/查询超时(Read timeout)
JDBC 连接1jdbc:clickhouse://{host}:{port}[/{database}]?socket_timeout=600000 DataGrip 等远程连接工具
ClickHouse 创建分布式表和本地表并远程同步 MySQL 数据
此处以 MergeTree 引擎举例如果是用于高可用开发,还是需要换成 ReplicatedMergeTree 系列引擎。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546-- tablename 和 clustername 不用提前建立好,会自动建立-- 分布式表和本地表都需要删除DROP TABLE IF EXISTS <database>.<tablename_all> ON CLUSTER <clustername>;DROP TABLE IF EXISTS <database>.<tablename_local> ON CLUSTER <clustername>;-- 先创建本地表(因为同步远程表没办法以集群模式同步,所以可以先同步表结构,不插入数据,然后再使用 INSERT 同步数据到各个节点)CREATE TABLE <database>.<tablename_...
ClickHouse 工作中常用命令(长期)
全量从 MySQL 导入数据到 ClickHouse(并建表)1clickhouse-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 文件导入到 Cli...
ClickHouse 安装及简单使用
官方文档 安装(CentOS 7) 检测环境许可 1grep -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,注释...
