国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python如何讀取千萬級數據并自動寫入MySQL數據庫

89542767 / 791人閱讀

  小編寫這篇文章的一個主要目的,主要是去給大家去做一些相關的一些介紹,涉及到內容的還是比較多的,比如如何去進行讀取千萬級的一些數據,并且將這些數據去自動錄入到系統里面。錄入到系統里面之后,怎么才能夠導入到MySQL數據庫呢?下面就給大家詳細解答下。


  序言


  Python數據如何去進行讀取MySQL數據庫呢?這類工作在生活當中是比較的普遍的,涉及到的內容也是相關的一些python數據庫,包括數據的聽說讀寫等一些相關的數據工作。數據庫的內容主要是涉及到mongodb、es,具體的一些相關內容,下面就給大家詳細解答下。


  場景一:數據不需要頻繁的寫入mysql


  使用navicat工具的導入向導功能。支持多種文件格式,可以根據文件的字段自動建表,也可以在已有表中插入數據,非常快捷方便。

01.png

02.png

  場景二:數據是增量的,需要自動化并頻繁寫入mysql


  測試數據:csv格式,大約1200萬行


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


  打印結果:

03.png

  方式一:python?pymysql庫


  安裝pymysql命令:


 pip install pymysql


  代碼實現:


  import pymysql
  #數據庫連接信息
  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()
  #關閉服務
  conn.close()
  cursor.close()
  print('存入成功!')

  

04.png

       方式二:pandas?sqlalchemy:pandas需要引入sqlalchemy來支持sql,在sqlalchemy的支持下,它可以實現所有常見數據庫類型的查詢、更新等操作。


  代碼實現:


  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('存入成功!')


  總結


  pymysql方法用時12分47秒,耗時還是比較長的,代碼量大,而pandas僅需五行代碼就實現了這個需求,只用了4分鐘左右。最后補充下,方式一需要提前建表,方式二則不需要。所以推薦大家使用第二種方式,既方便又效率高。如果還覺得速度慢的小伙伴,可以考慮加入多進程、多線程。


  最全的三種將數據存入到MySQL數據庫方法:


  直接存,利用navicat的導入向導功能


  Python pymysql


  Pandas sqlalchemy


  綜上所述,這篇文章就給大家介紹完畢了,希望可以給大家帶來幫助。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128824.html

相關文章

  • UPYUN Open Talk :同盾,從零打造萬級實時風控云服務

    摘要:同盾技術總監張新波在第二期移動時代互聯網金融的架構趨勢中闡述了同盾是如何從零開始打造千萬級實時風控云服務,具體介紹了同盾系統平臺構建過程中主要需要解決的三大難題,以及解決這些問題的具體時實踐過程。 同盾科技,是由阿里、Paypal 反欺詐專家創建的,國內第一家風險控制與反欺詐云服務提供商,其涉及領域包括電商、B2B、互聯網金融、游戲等。同盾技術總監張新波在 UPYUN Open ...

    malakashi 評論0 收藏0
  • 三款新功能發布,助力阿里云表格存儲再次升級

    摘要:摘要阿里云表格存儲于近期功能再升級,升級后的表格存儲支持對采集的數據進行持久化存儲,其新增支持,以及最新發布的能夠幫助用戶輕松構建千萬級和流系統。功能一支持對采集的數據進行持久化存儲阿里云表格存儲支持對采集的數據進行持久化存儲。 摘要: 阿里云表格存儲于近期功能再升級,升級后的表格存儲支持對DataHub采集的數據進行持久化存儲,其Python SDK新增支持Python 3.x,以及...

    Allen 評論0 收藏0
  • 從0到萬級發服務架構演化

    摘要:包括服務的自動化部署,以及鏈路監控等并未細說提及。結語誠然,整個服務架構可以輕松應對千萬級并發。期望,整個服務架構能伴隨公司繼續成長壯大。 背景介紹 回顧 ShareSDK,顧名思義,分享的SDK組件,公司基于互聯網,早期主要以ShareSDK起家。今日思來,很幸運,能陪著ShareSDK一起成長。 showImg(https://segmentfault.com/img/bV0Wo5...

    starsfun 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<