小編寫這篇文章的一個主要目的,主要是去給大家去做一些相關(guān)的一些介紹,涉及到內(nèi)容的還是比較多的,比如如何去進行讀取千萬級的一些數(shù)據(jù),并且將這些數(shù)據(jù)去自動錄入到系統(tǒng)里面。錄入到系統(tǒng)里面之后,怎么才能夠?qū)氲組ySQL數(shù)據(jù)庫呢?下面就給大家詳細解答下。
序言
Python數(shù)據(jù)如何去進行讀取MySQL數(shù)據(jù)庫呢?這類工作在生活當中是比較的普遍的,涉及到的內(nèi)容也是相關(guān)的一些python數(shù)據(jù)庫,包括數(shù)據(jù)的聽說讀寫等一些相關(guān)的數(shù)據(jù)工作。數(shù)據(jù)庫的內(nèi)容主要是涉及到mongodb、es,具體的一些相關(guān)內(nèi)容,下面就給大家詳細解答下。
場景一:數(shù)據(jù)不需要頻繁的寫入mysql
使用navicat工具的導入向?qū)Чδ?。支持多種文件格式,可以根據(jù)文件的字段自動建表,也可以在已有表中插入數(shù)據(jù),非常快捷方便。
場景二:數(shù)據(jù)是增量的,需要自動化并頻繁寫入mysql
測試數(shù)據(jù):csv格式,大約1200萬行
import pandas as pd data=pd.read_csv('./tianchi_mobile_recommend_train_user.csv') data.shape
打印結(jié)果:
方式一:python?pymysql庫
安裝pymysql命令:
pip install pymysql
代碼實現(xiàn):
import pymysql #數(shù)據(jù)庫連接信息 conn=pymysql.connect( host='127.0.0.1', user='root', passwd='wangyuqing', db='test01', port=3306, charset="utf8") #分塊處理 big_size=100000 #分塊遍歷寫入到mysql with pd.read_csv('./tianchi_mobile_recommend_train_user.csv',chunksize=big_size)as reader: for df in reader: datas=[] print('處理:',len(df)) #print(df) for i,j in df.iterrows(): data=(j['user_id'],j['item_id'],j['behavior_type'], j['item_category'],j['time']) datas.append(data) _values=",".join(['%s',]*5) sql="""insert into users(user_id,item_id,behavior_type ,item_category,time)values(%s)"""%_values cursor=conn.cursor() cursor.executemany(sql,datas) conn.commit() #關(guān)閉服務 conn.close() cursor.close() print('存入成功!')
方式二:pandas?sqlalchemy:pandas需要引入sqlalchemy來支持sql,在sqlalchemy的支持下,它可以實現(xiàn)所有常見數(shù)據(jù)庫類型的查詢、更新等操作。
代碼實現(xiàn):
from sqlalchemy import create_engine engine=create_engine('mysql+pymysql://root:wangyuqing localhost:3306/test01') data=pd.read_csv('./tianchi_mobile_recommend_train_user.csv') data.to_sql('user02',engine,chunksize=100000,index=None) print('存入成功!')
總結(jié)
pymysql方法用時12分47秒,耗時還是比較長的,代碼量大,而pandas僅需五行代碼就實現(xiàn)了這個需求,只用了4分鐘左右。最后補充下,方式一需要提前建表,方式二則不需要。所以推薦大家使用第二種方式,既方便又效率高。如果還覺得速度慢的小伙伴,可以考慮加入多進程、多線程。
最全的三種將數(shù)據(jù)存入到MySQL數(shù)據(jù)庫方法:
直接存,利用navicat的導入向?qū)Чδ?/p>
Python pymysql
Pandas sqlalchemy
綜上所述,這篇文章就給大家介紹完畢了,希望可以給大家?guī)韼椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/128824.html
摘要:同盾技術(shù)總監(jiān)張新波在第二期移動時代互聯(lián)網(wǎng)金融的架構(gòu)趨勢中闡述了同盾是如何從零開始打造千萬級實時風控云服務,具體介紹了同盾系統(tǒng)平臺構(gòu)建過程中主要需要解決的三大難題,以及解決這些問題的具體時實踐過程。 同盾科技,是由阿里、Paypal 反欺詐專家創(chuàng)建的,國內(nèi)第一家風險控制與反欺詐云服務提供商,其涉及領(lǐng)域包括電商、B2B、互聯(lián)網(wǎng)金融、游戲等。同盾技術(shù)總監(jiān)張新波在 UPYUN Open ...
摘要:摘要阿里云表格存儲于近期功能再升級,升級后的表格存儲支持對采集的數(shù)據(jù)進行持久化存儲,其新增支持,以及最新發(fā)布的能夠幫助用戶輕松構(gòu)建千萬級和流系統(tǒng)。功能一支持對采集的數(shù)據(jù)進行持久化存儲阿里云表格存儲支持對采集的數(shù)據(jù)進行持久化存儲。 摘要: 阿里云表格存儲于近期功能再升級,升級后的表格存儲支持對DataHub采集的數(shù)據(jù)進行持久化存儲,其Python SDK新增支持Python 3.x,以及...
摘要:包括服務的自動化部署,以及鏈路監(jiān)控等并未細說提及。結(jié)語誠然,整個服務架構(gòu)可以輕松應對千萬級并發(fā)。期望,整個服務架構(gòu)能伴隨公司繼續(xù)成長壯大。 背景介紹 回顧 ShareSDK,顧名思義,分享的SDK組件,公司基于互聯(lián)網(wǎng),早期主要以ShareSDK起家。今日思來,很幸運,能陪著ShareSDK一起成長。 showImg(https://segmentfault.com/img/bV0Wo5...
閱讀 1066·2023-01-14 11:38
閱讀 1062·2023-01-14 11:04
閱讀 901·2023-01-14 10:48
閱讀 2377·2023-01-14 10:34
閱讀 1147·2023-01-14 10:24
閱讀 1026·2023-01-14 10:18
閱讀 654·2023-01-14 10:09
閱讀 733·2023-01-14 10:02