当前位置: 首页 > news >正文

clickhouse数据结构和常用数据操作

背景, 大数据中查询用mysql时间太长, 使用clickhouse 速度快, 数据写入mysql后同步到clickhouse中

测试1千万数据模糊搜索  mysql 需要30-40秒  clickhouse 约   100ms  

一 数据结构和存储引擎

1 查看clickhouse所有数据类型

select * from system.data_type_families;

2 常用数据类型及同mysql对比

MySQL

Clickhouse

大小(字节)

数据范围

tinyint

Int8

1

[-128 : 127]

smallint

Int16

2

[-32768 : 32767]

int

Int32

3

[-2147483648 : 2147483647]

bigint

Int64

4

[-9223372036854775808 : 9223372036854775807]

Int unsigned

UInt32

3

[0 : 4294967295]

MySQL

Clickhouse

大小(字节)

有效精度(位数)

float

Float32

4

6~7

double

Flout64

8

15~16

3 表存储引擎 engine

TinyLog,不分区,不索引,磁盘,列数据文件(.bin)

Memory,不分区,不索引,内存 (内存中, clickhouse 重启后表结构存在但数据被清空)

Merge,合并查询,并行查询多张表,类似视图

MergeTree,分区,索引,稀疏索引文件(.idx),列标识文件(.mrk,建立.idx与.bin之间的映射关系),列数据文件(.bin)

ReplacingMergeTree,分区,索引,组内去重

SummingMergeTree,分区,索引,组内聚合

Distributed分片集群,分布式表

二 sql操作和数据导入

1 sql操作

-- 新建数据库

CREATE DATABASE IF NOT EXISTS tmp_test;

-- 新建数据表

create table demo(id Int32,name String) engine=Memory;

-- 插入数据 , 注意 字符串使用单引号

insert into demo(id,name) values(110,'zhangsan');

-- 查询

select * from demo where name like '%san%' --字符串不能使用双引号

2 数据导入

a csv直接导入, 会新建表, 默认engine是Memory

b 先新建表,  再csv导入, 好处是可以指定engine是TinyLog

c 查询出数据数组, 使用代码插入

三 php操作clickhouse数据库

GitHub - smi2/phpClickHouse: php ClickHouse wrapper

composer require smi2/phpclickhouse

$config = ['host' => '192.168.1.1','port' => '8123','username' => 'default','password' => ''
];
$db = new ClickHouseDB\Client($config);if (!$db->ping()) echo 'Error connect';
# 查看建表sql
$db->database('tmp_test');
echo $db->showCreateTable('demo');
# 插入数据
$db->insert('demo',[[1, 'A1'],[2, 'A2'],[3, 'A3'],],['id', 'name']
);
# 查询
$statement = $db->select('SELECT * FROM demo LIMIT 10');
var_dump($statement->rows());

相关文章:

clickhouse数据结构和常用数据操作

背景, 大数据中查询用mysql时间太长, 使用clickhouse 速度快, 数据写入mysql后同步到clickhouse中 测试1千万数据模糊搜索 mysql 需要30-40秒 clickhouse 约 100ms 一 数据结构和存储引擎 1 查看clickhouse所有数据类型 select * from system.data_type_families; 2 …...

upload-labs关卡9(基于win特性data流绕过)通关思路

文章目录 前言一、靶场需要了解的知识1::$data是什么 二、靶场第九关通关思路1、看源码2、bp抓包修改后缀名3、检查是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授…...

C++过河卒问题

#include <iostream> #include <cstring> using namespace std;int board[20][20]; // 棋盘 int dp[20][20][20][20]; // 动态规划数组int main() {int x0, y0, x1, y1;cin >> x0 >> y0 >> x1 >> y1; // 输入卒的起点和终点memset(board,…...

【机器学习12】集成学习

1 集成学习分类 1.1 Boosting 训练基分类器时采用串行的方式&#xff0c; 各个基分类器之间有依赖。每一层在训练的时候&#xff0c; 对前一层基分类器分错的样本&#xff0c; 给予更高的权重。 测试时&#xff0c; 根据各层分类器的结果的加权得到最终结果。 1.2 Bagging …...

nodeJs基础笔记

title: nodeJs基础笔记 date: 2023-11-18 22:33:54 tags: 1. Buffer 1. 概念 Buffer 是一个类似于数组的 对象 &#xff0c;用于表示固定长度的字节序列。 Buffer 本质是一段内存空间&#xff0c;专门用来处理 二进制数据 。 2. 特点 Buffer 大小固定且无法调整Buffer 性能…...

Skywalking流程分析_9(JDK类库中增强流程)

前言 之前的文章详细介绍了关于非JDK类库的静态方法、构造方法、实例方法的增强拦截流程&#xff0c;本文会详细分析JDK类库中的类是如何被增强拦截的 回到最开始的SkyWalkingAgent#premain try {/** 里面有个重点逻辑 把一些类注入到Boostrap类加载器中 为了解决Bootstrap类…...

矩阵的QR分解

矩阵的QR分解 GramSchmidt 设存在 B { x 1 , x 2 , … , x n } \mathcal{B}\left\{\mathbf{x}_{1},\mathbf{x}_{2},\ldots,\mathbf{x}_{n}\right\} B{x1​,x2​,…,xn​}在施密特正交化过程中 q 1 x 1 ∣ ∣ x 1 ∣ ∣ q_1\frac{x_1}{||x_1||} q1​∣∣x1​∣∣x1​​ q k …...

STL总结

STL vector 头文件<vector> 初始化,定义,定义长度&#xff0c;定义长度并且赋值&#xff0c;从数组中获取数据返回元素个数size()判断是否为空empty()返回第一个元素front()返回最后一个数back()删除最后一个数pop_back()插入push_back(x)清空clear()begin()end()使用s…...

资深测试总结,现在软件测试有未来吗?“你“的底气在哪里?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、为什么会有 “…...

Scalable Exact Inference in Multi-Output Gaussian Processes

Orthogonal Instantaneous Linear Mixing Model TY are m-dimensional summaries&#xff0c;ILMM means ‘Instantaneous Linear Mixing Model’&#xff0c;OILMM means ‘Orthogonal Instantaneous Linear Mixing Model’ 辅助信息 作者未提供代码...

sqli-labs(Less-3)

1. 通过构造id1’ 和id1’) 和id1’)–确定存在注入 可知原始url为 id(‘1’) 2.使用order by 语句猜字段数 http://127.0.0.1/sqlilabs/Less-3/?id1) order by 4 -- http://127.0.0.1/sqlilabs/Less-3/?id1) order by 3 --3. 使用联合查询union select http://127.0.0.1…...

集合框架面试题

一、集合容器的概述 1. 什么是集合 集合框架&#xff1a;用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容&#xff1a; 对外的接口、接口的实现和对集合运算的算 法。 接口&#xff1a;表示集合的抽象数据…...

【LeetCode刷题日志】225.用队列实现栈

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;LeetCode 刷题日志&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;…...

【JavaScript】fetch 处理流式数据,实现类 chatgpt 对话

本文只包含最基础的请求后端大佬给得对话接口&#xff0c;大部分模型的传参是差不多的&#xff0c;核心还是如何处理 fetch 获取的流数据 import { defineStore } from pinia; import { ElMessage } from element-plus;type Role system | user | assistant; export interfac…...

收发电子邮件

电子邮件是Internet提供的又一个重要服务项目。早在1987年9月20日&#xff0c;中国首封电子邮件就是从北京经意大利向前联邦德国卡尔斯鲁厄大学发出的&#xff0c;在中国首次实现了与Internet的连接&#xff0c;使中国成为国际互联网大家庭中的一员。现在随着Internet的迅速发展…...

sql13(Leetcode570至少有5名直接下属的经理)

代码&#xff1a; 脑子记不住 语法全靠试.. # Write your MySQL query statement below select b.name from (select managerId,count(managerId) as numfrom Employeegroup by managerId ) a left join Employee b on a.managerIdb.id where a.num>5 and b.name is not N…...

15分钟,不,用模板做数据可视化只需5分钟

测试显示&#xff0c;一个对奥威BI软件不太熟悉的人来开发数据可视化报表&#xff0c;要15分钟&#xff0c;而当这个人去套用数据可视化模板做报表&#xff0c;只需5分钟&#xff01; 数据可视化模板是奥威BI上的一个特色功能板块。用户下载后更新数据源&#xff0c;立即就能获…...

C 语言字符串函数

C 语言字符串函数 在本文中&#xff0c;您将学习使用诸如gets()&#xff0c;puts&#xff0c;strlen()等库函数在C中操作字符串。您将学习从用户那里获取字符串并对该字符串执行操作。 您通常需要根据问题的需要来操作字符串。大多数字符串操作都可以自定义方法完成&#xff…...

nvm安装详细教程(卸载旧的nodejs,安装nvm、node、npm、cnpm、yarn及环境变量配置)

文章目录 一、完全卸载旧的nodejs1、打开系统的控制面板&#xff0c;点击卸载程序&#xff0c;卸载nodejs&#xff08;1&#xff09;打开系统的控制面板&#xff0c;点击程序下的卸载程序&#xff08;2&#xff09;找到node.js&#xff0c;鼠标右击出现下拉框&#xff0c;点卸载…...

详细步骤记录:持续集成Jenkins自动化部署一个Maven项目

Jenkins自动化部署 提示&#xff1a;本教程基于CentOS Linux 7系统下进行 Jenkins的安装 1. 下载安装jdk11 官网下载地址&#xff1a;https://www.oracle.com/cn/java/technologies/javase/jdk11-archive-downloads.html 本文档教程选择的是jdk-11.0.20_linux-x64_bin.tar.g…...

打破设备壁垒:VR-Reversal实现3D内容自由视角全设备适配

打破设备壁垒&#xff1a;VR-Reversal实现3D内容自由视角全设备适配 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com/gh_…...

智能家居设备变“聪明”的秘密:我是如何给ESP32摄像头加上本地人脸识别功能的

给ESP32摄像头装上“大脑”&#xff1a;我的本地人脸识别开发实战 去年夏天&#xff0c;我家门铃摄像头频繁误报的困扰让我萌生了一个想法——为什么不能让它像人类一样"认出"熟面孔&#xff1f;市面上的智能摄像头要么依赖云端计算导致延迟高&#xff0c;要么隐私保…...

飞浆PaddleOCR实战:5分钟实现图片转文字+表格识别(Python代码可直接套用)

飞桨PaddleOCR极速入门&#xff1a;零基础实现高精度图片转文字与表格解析 在数字化办公和智能信息处理的大背景下&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术正成为提升工作效率的利器。想象一下&#xff0c;当面对堆积如山的纸质文档、会议白板照片或是复杂的财…...

Godot引擎资源提取完全指南:从PCK文件到资产复用的技术实践

Godot引擎资源提取完全指南&#xff1a;从PCK文件到资产复用的技术实践 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 技术挑战速览 核心问题解决方案预览技术价值如何识别有效PCK文件&#xff1f…...

Linux日志高效搜索:从基础grep到journalctl实战技巧

1. Linux日志搜索&#xff1a;运维工程师的必备技能 每次服务器出现异常&#xff0c;第一反应是什么&#xff1f;没错&#xff0c;就是查日志。作为在Linux系统摸爬滚打多年的老运维&#xff0c;我见过太多新手面对海量日志时的手足无措。其实日志排查就像破案&#xff0c;关键…...

无线网络实战:从零配置AP与SSID,打通设备互联

1. 无线网络基础概念扫盲 刚接触无线网络时&#xff0c;我经常被各种专业术语搞得晕头转向。其实搭建一个简单的办公网络并不复杂&#xff0c;我们先来理清几个关键概念。**AP&#xff08;接入点&#xff09;**就像无线网络中的"信号中转站"&#xff0c;负责把有线网…...

Optisystem仿真案例5-三种调制格式的FSO空间自由光通信系统 内容:搭建了OOK、P...

Optisystem仿真案例5-三种调制格式的FSO空间自由光通信系统 内容&#xff1a;搭建了OOK、PPM、BPSK基本结构的三种调制格式的FSO空间自由光通信系统 形式&#xff1a;程序&#xff0b;附带解析 最近在搞FSO通信仿真&#xff0c;试了三种不同的调制格式——OOK、PPM、BPSK&…...

ESP8266 EEPROM实战:手把手教你存WiFi密码,断电重启也不怕

ESP8266 EEPROM实战&#xff1a;构建可靠的WiFi凭证存储系统 每次重启ESP8266设备都要重新输入WiFi密码&#xff1f;这种重复劳动早就该被技术淘汰了。想象一下&#xff0c;你的智能家居设备在断电恢复后能自动重新连接网络&#xff0c;工业传感器在意外重启后依然保持通信——…...

Whitlow/218 Linker如何革新抗体药物开发中的稳定性与生产难题?

一、抗体工程领域面临何种关键性技术瓶颈&#xff1f;抗体药物作为生物制药领域最具前景的治疗方向之一&#xff0c;在肿瘤、自身免疫疾病和传染病等重大疾病治疗中展现出卓越疗效。然而&#xff0c;在抗体药物研发过程中&#xff0c;两个关键技术难题始终制约着其进一步发展&a…...

MySQL 8.0隐藏技能:不用.frm文件,用Go语言工具+ALTER TABLE命令直接解析.ibd恢复表结构

MySQL 8.0数据恢复新思路&#xff1a;用Go语言逆向解析.ibd文件的技术实践 当数据库遭遇灾难性故障时&#xff0c;.frm文件的消失让MySQL 8.0的数据恢复变得更具挑战性。本文将带你深入InnoDB存储引擎的核心&#xff0c;探索一种不依赖传统.frm文件的全新恢复方案。 1. MySQL 8…...