python连接mysql和clickhouse数据库
Posted hellobigorange
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python连接mysql和clickhouse数据库相关的知识,希望对你有一定的参考价值。
一、连接mysql数据库
我连的是本地主机的数据库
# connect_db:连接数据库,并操作数据库
import pymysql
class OperationMysql:
"""
数据库SQL相关操作
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
"""
def __init__(self):
# 创建一个连接数据库的对象
self.conn = pymysql.connect(
host='127.0.0.1', # 连接的数据库服务器主机名
port=3306, # 数据库端口号
user='root', # 数据库登录用户名
passwd='xiaodong1995',
db='orange_database', # 数据库名称
charset='utf8', # 连接编码
cursorclass=pymysql.cursors.DictCursor
)
# 使用cursor()方法创建一个游标对象,用于操作数据库
self.cur = self.conn.cursor()
# 查询一条数据
def search_one(self, sql):
self.cur.execute(sql)
result = self.cur.fetchone() # 使用 fetchone()方法获取单条数据.只显示一行结果
# result = self.cur.fetchall() # 显示所有结果
return result
# 更新SQL
def updata_one(self, sql):
try:
self.cur.execute(sql) # 执行sql
self.conn.commit() # 增删改操作完数据库后,需要执行提交操作
except:
# 发生错误时回滚
self.conn.rollback()
self.conn.close() # 记得关闭数据库连接
# 插入SQL
def insert_one(self, sql):
try:
self.cur.execute(sql) # 执行sql
self.conn.commit() # 增删改操作完数据库后,需要执行提交操作
except:
# 发生错误时回滚
self.conn.rollback()
self.conn.close()
# 删除sql
def delete_one(self, sql):
try:
self.cur.execute(sql) # 执行sql
self.conn.commit() # 增删改操作完数据库后,需要执行提交操作
except:
# 发生错误时回滚
self.conn.rollback()
self.conn.close()
if __name__ == '__main__':
op_mysql = OperationMysql()
res = op_mysql.search_one("SELECT * from user5")
print(res)
二、连接clickhouse
from clickhouse_driver import Client
import pandas as pd
host = '10.39.203.20' # 连接的数据库服务器主机名
user = 'ai_platform_read' # 数据库登录用户名
passwd = 'dygsqlapi'
db = 'ai_platform' # 数据库名称
send_receive_timeout = 180 # 超时时间
client = Client(host=host, user=user, password=passwd, database=db, send_receive_timeout=send_receive_timeout)
print("连接成功")
# 查询
sql = "SELECT x.create_time, x.output,x.input_custom FROM service_call x WHERE alg_code = 'alg100140' AND call_msg = 'OK' ORDER BY create_time DESC LIMIT 6"
ans = client.execute(sql)
data = pd.DataFrame(ans, columns=["create_time", "output",'station_id'])
以上是关于python连接mysql和clickhouse数据库的主要内容,如果未能解决你的问题,请参考以下文章