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
事物管理 事务管理是指对一系列数据库操作进行管理,确保这些操作要么全部成功执行,要么在遇到错误时全部回滚,以维护数据的一致性和完整性。在多用户并发操作和大数据处理的现代软件开发领域中,事务管理已成为确保数据一致性和完…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
麒麟系统使用-进行.NET开发
文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的,如果需要进行.NET开发,则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET,所以要进…...
[QMT量化交易小白入门]-六十二、ETF轮动中简单的评分算法如何获取历史年化收益32.7%
本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。 QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。 文章目录 相关阅读1. 策略概述2. 趋势评分模块3 代码解析4 木头…...
GitHub 常见高频问题与解决方案(实用手册)
1.Push 提示权限错误(Permission denied) 问题: Bash Permission denied (publickey) fatal: Could not read from remote repository. 原因: 没有配置 SSH key 或使用了 HTTPS 而没有权限…...
