成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Python如何讀取千萬(wàn)級(jí)數(shù)據(jù)并自動(dòng)寫(xiě)入MySQL數(shù)據(jù)庫(kù)

89542767 / 809人閱讀

  小編寫(xiě)這篇文章的一個(gè)主要目的,主要是去給大家去做一些相關(guān)的一些介紹,涉及到內(nèi)容的還是比較多的,比如如何去進(jìn)行讀取千萬(wàn)級(jí)的一些數(shù)據(jù),并且將這些數(shù)據(jù)去自動(dòng)錄入到系統(tǒng)里面。錄入到系統(tǒng)里面之后,怎么才能夠?qū)氲組ySQL數(shù)據(jù)庫(kù)呢?下面就給大家詳細(xì)解答下。


  序言


  Python數(shù)據(jù)如何去進(jìn)行讀取MySQL數(shù)據(jù)庫(kù)呢?這類(lèi)工作在生活當(dāng)中是比較的普遍的,涉及到的內(nèi)容也是相關(guān)的一些python數(shù)據(jù)庫(kù),包括數(shù)據(jù)的聽(tīng)說(shuō)讀寫(xiě)等一些相關(guān)的數(shù)據(jù)工作。數(shù)據(jù)庫(kù)的內(nèi)容主要是涉及到mongodb、es,具體的一些相關(guān)內(nèi)容,下面就給大家詳細(xì)解答下。


  場(chǎng)景一:數(shù)據(jù)不需要頻繁的寫(xiě)入mysql


  使用navicat工具的導(dǎo)入向?qū)Чδ?。支持多種文件格式,可以根據(jù)文件的字段自動(dòng)建表,也可以在已有表中插入數(shù)據(jù),非??旖莘奖?。

01.png

02.png

  場(chǎng)景二:數(shù)據(jù)是增量的,需要自動(dòng)化并頻繁寫(xiě)入mysql


  測(cè)試數(shù)據(jù):csv格式,大約1200萬(wàn)行


  import pandas as pd
  data=pd.read_csv('./tianchi_mobile_recommend_train_user.csv')
  data.shape


  打印結(jié)果:

03.png

  方式一:python?pymysql庫(kù)


  安裝pymysql命令:


 pip install pymysql


  代碼實(shí)現(xiàn):


  import pymysql
  #數(shù)據(jù)庫(kù)連接信息
  conn=pymysql.connect(
  host='127.0.0.1',
  user='root',
  passwd='wangyuqing',
  db='test01',
  port=3306,
  charset="utf8")
  #分塊處理
  big_size=100000
  #分塊遍歷寫(xiě)入到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)閉服務(wù)
  conn.close()
  cursor.close()
  print('存入成功!')

  

04.png

       方式二:pandas?sqlalchemy:pandas需要引入sqlalchemy來(lái)支持sql,在sqlalchemy的支持下,它可以實(shí)現(xiàn)所有常見(jiàn)數(shù)據(jù)庫(kù)類(lèi)型的查詢(xún)、更新等操作。


  代碼實(shí)現(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方法用時(shí)12分47秒,耗時(shí)還是比較長(zhǎng)的,代碼量大,而pandas僅需五行代碼就實(shí)現(xiàn)了這個(gè)需求,只用了4分鐘左右。最后補(bǔ)充下,方式一需要提前建表,方式二則不需要。所以推薦大家使用第二種方式,既方便又效率高。如果還覺(jué)得速度慢的小伙伴,可以考慮加入多進(jìn)程、多線(xiàn)程。


  最全的三種將數(shù)據(jù)存入到MySQL數(shù)據(jù)庫(kù)方法:


  直接存,利用navicat的導(dǎo)入向?qū)Чδ?/p>


  Python pymysql


  Pandas sqlalchemy


  綜上所述,這篇文章就給大家介紹完畢了,希望可以給大家?guī)?lái)幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128824.html

相關(guān)文章

  • UPYUN Open Talk :同盾,從零打造萬(wàn)級(jí)實(shí)時(shí)風(fēng)控云服務(wù)

    摘要:同盾技術(shù)總監(jiān)張新波在第二期移動(dòng)時(shí)代互聯(lián)網(wǎng)金融的架構(gòu)趨勢(shì)中闡述了同盾是如何從零開(kāi)始打造千萬(wàn)級(jí)實(shí)時(shí)風(fēng)控云服務(wù),具體介紹了同盾系統(tǒng)平臺(tái)構(gòu)建過(guò)程中主要需要解決的三大難題,以及解決這些問(wèn)題的具體時(shí)實(shí)踐過(guò)程。 同盾科技,是由阿里、Paypal 反欺詐專(zhuān)家創(chuàng)建的,國(guó)內(nèi)第一家風(fēng)險(xiǎn)控制與反欺詐云服務(wù)提供商,其涉及領(lǐng)域包括電商、B2B、互聯(lián)網(wǎng)金融、游戲等。同盾技術(shù)總監(jiān)張新波在 UPYUN Open ...

    malakashi 評(píng)論0 收藏0
  • 三款新功能發(fā)布,助力阿里云表格存儲(chǔ)再次升級(jí)

    摘要:摘要阿里云表格存儲(chǔ)于近期功能再升級(jí),升級(jí)后的表格存儲(chǔ)支持對(duì)采集的數(shù)據(jù)進(jìn)行持久化存儲(chǔ),其新增支持,以及最新發(fā)布的能夠幫助用戶(hù)輕松構(gòu)建千萬(wàn)級(jí)和流系統(tǒng)。功能一支持對(duì)采集的數(shù)據(jù)進(jìn)行持久化存儲(chǔ)阿里云表格存儲(chǔ)支持對(duì)采集的數(shù)據(jù)進(jìn)行持久化存儲(chǔ)。 摘要: 阿里云表格存儲(chǔ)于近期功能再升級(jí),升級(jí)后的表格存儲(chǔ)支持對(duì)DataHub采集的數(shù)據(jù)進(jìn)行持久化存儲(chǔ),其Python SDK新增支持Python 3.x,以及...

    Allen 評(píng)論0 收藏0
  • 從0到萬(wàn)級(jí)發(fā)服務(wù)架構(gòu)演化

    摘要:包括服務(wù)的自動(dòng)化部署,以及鏈路監(jiān)控等并未細(xì)說(shuō)提及。結(jié)語(yǔ)誠(chéng)然,整個(gè)服務(wù)架構(gòu)可以輕松應(yīng)對(duì)千萬(wàn)級(jí)并發(fā)。期望,整個(gè)服務(wù)架構(gòu)能伴隨公司繼續(xù)成長(zhǎng)壯大。 背景介紹 回顧 ShareSDK,顧名思義,分享的SDK組件,公司基于互聯(lián)網(wǎng),早期主要以ShareSDK起家。今日思來(lái),很幸運(yùn),能陪著ShareSDK一起成長(zhǎng)。 showImg(https://segmentfault.com/img/bV0Wo5...

    starsfun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<