当前位置: 首页 > wzjs >正文

网站服务器容器免费资源部落wordpress

网站服务器容器,免费资源部落wordpress,乌克兰俄罗斯,怎么用html做移动网站背景 上个月排查一个 Bug ,需要采集一张 PostgreSQL 的大表,测试时需要造数据。Python 比 Java 方便多了,所以用 Python写了一个批量插入 PostgreSQL 表的简单脚本。本文分享这个脚本,很简单的,就是利用 psycopg2 的 …

背景

上个月排查一个 Bug ,需要采集一张 PostgreSQL 的大表,测试时需要造数据。Python 比 Java 方便多了,所以用 Python写了一个批量插入 PostgreSQL 表的简单脚本。本文分享这个脚本,很简单的,就是利用 psycopg2copy_from 完成批量插入 postgre 及其类似数据库的脚本。

之前网上找了好多脚本都没有能直接用的,尤其是 CSV 文件参数,自己尝试调了一下竟然通了,总结一下以备不时之需。

表结构创建

创建一个简单的人员信息的表 person_info 包含 几个简单的字段,SQL 创建脚本如下:

drop table if exists person_info;
create table public.person_info
(pk_uuid     numeric(19)  not null constraint person_info_pk primary key,id          varchar(20) not null,name        varchar(200) not null,birthday    varchar(20)  not null,address     varchar(255) not null,remark      varchar(255),create_time numeric(19)  not null
);

生成CSV数据

按字段顺序生成 CSV 文件,这个可以用 Java 循环生成,按需要生成200万条数据。 代码如下:

public class DataGeneUtil {public static void main(String[] args) {int counter = 0;String fileName = "/Applications/2025NewYear/mydata10.csv";File outFile = new File(fileName);try (FileWriter outFileWriter = new FileWriter(outFile, false)){for(int i = 0;i<20000; i++) {counter++;if (counter % 5000 == 0) {System.out.println("already write counter " + counter);}StringBuffer buffer = new StringBuffer();buffer.append(i).append(",");//pk_uuidbuffer.append("i").append(",");//IDbuffer.append("张三").append(i).append(",");//namebuffer.append("1990-01-01").append(",");//birthdaybuffer.append("地球村2号").append(",");//addressbuffer.append("test").append(",");//remarkbuffer.append(System.currentTimeMillis()).append("\n");//remarkoutFileWriter.write(buffer.toString());}} catch (IOException e) {throw new RuntimeException(e);}}
}

编写 Python 脚本

import psycopg2# 连接数据库
conn = psycopg2.connect(dbname='xx', user='xx', password='xx',host='192.xx.xx.x',port='7700')# 创建一个cursor对象
cur = conn.cursor()#配置 CSV 路径,读取后写入
csvDataFile= '/Applications/2025NewYear/mydata10.csv'
tableColumn=("pk_uuid", "id", "name", "address", "birthday", "remark","create_time")
with open(csvDataFile, 'r') as f:cur.copy_from(f, 'person_info', sep=',', columns=tableColumn)# 提交事务
conn.commit()# 关闭cursor和连接
cur.close()
conn.close()

脚本运行结果:
在这里插入图片描述
查看数据库插入结果:
在这里插入图片描述

注意事项:

  1. 关键点 copy_from 后面第一个参数是一个 CSV 文件,最初搜到很多信息都是使用 io.StringIO 创建一个内存中的文件对象的,反复尝试都执行失败。后面找到一个介绍方法,直接传递文件,才形成本文这个脚本。此外还找到了一个比较齐全的文章《psycopg2中copy_to /copy_from/copy_expert的使用方法》 记录下来,以供参考。
  2. 需要先使用 pip install psycopg2 安装数据库操作模块。

启示录

实际上,这个批量插入 PostgreSQL 的脚本确实非常简单,对比之下 Java 的 JDBC 批量插入就繁琐多了!能解决问题的话,不限语言,哪个顺手用哪个。有时候 Shell 脚本也很好用,尤其是批量修改配置的时候。

同时还需要测试 Oracle 和 MySQL 的批量入库,这个两个数据库的批量入库脚本也写过,之后会一起整理出来。

http://www.dtcms.com/wzjs/537573.html

相关文章:

  • 房产网站关键词优化python基础教程电子书下载
  • 本地建设网站宁阳网站开发
  • 网站改版什么意思wordpress mysql用户名密码
  • 保山专业的网站建设网站自己建设
  • 做的网站在不同浏览器不能上传图片到网站
  • 网站托管 域名苏州网站开发公司济南兴田德润地址
  • 白银区住房和城乡建设局网站有网站源码怎么上传
  • 如何编程做网站设计师网址导航官网
  • 中国建设银行国际互联网网站沈阳做网站的地方
  • 门网站制作网站建设方案平台
  • 淘宝导购网站模版网络设计报告怎么写
  • 全世界做会展介绍的网站排名网页布局的设计步骤
  • 宁波免费建站外包公司品牌广告投放
  • 深圳做网站的地方购买域名要多少钱
  • 长沙网站建设模板软件开发工资一般多少深圳
  • 大连做网站的公司有哪些可以做音基题的音乐网站
  • 织梦网站footer美化免费软件网站下载
  • 湟中县公司网站建设专门做兼职的网站有哪些
  • 晋城市网站建设广东东莞是几线城市
  • 成都建设项目环境影响登记网站北京建站管理系统开发
  • 图片网站用什么主机微信小程序店铺开通要多少钱
  • 福建建设人才市场官方网站南浔区住房和城乡建设局网站
  • 网站页中繁体转移代码村级网站模板
  • 上海市建设局官方网站品牌公司设计
  • 衡水做网站建设公司烟台网站建设哪家服务好
  • 网站整体排名大幅下降安徽圣力建设集团网站
  • 机械网站建设中心网站域名做注册
  • 个人无网站怎样做cps广告网站建设需
  • 江宁城乡建设局网站google关键词搜索量
  • 网站建设关键技术网站变宽屏怎么做