个人记录:连接、查询、写入PG数据库类文件
# --coding:utf-8--
import pandas as pd
import yaml
from sqlalchemy import create_engine
import psycopg2
class ControlPGSQL:
def __init__(self, path):
'''
path:记录有pg数据库账号密码的yaml配置文件地址
'''
self.path = path
def CreatePGengine(self):
'''
:return: PG链接
'''
with open(f"{self.path}", "r", encoding="utf-8") as config:
cfg = yaml.safe_load(config)
db_info = cfg['db_info']
con_database = create_engine(
'postgresql+psycopg2://{user}:{password}@{host}:{port}/{database}'.format(**db_info))
return con_database
def ConPG(self):
with open(f"{self.path}", "r", encoding="utf-8") as config:
cfg = yaml.safe_load(config)
db_info = cfg['db_info']
conn = psycopg2.connect(database=db_info['database'],
user=db_info['user'],
password=db_info['password'],
host=db_info['host'],
port=db_info['port'],)
return conn
def read_sql(self, sql):
'''
读取postgresSQL数据库中的表
:param sql: 数据库的链接指令
:return:表dataframe
'''
con_database = self.CreatePGengine()
# 从公司数据库读取 原始的入库 数据表
databaseData = pd.read_sql(sql, con=con_database)
return databaseData
def run_read(self, mt_info):
'''
:param mt_info: sql的表名与字段,以及字段对应的重命名columns列表
:return: 数据表
'''
sql = "SELECT {field} FROM {modename}.{tablename} where {condition}".format(
**mt_info)
table = self.read_sql(sql)
table.columns = mt_info['columns']
return table
def write_sql(self, sql):
'''
写入postgresSQL数据库中
:param sql: 数据库的链接指令
:return:
'''
con_database = self.ConPG()
cursor = con_database.cursor()
cursor.execute(sql)
# 提交SQL命令
con_database.commit()
个人记录:连接、查询、写入PG数据库类文件的更多相关文章
- pg数据库data文件夹达到32G
最近工作中遇到pg数据库data文件夹大小达到32G,大致的排查流程如下: 1.首先查看是哪个文件或者那些文件比较大: 2.根据文件的名称找到对应的数据表a: 3.确认数据表a中数据实际上只有3000 ...
- SQL多表连接查询以及mysql数据库、sqlserver数据库常见不同点
mysql数据库表及数据准备语句: USE test; DROP TABLE IF EXISTS `teacher_table`; DROP TABLE IF EXISTS `student_tabl ...
- mysql/mariadb学习记录——连接查询(JOIN)
//本文使用的数据表格//persons表中id_p为主键//orders表中id_o为主键,id_p为外键参考persons表中的id_p mysql> select * from perso ...
- MySQL8:连接查询
连接查询 连接是关系型数据库模型的主要特点. 连接查询是关系型数据库中最主要的查询,主要包括内连接.外连接等通过联结运算符可以实现多个表查询. 在关系型数据库管理系统中,表建立时各种数据之间的关系不必 ...
- SQL2008和SQL2000可以跨服务器连接查询的测试实例
测试目的: SQL2008 和 SQL2000 是否可以跨服务器连接查询 -- 测试环境: --A 虚拟机 XP ( IP : .0.0.213 )安装 SQL2000 个人版,并安装 SP4 补丁. ...
- mysql_数据查询_连接查询
连接查询 1.连接(join) 也称θ连接,从两个关系的笛卡尔积中选择属性间满足一定条件的元组. 等值连接:θ为“=”的连接运算称为等值连接.从关系R和S的广义笛卡尔积中选取A.B属性值相等的元组. ...
- T-SQL——关于跨库连接查询
目录 0. 同一台服务器不同数据库 1. 使用跨库查询函数--OpenDataSource() 2. 使用链接服务器(Linking Server) 3. 使用OpenDataSource()函数和链 ...
- JPA连接PG数据库时间类型查询报错的修改
PG数据库中的时间格式规范: https://blog.csdn.net/sky_limitless/article/details/79527665 to_data 转换为 普通的时间格式 to_t ...
- MySQL入门第二天——记录操作与连接查询
常见SQL语法,请参见w3school:http://www.w3school.com.cn/sql/sql_distinct.asp 易百教程:http://www.yiibai.com/sql/f ...
- 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串
第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...
随机推荐
- linux 性能自我学习 ———— cpu 高怎么办 [三]
前言 linux 性能分析自我学习. 正文 一般我们说cpu,一般是什么高呢? 一般是指cpu 使用率高. 那么什么是cpu 使用率呢? cpu 使用率 = 1- 空闲时间/总cpu 时间 平均cpu ...
- Linux systemd 定时任务
哈喽大家好,我是咸鱼. 说到 Linux 定时任务,大家用得最多的就是 crond 服务,但其实 systemd 也有类似的功能.我们不但可以通过 systemd 来管理服务,还能设置定时任务,那就是 ...
- CC1TransformedMap链学习
跟着看了白日梦组长的视频,记录一下调试学习过程 CC1链学习 TransformedMap链 ObjectInputStream.readObject() AnnotationInvocationHa ...
- 使用 Docker 部署 Draw.io 在线流程图系统
1)介绍 Draw.io GitHub:https://github.com/jgraph/drawio Draw.io 是一款开源的绘制流程图的工具,拥有大量免费素材和模板.程序本身支持中文在内的多 ...
- DM 传统行业SQL优化案例
来OB这么久还没有接触啥金融的SQL,只能发点其他行业的数据库SQL优化案例. 今天拿到手的这个案例SQL 传统行业的,很奇葩的SQL,表设计三范式都没弄好. 什么医疗,交通,能源这些传统行业的业务设 ...
- 01_Vue技术-Hello案例分析
初始vue: 1.想让vue工作,就必须创建一个Vue实例,且要传入一个配置对象: 2.root容器里的代码依然符合html规范,只不过混入了一些特殊的vue语法: ...
- 基于 OPLG 从 0 到 1 构建统一可观测平台实践
简介: 随着软件复杂度的不断提升,单体应用架构逐步向分布式和微服务的架构演进,整体的调用环境也越来越复杂,仅靠日志和指标渐渐难以快速定位复杂环境下的问题.对于全栈可观测的诉求也变得愈加强烈,Trace ...
- 编译优化 | LLVM代码生成技术详解及在数据库中的应用
简介: 作者:长别 1. 前言 随着IT基础设施的发展,现代的数据处理系统需要处理更多的数据.支持更为复杂的算法.数据量的增长和算法的复杂化,为数据分析系统带来了严峻的性能挑战.近年来,我们可以在数据 ...
- [Go] go build 和 go install 的区别
$ go build 源文件及其包依赖 编译成二进制. install 不仅执行build过程 而且会把编译的二进制放到 $GOPATH/bin/,包放到 $GOPATH/pkg/ Link:http ...
- [Pholcus] Go项目 Pholcus 源码逻辑分析 species.go
「代码结构」 结构体:蜘蛛种类列表(即:蜘蛛规则列表) 变量:全局蜘蛛种类实例 方法:向蜘蛛种类清单添加新种类 方法:获取全部蜘蛛种类 方法:通过名字获取蜘蛛 「总体功能」 添加新种类:通过 Spid ...