示例:用python_dataset导入900w条数据到oracle

示例:python用dataset导入900w条数据到oracle

dataset可以批量导入数据库,以dict结构就可以导入数据库

import dataset
import logging
import time
def handle_txt():
    ids = []
    uids= []
    with open('./xxx.txt',mode='r',encoding="utf8") as f:
        rows = f.readlines()
        for row in rows:
            text = row.split(',')
            ids.append(text[0])
            uids.append(text[1])

    logging.StreamHandler(stream=None)
    db = dataset.connect('oracle://"用户名":“密码”@“数据库连接名”')
    table = db['tablename']


    import_data = []
    data = zip(ids,uids)
    data = list(data)
    for i in data :
        start_time = time.time()
        import_data.append(dict(id=i[0], uid=i[1]))
        if len(import_data) == 20000:
            table.insert_many(import_data)
            import_data = []
        end_time = time.time()
        cost_time = end_time - start_time
        logging.info("%s" % cost_time)

    import_data = []
    start_num = len(data) % 20000
    print(start_num)
    data_save = data[-start_num:]
    for i in data_save:
        import_data.append(dict(id=i[0], uid=i[1]))
        table.insert_many(import_data)
    db.commit()


if __name__ == '__main__':
    data= handle_txt()







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值