python 批量造数据

1. 数据表结构(postgresql)

 Table: public.phm_2040tempo_if_mst
-- DROP TABLE IF EXISTS public.phm_2040tempo_if_mst;
CREATE TABLE IF NOT EXISTS public.phm_2040tempo_if_mst
(
    unei_temban_cd character varying(6) COLLATE pg_catalog."default" NOT NULL,
    shiyo_kaishi_ymd character varying(8) COLLATE pg_catalog."default" NOT NULL,
    shiyo_shuryo_ymd character varying(8) COLLATE pg_catalog."default" NOT NULL,
    toroku_kbn character varying(2) COLLATE pg_catalog."default" NOT NULL,
    kessai_hanei_kbn character varying(5) COLLATE pg_catalog."default",
    tempo_sys_kanren_joho_toroku_jokyo_kbn character varying(2) COLLATE pg_catalog."default",
    hatchu_kanren_joho_toroku_jokyo_kbn character varying(2) COLLATE pg_catalog."default",
    zettai_temban_cd character varying(6) COLLATE pg_catalog."default" NOT NULL,
    temban_cd character varying(6) COLLATE pg_catalog."default",
    tempo_unei_kaishi_ymd character varying(8) COLLATE pg_catalog."default",
    tempo_unei_shuryo_ymd character varying(8) COLLATE pg_catalog."default",
    tempo_meisho_15_moji character varying(90) COLLATE pg_catalog."default",
    tempo_tel_no character varying(15) COLLATE pg_catalog."default",
    kaiten_hm character varying(4) COLLATE pg_catalog."default",
    heiten_hm character varying(4) COLLATE pg_catalog."default",
    tempo_eigyo_time numeric(4,0),
    o24h_eigyo_flg character varying(1) COLLATE pg_catalog."default",
    sake_menkyo_umu_flg character varying(1) COLLATE pg_catalog."default",
    tabako_menkyo_umu_flg character varying(1) COLLATE pg_catalog."default",
    tencho_shain_cd character varying(8) COLLATE pg_catalog."default",
    tencho_shunin_ymd character varying(8) COLLATE pg_catalog."default",
    tencho_yubin_no character varying(8) COLLATE pg_catalog."default",
    tencho_jusho_todofuken_cd character varying(2) COLLATE pg_catalog."default",
    tencho_jusho character varying(240) COLLATE pg_catalog."default",
    tencho_tel_no character varying(15) COLLATE pg_catalog."default",
    fc_tempo_flg character varying(1) COLLATE pg_catalog."default",
    tempo_unei_keitai_kbn character varying(2) COLLATE pg_catalog."default",
    proper_shain_flg character varying(1) COLLATE pg_catalog."default",
    tencho_name_sei character varying(120) COLLATE pg_catalog."default",
    tencho_name_mei character varying(120) COLLATE pg_catalog."default",
    tempo_meisho_zenkaku_kana character varying(90) COLLATE pg_catalog."default",
    tencho_name_zenkaku_kana_sei character varying(240) COLLATE pg_catalog."default",
    tencho_name_zenkaku_kana_mei character varying(240) COLLATE pg_catalog."default",
    tencho_zagaku_kenshu_kaishi_ymd character varying(8) COLLATE pg_catalog."default",
    tencho_tempo_kenshu_kaishi_ymd character varying(8) COLLATE pg_catalog."default",
    tencho_kenko_shindan_ymd character varying(8) COLLATE pg_catalog."default",
    tencho_seinengappi character varying(8) COLLATE pg_catalog."default",
    kikan_gentei_eigyo_time_kaishi_ymd character varying(8) COLLATE pg_catalog."default",
    kikan_gentei_kaiten_hm character varying(4) COLLATE pg_catalog."default",
    kikan_gentei_eigyo_time_shuryo_ymd character varying(8) COLLATE pg_catalog."default",
    kikan_gentei_heiten_hm character varying(4) COLLATE pg_catalog."default",
    kikan_gentei_eigyo_time numeric(2,0),
    kikan_gentei_o24h_eigyo_flg character varying(1) COLLATE pg_catalog."default",
    zenshu_saiyo_teishi_ymd_10_ji character varying(8) COLLATE pg_catalog."default",
    zenshu_saiyo_sai_kaishi_ymd_10_ji character varying(8) COLLATE pg_catalog."default",
    zenshu_saiyo_teishi_ymd_15_ji character varying(8) COLLATE pg_catalog."default",
    zenshu_saiyo_sai_kaishi_ymd_15_ji character varying(8) COLLATE pg_catalog."default",
    hatchu_chiku_cd character varying(2) COLLATE pg_catalog."default",
    sake_menkyo_shutoku_ymd character varying(8) COLLATE pg_catalog."default",
    sake_hambai_kaishi_ymd character varying(8) COLLATE pg_catalog."default",
    sake_hambai_shuryo_ymd character varying(8) COLLATE pg_catalog."default",
    sake_hambai_shubetsu_kbn character varying(2) COLLATE pg_catalog."default",
    sake_fee_ritsu numeric(6,3),
    sake_menkyo_meiginin_hojin_flg character varying(1) COLLATE pg_catalog."default",
    sake_menkyo_meigi_hojin_meisho character varying(120) COLLATE pg_catalog."default",
    sake_menkyo_meigi_kojin_name_sei character varying(120) COLLATE pg_catalog."default",
    sake_menkyo_meigi_kojin_name_mei character varying(120) COLLATE pg_catalog."default",
    sake_hambai_sys_donyu_ymd character varying(8) COLLATE pg_catalog."default",
    kikan_gentei_sake_hambai_kaishi_ymd character varying(8) COLLATE pg_catalog."default",
    kikan_gentei_sake_hambai_shuryo_ymd character varying(8) COLLATE pg_catalog."default",
    sake_minashi_saeki_ritsu numeric(5,2),
    tabako_menkyo_shutoku_ymd character varying(8) COLLATE pg_catalog."default",
    tabako_hambai_kaishi_ymd character varying(8) COLLATE pg_catalog."default",
    tabako_hambai_shuryo_ymd character varying(8) COLLATE pg_catalog."default",
    tabako_koza_kbn character varying(2) COLLATE pg_catalog."default",
    tabako_menkyo_meiginin_hojin_flg character varying(1) COLLATE pg_catalog."default",
    tabako_menkyo_meigi_hojin_meisho character varying(120) COLLATE pg_catalog."default",
    tabako_menkyo_meigi_kojin_name_sei character varying(120) COLLATE pg_catalog."default",
    tabako_menkyo_meigi_kojin_name_mei character varying(120) COLLATE pg_catalog."default",
    tabako_hambai_tempo_cd character varying(20) COLLATE pg_catalog."default",
    tabako_koza_henko_ymd character varying(8) COLLATE pg_catalog."default",
    modem_tel_no character varying(13) COLLATE pg_catalog."default",
    baika_tempo_kata_kbn character varying(2) COLLATE pg_catalog."default",
    setsuzoku_saki_center_kbn character varying(1) COLLATE pg_catalog."default",
    zenken_mst_haishin_ymd character varying(8) COLLATE pg_catalog."default",
    sc_settei_ymd character varying(8) COLLATE pg_catalog."default",
    keitai_henko_ymd character varying(8) COLLATE pg_catalog."default",
    tempo_sys_kaiso_kaishi_ymd character varying(8) COLLATE pg_catalog."default",
    tempo_sys_kaiso_shuryo_ymd character varying(8) COLLATE pg_catalog."default",
    tempo_sys_kaiten_ymd character varying(8) COLLATE pg_catalog."default",
    tempo_sys_heisa_ymd character varying(8) COLLATE pg_catalog."default",
    kaiso_kikan_shuhaishin_kahi_flg character varying(1) COLLATE pg_catalog."default",
    eigyo_ritchi_kbn character varying(2) COLLATE pg_catalog."default",
    keitai_henko_shin_temban_cd character varying(6) COLLATE pg_catalog."default",
    keitai_henko_kyu_temban_cd character varying(6) COLLATE pg_catalog."default",
    shin_tempo_kbn character varying(1) COLLATE pg_catalog."default",
    hombu_temban_kbn character varying(1) COLLATE pg_catalog."default",
    hatchu_model_tempo_kbn character varying(1) COLLATE pg_catalog."default",
    numbers_toriatsukai_umu_flg character varying(1) COLLATE pg_catalog."default",
    fm_fresh_toriatsukai_umu_flg character varying(1) COLLATE pg_catalog."default",
    tempo_manager_name_sei character varying(120) COLLATE pg_catalog."default",
    tempo_manager_name_mei character varying(120) COLLATE pg_catalog."default",
    tempo_manager_name_zenkaku_kana_sei character varying(240) COLLATE pg_catalog."default",
    tempo_manager_name_zenkaku_kana_mei character varying(240) COLLATE pg_catalog."default",
    tempo_manager_seinengappi character varying(8) COLLATE pg_catalog."default",
    gyotai_kbn character varying(2) COLLATE pg_catalog."default",
    pre_open_ymd character varying(8) COLLATE pg_catalog."default",
    receipt_yo_tempo_meisho character varying(96) COLLATE pg_catalog."default",
    receipt_yo_tempo_meisho_kana character varying(96) COLLATE pg_catalog."default",
    receipt_yo_tempo_jusho character varying(192) COLLATE pg_catalog."default",
    bb_kaisen_shubetsu_cd character varying(2) COLLATE pg_catalog."default",
    center_depot_cd character varying(2) COLLATE pg_catalog."default",
    reito_depot_cd character varying(2) COLLATE pg_catalog."default",
    bento_depot_cd character varying(2) COLLATE pg_catalog."default",
    joon_depot_cd character varying(2) COLLATE pg_catalog."default",
    yamapan_depot_cd character varying(2) COLLATE pg_catalog."default",
    nichiyohin_depot_cd character varying(2) COLLATE pg_catalog."default",
    kashi_depot_cd character varying(2) COLLATE pg_catalog."default",
    depot_cd_yobi_1 character varying(2) COLLATE pg_catalog."default",
    depot_cd_yobi_2 character varying(2) COLLATE pg_catalog."default",
    depot_cd_yobi_3 character varying(2) COLLATE pg_catalog."default",
    tokushu_baika_settei_umu_flg character varying(1) COLLATE pg_catalog."default",
    sate_tempo_umu_kbn character varying(1) COLLATE pg_catalog."default",
    sate_tempo_shukei_saki_temban_cd character varying(6) COLLATE pg_catalog."default",
    pos_hi_rendo_credit_toriatsukai_umu_flg character varying(1) COLLATE pg_catalog."default",
    self_pos_register_umu_flg character varying(1) COLLATE pg_catalog."default",
    jido_tsurisen_ki_umu_flg character varying(1) COLLATE pg_catalog."default",
    tempo_sys_renka_han_donyu_tempo_flg character varying(1) COLLATE pg_catalog."default",
    unei_tempo_yobi_kbn_1 character varying(2) COLLATE pg_catalog."default",
    unei_tempo_yobi_kbn_2 character varying(2) COLLATE pg_catalog."default",
    unei_tempo_yobi_kbn_3 character varying(2) COLLATE pg_catalog."default",
    unei_tempo_yobi_kbn_4 character varying(2) COLLATE pg_catalog."default",
    unei_tempo_yobi_kbn_5 character varying(2) COLLATE pg_catalog."default",
    tempo_kaiso_keitai_kbn character varying(1) COLLATE pg_catalog."default",
    todofuken_cd character varying(2) COLLATE pg_catalog."default",
    gyomu_yo_todofuken_kakucho_bu_cd character varying(5) COLLATE pg_catalog."default",
    shikuchoson_cd character varying(5) COLLATE pg_catalog."default",
    eigyosho_no character varying(5) COLLATE pg_catalog."default",
    dist_no character varying(4) COLLATE pg_catalog."default",
    fm_kaisha_cd character varying(4) COLLATE pg_catalog."default",
    zettai_tempo_kaiten_ymd character varying(8) COLLATE pg_catalog."default",
    zettai_tempo_heisa_ymd character varying(8) COLLATE pg_catalog."default",
    yubin_no character varying(8) COLLATE pg_catalog."default",
    tempo_jusho character varying(240) COLLATE pg_catalog."default",
    kinrin_moyori_eki character varying(123) COLLATE pg_catalog."default",
    uriba_menseki numeric(7,2),
    chusha_daisu numeric(7,0),
    ichiji_heisa_ymd character varying(8) COLLATE pg_catalog."default",
    tempo_sai_kaiten_ymd character varying(8) COLLATE pg_catalog."default",
    kaiso_koji_kaishi_ymd character varying(8) COLLATE pg_catalog."default",
    kaiso_koji_shuryo_ymd character varying(8) COLLATE pg_catalog."default",
    ritchi_joken_kbn character varying(2) COLLATE pg_catalog."default",
    tatemono_keitai_kbn character varying(2) COLLATE pg_catalog."default",
    uriba_keitai_kbn character varying(2) COLLATE pg_catalog."default",
    heiten_riyu_kbn character varying(2) COLLATE pg_catalog."default",
    zettai_tempo_yobi_kbn_1 character varying(2) COLLATE pg_catalog."default",
    zettai_tempo_yobi_kbn_2 character varying(2) COLLATE pg_catalog."default",
    zettai_tempo_yobi_kbn_3 character varying(2) COLLATE pg_catalog."default",
    zettai_tempo_yobi_kbn_4 character varying(2) COLLATE pg_catalog."default",
    zettai_tempo_yobi_kbn_5 character varying(2) COLLATE pg_catalog."default",
    menzei_tempo_kbn character varying(2) COLLATE pg_catalog."default",
    menzei_tempo_kbn_meisho character varying(96) COLLATE pg_catalog."default",
    toroku_ymdhms character varying(14) COLLATE pg_catalog."default",
    toroku_sha_id character varying(60) COLLATE pg_catalog."default",
    toroku_shori_id character varying(60) COLLATE pg_catalog."default",
    henko_ymdhms character varying(14) COLLATE pg_catalog."default",
    henko_sha_id character varying(60) COLLATE pg_catalog."default",
    henko_shori_id character varying(60) COLLATE pg_catalog."default",
    sakusei_ymdhmss character varying(17) COLLATE pg_catalog."default" DEFAULT to_char(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS00'::text),
    sakusei_shori_id character varying(60) COLLATE pg_catalog."default" DEFAULT 'PH90010-SF010'::character varying,
    sakusei_tanto_sha_id character varying(60) COLLATE pg_catalog."default" DEFAULT 'PH90010-SF010'::character varying,
    koshin_ymdhmss character varying(17) COLLATE pg_catalog."default" DEFAULT to_char(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS00'::text),
    koshin_shori_id character varying(60) COLLATE pg_catalog."default" DEFAULT 'PH90010-SF010'::character varying,
    koshin_tanto_sha_id character varying(60) COLLATE pg_catalog."default" DEFAULT 'PH90010-SF010'::character varying,
    data_jotai_kbn character varying(1) COLLATE pg_catalog."default" DEFAULT '1'::character varying,
    CONSTRAINT pk_phm_2040tempo_if_mst PRIMARY KEY (unei_temban_cd, shiyo_kaishi_ymd)
)
  1. 重点: 关联主键是->unei_temban_cd, shiyo_kaishi_ymd 2个字段,并且unei_temban_cd按照接口数据要求是5位数据

  2. 逻辑方式:主要逻辑是按照unei_temban_cd循环100000次,再shiyo_kaishi_ymd用日期去继续循环递增

  3. 注意1:需要按要求去生成的字段需要自己再去加设置条件

  4. 注意2:本次第二个字段是日期字段,按照了日期去循环

完整代码

# 利用python 生成造数据的sql语句,再去数据库中执行

import random
import datetime

# 构造表t_user_weight
import time
import datetime as dt


def create_t_user_weight():
    # 开始执行时间
    start = time.time()
    # 定义需要生成的数据量   算法=count乘以(endtime减去begintime)  例如:10000x(20200201-20200101)=100万
    count = 100000
    # 定义日期主键
    begintime = dt.date(2017, 10, 29)

    # 制表符
    delemiter = "\t"
    # 打开文件,并动态生成sql数据,将数据存在文件中
    try:
        with open("../造数据/insert_t_user_weight.csv", "wb") as fo:
            # 定义数据,以下只是测试数据,可以根据自己的业务通过调用函数去随机生成对应的值
            endtime = dt.date(2017, 11, 2)
            for j in range((endtime - begintime).days + 1):
                day = begintime + dt.timedelta(days=j)
                # print(str(day))
                syear = str(day.year)
                if day.day < 10:
                    sday = '0' + str(day.day)
                else:
                    sday = str(day.day)
                if day.month < 10:
                    smonth = '0' + str(day.month)
                else:
                    smonth = str(day.month)

                sdate = syear + smonth + sday
                print(str(sdate))

                for i in range(1, count):
                    unei_temban_cd = str(i) + delemiter
                    shiyo_kaishi_ymd = str(sdate) + delemiter
                    other_data = "20210217	5	dp	1	2	ahtg	ynvo	19790824	20120417	日本語czwfevluuzyguzwpduysk	13274685007	855	1825	2110	0	0	1	17888832	20010515	944-1116	13	hcmjofsnasrbskltiqsihlskdvnnfdccmblcgppkyxngqj	9143-3-12345681	0	10	1	eujphc	igmrfgobqaoporvnndgqzptwlkj	bnfvkvoixgtedlhksglmobentrzcewblkybkqmsqwnyd	plxztutqgpnlymvfoenjffsatvdrxbruqbbrdlpvkyhgytugwprvtxxfyuxqshxngdgdwa	vpdaztqzjxvyfqfclpyfetljnvlpeqgwnfyisgigsrmjvrambrdbmropxhkroctpyhoh	20120630	20180803	20080629	19780425	19910627	525	19810917	2139	4	0	20011003	19840228	20011227	19830128	13	19890917	20200612	20151227	1	119.66	3	rlrjdudfbgdilcd	wkhw	tzwt	19780608	20020521	19730706	319.66	20040428	19810318	19940704	1	1	mgyfwryetnonnthysbkwn	erkqbkvzasuonhzvst	bpkdiievyfvbemtxcdbbwghmudsto	dbbobfenub	19821027	67101895	2	2	20171107	20100707	19971128	19960423	19871021	20170327	20040318	1	3	ojpu	stxq	0	1	1	1	0	liewemoaqm	hhasfmkibktkxryaukyoimyhtkwwryvr	lyniwphchdyuwsrboxnpjtkkajzaop	nrpobfmqqbejumxgkorjotxxuhmabypsyevihbiurumxmozpytzqpuewtgqjcdjudpfirqibxqlnbva	20120519	3	20090724	pipnyqrkpkrdsufobdfdnruomi	daugfvqlgfnof	rmgkohv	AE	zf	wd	zr	dq	va	fn	zb	yo	tn	ny	0	0	dyuyn	0	0	0	1	zs	ul	vx	px	ou	0	17	93314	90963	16869	8729	8716	19780601	19970103	793-1116	peegittmdpcdmflqhxduevtaexqbolyvkidrkvqxhjmldobuitduiftmiatxk	fimfvbsmwqigdkudksjxyevnlktfelisnitijogl	1956.37	6781972	20021203	20120110	19880820	20180822	5	BI	3	5	er	ju	ey	iw	yq	3	hpvvwqqshqdnpmcpkotpqfdsyslmenxi	20220915155501	test	4	202209155701	4	4"
                    insert_t_user_weight = (
                            '%s' '%s' '%s'
                            % (unei_temban_cd, shiyo_kaishi_ymd, other_data)
                    )
                    # insert_t_user_weight = (
                    #         "INSERT INTO t_user_weight VALUES ('%s', '%s', '%s','%s', '%s', '%s', '%s');"
                    #         % (id, userId, name, sex, weight, address, time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
                    # )

                    insert_t_user_weight = insert_t_user_weight + '\n'
                    print(insert_t_user_weight)
                    fo.write(insert_t_user_weight.encode('UTF-8'))
                    data_size = (count-1) * ((endtime - begintime).days+1)
            print(f'共创建{data_size}条sql耗时:{time.time() - start}')
    except Exception as e:
        print(Exception, ":", e)


f __name__ == "__main__":
    create_t_user_weight()

结果数据如图

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值