python连接clickhouse数据库的两种方式小结_第1页
python连接clickhouse数据库的两种方式小结_第2页
python连接clickhouse数据库的两种方式小结_第3页
python连接clickhouse数据库的两种方式小结_第4页
python连接clickhouse数据库的两种方式小结_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第python连接clickhouse数据库的两种方式小结目录python连接clickhouse数据库主要针对clickhouse_driver的使用进行简要介绍python将数据写入clickhouse

python连接clickhouse数据库

在Python中获取系统信息的一个好办法是使用psutil这个第三方模块。

顾名思义,psutil=processandsystemutilities,它不仅可以通过一两行代码实现系统监控,还可以跨平台使用。

主要针对clickhouse_driver的使用进行简要介绍

第一步:

通过pipinstallclickhouse_driver安装clickhouse_driver

第二步:

方法一:使用clickhouse_driver包中的Client类,通过实例化一个客户端进行对数据库的增删改查操作

fromclickhouse_driverimportClient

fromdatetimeimportdatetime

importpsutil

host_name='4'

client=Client(host=host_name,database='default',user='default',password='自己设的密码',send_receive_timeout=20,port=55666)

now=datetime.now()

time_stamp=now.strftime('%a%b%d%H:%M:%SCST%Y')#TueApr0615:32:55CST2025class'str'

create_at=datetime.now().strftime('%Y-%m-%d%H:%M:%S')

disk_io=psutil.disk_io_counters()

net_io=_io_counters()

chart_name=["磁盘IO","网络IO"]

metric_name1=["读(数量)","写(数量)","读(字节)","写(字节)","读(时间)","写(时间)"]

metric_name2=["发送字节数","接收字节数","发送包数","接收包"]

metric_value1=[disk_io.read_count,disk_io.write_count,disk_io.read_bytes,disk_io.write_bytes,disk_io.read_time,disk_io.write_time]

metric_value2=[net_io.bytes_sent,net_io.bytes_recv,net_io.packets_sent,net_io.packets_recv]

foriinchart_name:

ifiis"磁盘IO":

forjinmetric_name1:

sql="insertintoclickhouse_host_metrics777(time_stamp,host_name,chart_name,metric_name,metric_value,create_at)"\

"values('%s','%s','%s','%s','%s','%s')"%\

(time_stamp,host_name,i,j,metric_value1[metric_name1.index(j)],create_at)

res=client.execute(sql)

elifiis"网络IO":

forjinmetric_name2:

sql="insertintoclickhouse_host_metrics777(time_stamp,host_name,chart_name,metric_name,metric_value,create_at)"\

"values('%s','%s','%s','%s','%s','%s')"%\

(time_stamp,host_name,i,j,metric_value2[metric_name2.index(j)],create_at)

res=client.execute(sql)

print("成功写入数据")

exceptExceptionase:

print(str(e))

方法二:使用clickhouse_driver包中的connect函数,通过实例化一个客户端进行对数据库的增删改查操作

fromdatetimeimportdatetime

importpsutil

fromclickhouse_driverimportconnect

host_name='4'

#账号:密码@主机名:端口号/数据库

conn=connect('clickhouse://default:自己设的密码@'+host_name+':55666/default')

cursor=conn.cursor()

now=datetime.now()

time_stamp=now.strftime('%a%b%d%H:%M:%SCST%Y')#TueApr0615:32:55CST2025class'str'

create_at=datetime.now().strftime('%Y-%m-%d%H:%M:%S')

disk_io=psutil.disk_io_counters()

net_io=_io_counters()

chart_name=["磁盘IO","网络IO"]

metric_name1=["读(数量)","写(数量)","读(字节)","写(字节)","读(时间)","写(时间)"]

metric_name2=["发送字节数","接收字节数","发送包数","接收包"]

metric_value1=[disk_io.read_count,disk_io.write_count,disk_io.read_bytes,disk_io.write_bytes,disk_io.read_time,disk_io.write_time]

metric_value2=[net_io.bytes_sent,net_io.bytes_recv,net_io.packets_sent,net_io.packets_recv]

foriinchart_name:

ifiis"磁盘IO":

forjinmetric_name1:

sql="insertintoclickhouse_host_metrics777(time_stamp,host_name,chart_name,metric_name,metric_value,create_at)values('%s','%s','%s','%s','%s','%s')"%\

(time_stamp,host_name,i,j,metric_value1[metric_name1.index(j)],create_at)

#res=client.execute(sql)

res=cursor.execute(sql)

elifiis"网络IO":

forjinmetric_name2:

sql="insertintoclickhouse_host_metrics777(time_stamp,host_name,chart_name,metric_name,metric_value,create_at)values('%s','%s','%s','%s','%s','%s')"%\

(time_stamp,host_name,i,j,metric_value2[metric_name2.index(j)],create_at)

res=cursor.execute(sql)

cursor.close()

print("成功写入数据"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论