python:大文件分批/塊導入數據庫方式記錄

一、問題背景

對于數據文件比較大的數據,一次性串聯sql進行入庫,往往會受到數據庫本身對sql長度的限制,從而需要分塊或者分批次,將大數據文件一點一點的進行入庫。特針對這種入庫方式,進行一個簡單記錄,各類數據庫入庫后續均可參考下述實現分塊的方式,進行分批入庫數據。

二、實現記錄

問題點其實主要是如何對數據進行分塊。pyhton的read_csv函數和read_excel等數據讀取函數都含有分批讀取數據的參數:chunksize,從而實現分批入庫。

如果是已經全部讀取了數據,還想再進一步分批,則可以參考下述代碼進行分批讀取:

batch_size = 2000
total_rows = p_result_notice_mes_df.shape[0]    
total_batches = total_rows // batch_size + (1 if total_rows % batch_size > 0 else 0)
for i in range(total_batches):start_index = i * batch_sizeend_index = min((i + 1) * batch_size, total_rows)batch_df = p_result_notice_mes_df.iloc[start_index:end_index]

部分示例程序如下:

third_tbname ='bods.scw_info'# 計算數據總數和批次數batch_size = 2000total_rows = p_result_notice_mes_df.shape[0]    total_batches = total_rows // batch_size + (1 if total_rows % batch_size > 0 else 0)if p_third_flag:for i in range(total_batches):start_index = i * batch_sizeend_index = min((i + 1) * batch_size, total_rows)batch_df = p_result_notice_mes_df.iloc[start_index:end_index]third_values_list = []cursor.execute(f"truncate table {third_tbname} ")# 構建批量插入的SQL語句        insert_query = f"""INSERT into {third_tbname} (changelog_id, notice_model, notice_batch,brand, vehicle_type, rated_quality, total_quality, curb_weight, fuel_type, emission_standard)        VALUES """for index, row in batch_df.iterrows():third_values_list.append(f"""('{row["變記錄"]}' , '{row["告"]}', '{row["公次"]}', '{row["品牌"]}', '{row["類型"]}', '{row["額量"]}', '{row["總"]}','{row["整量"]}', '{row["燃類"]}', '{row["排放準"]}')""")insert_query += ',\n'.join(third_values_list)# 執行批量插入cursor.execute(insert_query) print('公告url信息更新入庫成功!\n')  else:print('公告鏈接信息無需更新') 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14113.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spring的控制反轉(IoC)容器作用是什么?

控制反轉(Inversion of Control,IoC)容器是一種強大的設計模式,在現代軟件開發,特別是在使用Spring框架等企業級Java應用中至關重要。IoC容器主要作用是管理應用程序中對象的生命周期和依賴關系。我會逐步解釋它的作用…

YOLOv8改進 | 主干網絡 | 增加網絡結構增強小目標檢測能力【獨家創新——附結構圖】

??????本專欄所有程序均經過測試,可成功執行?????? 在目標檢測領域內,盡管YOLO系列的算法傲視群雄,但在某些方面仍然存在改進的空間。在YOLOv8提取特征的時候,由于卷積的緣故,會導致很多信息的丟失。對于小目標來說更是如此,這樣將大幅度降低小目標的檢測能…

pinpoint服務監控

Pinpoint是一個開源的APM(應用性能管理)系統,主要用于監控和管理Java應用程序的性能。它提供了實時的性能指標、分布式追蹤和診斷等功能,幫助開發和運維快速定位和解決應用程序中的性能問題。 pinpoint其他部分不變,H…

正確可用--Notepad++批量轉換文件編碼為UTF8

參考了:Notepad批量轉換文件編碼為UTF8_怎么批量把ansi轉成utf8-CSDN博客??????https://blog.csdn.net/wangmy1988/article/details/118698647我參考了它的教程,但是py腳本寫的不對. 只能改一個.不能實現批量更改. 他的操作步驟沒問題,就是把腳本代碼換成我這個. #-*-…

graspnet+Astra2相機實現部署

graspnetAstra2相機實現部署 🚀 環境配置 🚀 ubuntu 20.04Astra2相機cuda 11.0.1cudnn v8.9.7python 3.8.19pytorch 1.7.0numpy 1.23.5 1. graspnet的復現 具體的復現流程可以參考這篇文章:Ubuntu20.04下GraspNet復現流程 這里就不再詳細…

數據庫系統概論(第5版)復習筆記

筆記的Github倉庫地址 👆這是筆記的gihub倉庫,內容是PDF格式。 因為圖片和代碼塊太多,放到CSDN太麻煩了(比較懶🤣) 如果感覺對各位有幫助的話歡迎點一個?\^o^/

41-4 DDOS攻擊防護實戰

一、UDP FLOOD攻擊 # hping3 -q -n -a <攻擊IP> -S -s <源端口> --keep -p <目的端口> --flood <被攻擊IP> hping3 --udp -s 6666 -p 53 -a 192.168.1.6 --flood 192.168.1.13 這個命令是使用hping3工具進行UDP Flood攻擊的命令。下面是各個選項的作…

three.js能實現啥效果?看過來,這里都是它的菜(06)

這是第五期了&#xff0c;本期繼續分享three.js可以實現的3D動畫案例&#xff0c;有老鐵反饋再發案例的時候&#xff0c;是否可以順道分享一下three.js的知識點&#xff0c;好吧&#xff0c;安排。 材質動畫 材質動畫可以實現各種復雜的視覺效果&#xff0c;包括但不限于以下…

【css】引入背景圖時候,路徑寫入@會報錯

看報錯信息 我的寫法 解決辦法 在前面加個~

js解決數字小數計算出現的精度丟失問題(2024-05-24)

精度丟失的原因 js小數進行數值運算時出現精度丟失問題 JavaScript 的number類型在進行運算時都先將十進制轉二進制&#xff0c;此時&#xff0c;小數點后面的數字轉二進制時會出現無限循環的問題。 為了避免這一個情況&#xff0c;要舍0進1&#xff0c;此時就會導致精度丟失…

企業寬帶跑pcdn會被查嗎?

企業寬帶使用PCDN技術&#xff0c;本身并不違反相關規定&#xff0c;因此一般不會被查。PCDN是一種內容分發網絡技術&#xff0c;通過將內容緩存在離用戶更近的服務器上&#xff0c;減少數據傳輸的延遲&#xff0c;提高訪問速度。這種技術可以提高網頁加載速度和視頻播放流暢度…

Excel未響應時強關后,Excel插件消失

目錄 我們分析一下插件消失的原因&#xff1a; 針對上面表現出來的2個問題&#xff0c;進行針對性的解決 &#xff1a; 1、不被關進去&#xff0c;是不是就沒有后續的一系列的問題了&#xff0c;各自安好 2、保留住自動加載的行為 PS&#xff1a;配置受信任的位置注冊列表…

2024電工杯B題保姆級分析完整思路+代碼+數據教學

2024電工杯B題保姆級分析完整思路代碼數據教學 B題題目&#xff1a;大學生平衡膳食食譜的優化設計及評價 接下來我們將按照題目總體分析-背景分析-各小問分析的形式來 總體分析&#xff1a; 題目要求對兩份一日膳食食譜進行營養分析和調整&#xff0c;然后設計優化的平衡膳…

生成模型 | 從 VAE 到 Diffusion Model (上)

文章目錄 一&#xff0c;GAN(對抗式生成網絡&#xff09;二&#xff0c;Auto-Encoder(AE) 和 Denoising Auto-Encoder (DAE)三&#xff0c;VAE四&#xff0c;VQ-VAE (Vector Quantized Variational Autoencoder)VQ-VAE 2小總結&#xff1a; 五&#xff0c;DALL-E &#xff08;O…

硅谷裸機云服務器性能測評哪些內容

硅谷裸機云服務器&#xff0c;作為云計算領域的一股新興力量&#xff0c;近年來受到了廣泛關注。其強大的性能和靈活性為用戶提供了更高效、更穩定的云計算服務。那么&#xff0c;硅谷裸機云服務器的性能測評究竟包括哪些內容呢?接下來&#xff0c;我們就來科普一下。 首先&am…

如何讓大模型更聰明?

如何讓大模型更聰明&#xff1f; *隨著人工智能技術的飛速發展&#xff0c;大模型在多個領域展現出了前所未有的能力&#xff0c;但它們仍然面臨著理解力、泛化能力和適應性等方面的挑戰。那么&#xff0c;如何讓大模型變得更聰明呢&#xff1f; 方向一&#xff1a;算法創新 …

留學培訓行業PaaS應用系統架構的設計與實踐

隨著留學需求的增長和教育培訓市場的不斷擴大&#xff0c;留學培訓行業正面臨著越來越多的挑戰和機遇。在這個背景下&#xff0c;利用PaaS&#xff08;Platform as a Service&#xff09;平臺來構建留學培訓行業的應用系統架構&#xff0c;將成為提升服務質量和效率的重要手段。…

Nacos 2.x 系列【8】集成 Spring Cloud Gateway

文章目錄 1. 概述1.1 API 網關1.1 Spring Cloud Gateway 2. 集成案例2.1 入門案例2.2 動態路由 1. 概述 1.1 API 網關 API網關已經成為了微服務架構的一個標配組件&#xff0c;是系統對外的唯一入口。所有的客戶端都通過統一的網關接入微服務&#xff0c;在網關層處理所有非業…

部署 harbor 創建私有項目

一在 Docker harbor 節點&#xff08;192.168.11.&#xff09;上操作 1 關閉防火墻防護 systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 2 安裝docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-ma…

SSRF攻擊技術

1、SSRF形成原因 SSRF(Server-Side Request Forgery:服務器端請求偽造) 是一種由攻擊者構造形成由服務端發起請求的一個安全漏洞。一般情況下&#xff0c;SSRF是要目標網站的內部系統。&#xff08;因為他是從內部系統訪問的&#xff0c;所有可以通過它攻擊外網無法訪問的內部系…