ClickHouse的基本操作说明

说明

文章内容包括数据库管理、表操作及查询等核心功能

创建数据库

-- 默认引擎(Atomic)

CREATE DATABASE IF NOT EXISTS test_db;

-- MySQL引擎(映射外部MySQL数据库)

CREATE DATABASE mysql_db ENGINE = MySQL('host:port', 'mysql_db_name', 'user', 'password');

CREATE DATABASE mysql_db ENGINE = MySQL('localhost:3306', 'test', 'test', 'test');

use mysql_db;

show tables;

select * from de_dict;

desc de_dict;

删除数据库

DROP DATABASE test_db;

切换数据库

USE test_db;

本地表(MergeTree引擎)

CREATE TABLE user_logs (

    log_id UInt64,

    user_id UInt32,

    event_time DateTime,

    metric Float32

) ENGINE = MergeTree()

PARTITION BY toYYYYMM(event_time)  -- 按年月分区

ORDER BY (user_id, event_time)     -- 主键及排序键

SETTINGS index_granularity = 8192;  -- 索引粒度

分布式表

-- 本地表(集群各节点创建)

CREATE TABLE test.user_event ON CLUSTER data_cluster (

    uid String,

    dt Date

) ENGINE = MergeTree() PARTITION BY dt ORDER BY uid;

-- 分布式表(逻辑视图)

CREATE TABLE test.user_event_distributed

ENGINE = Distributed('data_cluster', 'test', 'user_event', rand()); -- 随机分片

插入数据

INSERT INTO user_logs VALUES

(1, 101, '2023-10-01 10:00:00', 1.5),

(2, 102, '2023-10-01 11:00:00', 2.8);

查询数据

-- 基础查询

SELECT * FROM user_logs WHERE user_id = 101;

-- 聚合统计

SELECT user_id, SUM(metric) FROM user_logs GROUP BY user_id;

-- 排序与分页

SELECT * FROM user_logs ORDER BY event_time DESC LIMIT 10;

更新/删除数据

-- 删除分区

ALTER TABLE user_logs DROP PARTITION '202310';

-- 删除条件数据

ALTER TABLE user_logs DELETE WHERE user_id = 101;

表结构修改

-- 添加列

ALTER TABLE user_logs ADD COLUMN ip String AFTER user_id;

-- 删除列

ALTER TABLE user_logs DROP COLUMN metric;

-- 修改列类型

ALTER TABLE user_logs MODIFY COLUMN ip IPv4;

其他实用操作

SHOW DATABASES;          -- 查看所有数据库

SHOW TABLES FROM test_db; -- 查看库中所有表

DESC user_logs;           -- 查看表结构

SELECT * FROM system.clusters;  --查看已配置的集群信息

数据导入/导出

-- 导出到CSV

SELECT * FROM user_logs INTO OUTFILE 'data.csv' FORMAT CSV;

-- 从文件导入

INSERT INTO user_logs FROM INFILE 'data.csv' FORMAT CSV;

性能优化建议

批量插入数据(每次插入至少数千行);

避免使用SELECT *,明确指定查询列;

合理使用分区和索引减少扫描范围。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/82284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nacos源码—7.Nacos升级gRPC分析四

大纲 5.服务变动时如何通知订阅的客户端 6.微服务实例信息如何同步集群节点 6.微服务实例信息如何同步集群节点 (1)服务端处理服务注册时会发布一个ClientChangedEvent事件 (2)ClientChangedEvent事件的处理源码 (3)集群节点处理数据同步请求的源码 (1)服务端处理服务注册…

《Overlapping Experiment Infrastructure: More, Better, Faster》论文阅读笔记

文章目录 1 背景2 三个核心概念3 Launch层:特性发布的专用机制4 流量分发策略和条件筛选4.1 四种流量分发类型4.2 条件筛选机制 5 工具链与监控体系6 实验设计原则7 培训参考与推荐 1 背景 谷歌(Google)以数据驱动著称,几乎所有可…

国芯思辰| 医疗AED可使用2通道24位模拟前端SC2946(ADS1292)

生物电信号监测技术在医疗健康行业中发展迅速,成为评估人体生理健康状况的关键手段。心电(ECG)、脑电(EEG)和肌电(EMG)等信号,通过精密模拟前端芯片捕捉和处理,对医疗诊断…

数据结构【二叉搜索树(BST)】

二叉搜索树 1. 二叉搜索树的概念2. 二叉搜索树的性能分析3.二叉搜索树的插入4. 二叉搜索树的查找5. 二叉搜索树的删除6.二叉搜索树的实现代码7. 二叉搜索树key和key/value使用场景7.1 key搜索场景:7.2 key/value搜索场景: 1. 二叉搜索树的概念 二叉搜索…

RDMA高性能网络通信实践

RDMA高性能网络通信实践 一、背景介绍二、方法设计A.实现方案B.关键技术点 三、代码及注释四、注意事项 一、背景介绍 远程直接内存访问(RDMA)技术通过绕过操作系统内核和CPU直接访问远程内存,实现了超低延迟、高吞吐量的网络通信。该技术广…

ndarray数组掩码操作,True和False获取数据

#数组掩码的表示方法 def testht05():a np.arange(1,10)mask [True,False,True,True,False,True,False,True,True]print(a[mask]) 另外的用法: #掩码操作获取子集 def testht06():a np.arange(1,100)print(a[a%3 0 & (a%7 0)] )b np.array([A,"B&qu…

索引工具explain

EXPLAIN 是 MySQL 中一个非常有用的工具,用于分析查询的执行计划。通过 EXPLAIN,你可以了解 MySQL 是如何执行查询的,包括它如何使用索引、表的扫描方式等。这有助于优化查询性能。以下是 EXPLAIN 输出的各个字段的详细解释: 基本用法 EXPLAIN SELECT * FROM table_name …

Git回顾

参考视频:【GeekHour】一小时Git教程 一句话定义:Git是一个免费开源的分布式版本控制系统。 版本控制系统可以分为两种,1.集中式(SVN,CVS);2.分布式(git) git的工作区域和文件状态…

python打卡day20

特征降维------特征组合(以SVD为例) 知识点回顾: 奇异值的应用: 特征降维:对高维数据减小计算量、可视化数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高&#…

GuPPy-v1.2.0安装与使用-生信工具52

GuPPy:Python中用于光纤光度数据分析的免费开源工具 01 背景 Basecalling 是将原始测序信号转换为碱基序列的过程,通俗地说,就是“把碱基识别出来”。这一过程在不同代测序技术中各不相同: 一代测序是通过解析峰图实现&#xff1…

47. 全排列 II

题目 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]] 示例 2: 输入:nums [1,2,3] 输出:[[1,2,3…

ERP系统操作流程,如何快速搭建流程体系

ERP流程图,如何搭建和建立,ERP系统操作流程,ERP系统操作流程图,采购流程,销售流程,仓库流程,MRP流程,PMC流程,财务流程,应收流程,应付流程&#x…

class path resource [] cannot be resolved to absolute file path

问题情景 java应用程序在IDE运行正常,打成jar包后执行却发生异常: java.io.FileNotFoundException: class path resource [cert/sync_signer_pri_test.key] cannot be resolved to absolute file path because it does not reside in the file system:…

19、HashTable(哈希)、位图的实现和布隆过滤器的介绍

一、了解哈希【散列表】 1、哈希的结构 在STL中,HashTable是一个重要的底层数据结构, 无序关联容器包括unordered_set, unordered_map内部都是基于哈希表实现 哈希表又称散列表,一种以「key-value」形式存储数据的数据结构。哈希函数:负责将…

基于 Flask的深度学习模型部署服务端详解

基于 Flask 的深度学习模型部署服务端详解 在深度学习领域,训练出一个高精度的模型只是第一步,将其部署到生产环境中,为实际业务提供服务才是最终目标。本文将详细解析一个基于 Flask 和 PyTorch 的深度学习模型部署服务端代码,帮…

Vue3 + Node.js 实现客服实时聊天系统(WebSocket + Socket.IO 详解)

Node.js 实现客服实时聊天系统(WebSocket Socket.IO 详解) 一、为什么选择 WebSocket? 想象一下淘宝客服的聊天窗口:你发消息,客服立刻就能看到并回复。这种即时通讯效果是如何实现的呢?我们使用 Vue3 作…

MySQL数据库与表结构操作指南

前言:本文系统梳理MySQL核心操作语句。内容覆盖建库建表、结构调整、数据迁移全流程(包含创建/修改/删除/备份场景)。希望它们能帮你快速解决问题。 库结构操作 一、库的创建 一个库的简单创建: create database 库名; 注意&am…

【WEB3】区块链、隐私计算、AI和Web3.0——数据民主化(1)

区块链、隐私计算、AI,是未来Web3.0至关重要的三项技术。 1.数据民主化问题 数据在整个生命周期(生产、传输、处理、存储)内的隐私安全,则是Web3.0在初始阶段首要解决的问题。 数据民主化旨在打破数据垄断,让个体能…

C语言—指针2

1. const 修饰变量 1.1 const修饰变量 变量被const修饰时,变量此时为常变量,本质为常量,语法上不可被修改,但是如果此时需要修改变量值,可以通过指针的方式修改。 虽然此时通过指针的方式确实修改了变量的值&#xff…

高级架构软考之网络OSI网络模型

高级架构软考之网络: 1.OSI网络模型: a.物理层: a.物理传输介质物理连接,负责数据传输,并监控数据 b.传输单位:bit c.协议: d:对应设备:中继器、集线器 b.数据链路层: a.…