Python3 使用 clickhouse-connect 操作 clickhouse
'''
版本:
Python 3.7 x86
clickhouse 24.6.1.3573
clickhouse-connect 0.6.22
'''
代码一:
# pip install clickhouse-connectimport clickhouse_connect# 准备参数
host = "192.168.1.112"
port = 8123
username = "default"
password = "123456"
database = "default"client = clickhouse_connect.get_client(host=host,port=port,database=database,username=username,password=password,)# To run a ClickHouse SQL command, use the client command method:
client.command('CREATE TABLE IF NOT EXISTS new_table (key UInt32, value String, metric Float64) ENGINE MergeTree ORDER BY key')# To insert batch data, use the client insert method with a two-dimensional array of rows and values:
row1 = [1000, 'String Value 1000', 5.233]
row2 = [2000, 'String Value 2000', -107.04]
data = [row1, row2]
client.insert('new_table', data, column_names=['key', 'value', 'metric'])# To retrieve data using ClickHouse SQL, use the client query method:
result = client.query('SELECT max(key), avg(metric) FROM new_table')
print(result.result_rows)
print(result.row_count)
for data in result.result_rows:print(data)result = client.query('SELECT version()')
print(result.result_rows)'''
输出:
[(2000, -50.90350000000001)]
1
(2000, -50.90350000000001)
[('24.6.1.3573',)]
'''
代码二:
# pip install clickhouse-connect==0.6.22# 建立连接
import clickhouse_connect# 准备参数
host = "192.168.1.112"
port = 8123
username = "default"
password = "123456"
database = "default"# 建立连接
client = clickhouse_connect.get_client(host=host,port=port,database=database,username=username,password=password,
)print(client)
print(client.server_version)# 删除表
client.command('drop table if exists user')# 创建表
# client.command('CREATE TABLE user (id UInt32, name String, age UInt32) ENGINE MergeTree ORDER BY id')# 新增数据
table = "user"
client.command(f'CREATE TABLE {table} (id UInt32, name String, age UInt32) ENGINE MergeTree ORDER BY id')# 新增数据 方式一 (19.xx 版本报错)
zs = [1, '张三', 23]
ls = [2, '李四', 24]
ww = [3, '王五', 35]
data = [zs, ls, ww]
columns = ["id", "name", "age"]
client.insert(table, data, column_names=columns)# 新增数据 方式二
client.query(f'insert into user (id, name, age) VALUES {tuple(zs)},{tuple(ls)},{tuple(ww)}')# 根据ID查询数据
id = 1
result = client.query(f'SELECT * FROM {table} where id={id}')
print(result.result_rows)# 查询所有数据
result = client.query(f'SELECT * FROM {table}')
print(result.result_rows)# 根据ID修改数据
id = 1
client.command(f"ALTER TABLE {table} UPDATE name='张三333' where id={id}")
# time.sleep(1)# 根据ID删除数据
id = 1
client.command(f"ALTER TABLE {table} DELETE WHERE id={id}")# 分页查询数据
result = client.query(f'SELECT * FROM {table} limit 2 offset 0')
print(result.result_rows)# 排序查询数据
result = client.query(f'SELECT id FROM {table} order by age desc limit 2 offset 0')
print(result.result_rows)
print(type(result.result_rows))
print(result.row_count)# 删除数据库表
# client.command(f'drop table if exists {table}')'''
输出:
<clickhouse_connect.driver.httpclient.HttpClient object at 0x00E0DC70>
24.6.1.3573
[(1, '张三', 23), (1, '张三', 23)]
[(1, '张三', 23), (2, '李四', 24), (3, '王五', 35), (1, '张三', 23), (2, '李四', 24), (3, '王五', 35)]
[(1, '张三333', 23), (2, '李四', 24)]
[(3, '王五', 35), (3, '王五', 35)]
<class 'list'>
2
'''
'''
参考:
https://blog.csdn.net/weixin_44786530/article/details/128094447
https://clickhouse.com/docs/en/integrations/python
https://pypi.org/project/clickhouse-connect/
https://mp.weixin.qq.com/s?__biz=MzA5NjQ1ODYwNg==&mid=2659081458&idx=1&sn=95ca7c1adf0eba1421ccd6422b80e1be&chksm=8b253ef3bc52b7e5b98f0419071fc8a2d6dcc8b6d20c6d50ffeba3cfb02a79246d9611421d11&mpshare=1&srcid=0606ecmYCO4FuLilOwvc7m7T&sharer_shareinfo=9c182e686cfe331385095c34d65701ab&sharer_shareinfo_first=9c182e686cfe331385095c34d65701ab&from=singlemessage&scene=1&subscene=10000&sessionid=1717747371&clicktime=1717751317&enterid=1717751317&ascene=1&fasttmpl_type=0&fasttmpl_fullversion=7239299-zh_CN-zip&fasttmpl_flag=0&realreporttime=1717751317382&devicetype=android-31&version=28003156&nettype=3gnet&abtest_cookie=AAACAA%3D%3D&lang=zh_CN&countrycode=CN&exportkey=n_ChQIAhIQH4h%2Fk168vKXNgPX%2FZxvclRLpAQIE97dBBAEAAAAAAB03CLwTsbYAAAAOpnltbLcz9gKNyK89dVj0wy6ZQsWlWt6X%2BkfuORNeZIBVrmstO04DrL%2FxXNP%2Fp02eyj%2B8qQ2WiFZtFUqM99gLP2VbHQQHM%2FEy156wLLedPLkNrqMlyLG5RA%2B0p0pI7FNDlrQfS%2B1lCQpFKQues%2FV4kZpXZWEXJX%2BHDYkk1DMygykOhU%2Bq%2FMMNp1weD0T2COJe51joz3MOH3ZV1sevgSJhajIh58YHdp6kh6cC5BvI0jL8LvlWXWft2GKrivr36tEVkKXQHUMoGimJXwiYY%2Fd1Zndn&pass_ticket=kKrK%2FLOHNWxyOWDkqhpS1yHTm7uiHLqhE%2BnnXOTE%2BWIMedYdokcCq7%2BZGMl0r6ce&wx_header=3
'''
相关文章:
Python3 使用 clickhouse-connect 操作 clickhouse
版本: Python 3.7 x86 clickhouse 24.6.1.3573 clickhouse-connect 0.6.22 代码一: # pip install clickhouse-connectimport clickhouse_connect# 准备参数 host "192.168.1.112" port 8123 username "default" passw…...
Python脚手架系列-DrissionPage
记录DrissionPage模块使用中的一些常常复用的代码,持续更新… 接管谷歌浏览器 from DrissionPage import ChromiumPage, ChromiumOptionsco ChromiumOptions().set_local_port(4249) driver ChromiumPage(addr_or_optsco)创建driver,如果浏览器已开启优先接管&am…...
Java中如何调用mysql中函数
在Java中调用MySQL中的函数(无论是存储函数还是自定义函数),通常是通过JDBC(Java Database Connectivity)来完成的。以下是一个简单的步骤说明和示例代码,展示如何在Java中调用MySQL中的函数。 步骤 添加…...
Huggingface-cli 登录最新版(2024)
安装Huggingface-cli pip install -U "huggingface_hub[cli]"设置好git的邮箱和用户名和huggingface的github账号一致 git config --global user.mail xxx git config --global user.name xxx登录 复制token,划红线的地方,在命令行中点击右…...
Java学习 - Docker管理和容器命令 实例
docker管理 查看docker版本,检测是否可用 sudo docker version查看docker 系统信息 sudo docker infodocker容器命令 容器状态 容器标识 容器长uuid容器短uuid容器名字 查看容器状态 sudo docker status [容器标识1] [容器标识2] [容器标识n]深入查看容器信息 su…...
下载工程resources目录下的模板excel文件
一、添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.1.0</version> </dependency> 二、编写接口 GetMapping("/downloadTemplate")public void downlo…...
音频基础知识和音频指标
音频基础知识 声音 声音(sound)是由物体振动产生的声波。物体在一秒钟之内振动的次数叫做频率,单位是赫兹,字母Hz。人耳可以识别的声音频率在 20 Hz~20000 Hz之间; 声音三要素: 响度 响度,…...
使用Vue CLI在其他磁盘创建项目出现错误及解决
Vue CLI是Vue.js官方推出的脚手架工具,可以帮我们快速的创建Vue项目框架。 我们创建Vue项目时一般默认都是在C盘,但由于某些因素我们需要在其他磁盘上创建Vue项目。 通过“winr”打开终端时默认位置都是C盘,但是Vue CLI不接受绝对路径作为参…...
关于lamda表达式的使用
Lambda表达式是一种匿名函数,即没有函数名的函数,它可以以更简洁、更灵活的方式编写代码。以下是Lambda表达式的常用方式: 无参数,无返回值: 如果抽象方法不带参数且不返回值,可以使用空括号和主体编写Lam…...
Android替换默认的按键音
替换audio_assets.xml文件 此文件在AudioService.java被调用 <!--文件位置 /frameworks/base/core/res/res/xml/--> <audio_assets version"1.0"><group name"touch_sounds"><asset id"FX_KEY_CLICK" file"Effect…...
Windows 服务器Nginx 下载、部署、配置流程(图文教程)
不定期更新 目录 一、下载Nginx安装包 二、上传安装包 三、启动Nginx 四、Nginx常用命令 五、Nginx(最小)配置详解 六、Nginx(基础)配置详解 七、反向代理 八、负载均衡 九、动静分离 十、报错 一、下载Nginx安装包 四…...
基于Redis实现共享session登录
搭配食用:Redis(基础篇)-CSDN博客 项目实现前的 Mysql中的表: 表说明tb_user用户表tb_user_info用户详情表tb_shop商户信息表tb_shop_type商户类型表tb_blog用户日记表(达人探店日记)tb_follow用户关注表tb_voucher优…...
shell函数的定义
shell函数的定义 定义:将命令序列按照格式写在一起.格式指的是函数的固定格式 作用:方便重复使用,还可以做成函数库,集中在一起,随时可以传参调用,大的工程分割成小的模块,提高代码的可读性. 函数的格式 vim hanshu1.shfunction shopping {命令序列}shopping () {命令…...
vue部署宝塔nginx配置(获取用户ip地址、反代理访问api接口、websocket转发)
以下配置为我自己的需求,因人而异,如果只是单纯的前端非交互页面,可以不用修改配置。 代码及注释,如下: #解决vue-router设置mode为history,去掉路由地址上的/#/后nginx显示404的问题location / {proxy_htt…...
Jenkins教程-3-github自动化测试任务构建
上一小节我们学习了Jenkins在windows和mac系统上安装搭建环境的方法,本小节我们讲解一下Jenkins构建github自动化测试任务的方法。 接下来我们以windows系统为例,讲解一下构建实际自动化测试任务的具体步骤。 安装git和github插件 点击进入Jenkins插件…...
0元体验苹果macOS系统,最简单的虚拟机部署macOS教程
前言 最近发现小伙伴热衷于在VMware上安装体验macOS系统,所以就有了今天的帖子。 正文开始 首先,鉴于小伙伴们热衷macOS,所以小白搜罗了一圈macOS系统,并开启了分享通道。 本次更新的系统版本是: macOS 10.13.6 ma…...
Codeforces Round 946 (Div. 3) E. Money Buys Happiness
m m m个月,每个月月底发 x x x的薪水,也就是第 i i i个月只能用前 i − 1 i-1 i−1个月挣的钱,而不能用这个月挣的钱。第 i i i个月花费 c [ i ] c[i] c[i]的薪水能获得 h [ i ] h[i] h[i]的快乐度,问最多能获取的快乐度是多少。 …...
Git记录 上传至Gitee
1.GitHub拉去的代码需要上传至自己的Gitee需要清除原有remote服务器信息 查看原始远程服务器信息,后删除远程服务器信息 git remote -v git remote rm origin 2.Gitee新建软件仓库 法1)不用初始化仓库,初始化会自动生成.git。如果本地.git…...
笔记-前端
URL 输入到渲染的过程 域名解析,找到服务地址 构建 TCP 连接,若有 https,则多一层 TLS 握手, 特殊响应码处理 301 302 解析文档 构建 dom 树和 csscom 生成渲染树:从DOM树的根节点开始遍历每个可见节点,对于…...
事务AOP
事物管理 事务管理是指对一系列数据库操作进行管理,确保这些操作要么全部成功执行,要么在遇到错误时全部回滚,以维护数据的一致性和完整性。在多用户并发操作和大数据处理的现代软件开发领域中,事务管理已成为确保数据一致性和完…...
HIT-哈工大软件过程与项目管理:从理论到实战的备考精要与核心脉络梳理
1. 软件过程与项目管理课程概述 哈工大软件过程与项目管理课程是软件工程专业的核心课程之一,旨在帮助学生掌握软件开发全生命周期的管理方法。这门课程将理论与实践紧密结合,涵盖了从需求分析到软件维护的完整知识体系。 作为一门典型的工科课程&#x…...
告别手动打字:5分钟学会用AsrTools免费语音转文字
告别手动打字:5分钟学会用AsrTools免费语音转文字 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text…...
Python接口与抽象基类:构建可扩展系统的终极指南
Python接口与抽象基类:构建可扩展系统的终极指南 【免费下载链接】example-code Example code for the book Fluent Python, 1st Edition (OReilly, 2015) 项目地址: https://gitcode.com/gh_mirrors/ex/example-code Python接口与抽象基类是构建可扩展、可维…...
TM1651驱动LED条形图模块原理与嵌入式驱动开发
1. Whadda LED Bar Graph 模块技术解析与嵌入式驱动开发实践1.1 模块硬件架构与核心芯片特性Whadda WPI471 是一款基于 TM1651 驱动 IC 的 10 段 LED 条形图显示模块,广泛应用于嵌入式系统中的模拟量可视化指示场景,如电池电量、信号强度、温度梯度、音频…...
VideoAgentTrek-ScreenFilter低光照与高对比度场景处理效果突破
VideoAgentTrek-ScreenFilter低光照与高对比度场景处理效果突破 不知道你有没有过这样的经历:在昏暗的房间里看手机,屏幕上的内容因为反光变得一片模糊;或者看一个明暗对比特别强烈的视频,亮的地方刺眼,暗的地方又黑得…...
终极指南:如何灵活配置flamegraph性能分析参数生成自定义火焰图
终极指南:如何灵活配置flamegraph性能分析参数生成自定义火焰图 【免费下载链接】flamegraph Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3 项目地址: https://gitcode.com/gh_mirrors/fla/flamegraph flamegraph是…...
终极Bash Infinity代码审查指南:确保Bash框架代码质量的完整检查清单
终极Bash Infinity代码审查指南:确保Bash框架代码质量的完整检查清单 【免费下载链接】bash-oo-framework Bash Infinity is a modern standard library / framework / boilerplate for Bash 项目地址: https://gitcode.com/gh_mirrors/ba/bash-oo-framework …...
Simulink模型加密二选一:是选‘受保护模型’还是自己写S-Function?一份给嵌入式代码生成者的选择指南
Simulink模型加密实战:受保护模型与S-Function的深度技术选型 在嵌入式系统开发中,Simulink模型往往承载着核心算法和知识产权。当需要与团队协作或交付给客户时,如何在保证模型可用性的同时防止核心逻辑被窥探或篡改?这成为每个嵌…...
i18n-node快速入门:10个简单步骤实现应用国际化 [特殊字符]
i18n-node快速入门:10个简单步骤实现应用国际化 🌍 【免费下载链接】i18n-node Lightweight simple translation module for node.js / express.js with dynamic json storage. Uses common __(...) syntax in app and templates. 项目地址: https://g…...
Umi-OCR深度指南:离线OCR技术的架构解析与全场景实战
Umi-OCR深度指南:离线OCR技术的架构解析与全场景实战 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitHu…...
