摘要:無(wú)意中看到了一篇講數(shù)據(jù)批量導(dǎo)入的文章,才注意到的命令。的直接可以干這個(gè)事情,而且導(dǎo)出速度是非??斓摹?偨Y(jié)還有一些其他配置,比如把輸入輸出源指定成和命令,或者指定的等等。合理使用能大大提高效率。
TL;DR
無(wú)意中看到了一篇講 數(shù)據(jù)批量導(dǎo)入 的文章,才注意到 PostgreSQL 的 COPY 命令。簡(jiǎn)而言之,它用來(lái)在文件和數(shù)據(jù)庫(kù)之間復(fù)制數(shù)據(jù),效率非常高,并且支持 CSV 。
導(dǎo)出 CSV以前做類似的事情都是用程序語(yǔ)言寫(xiě),比如用程序讀取數(shù)據(jù)庫(kù)的數(shù)據(jù),然后用 CSV 模塊寫(xiě)入文件,當(dāng)數(shù)據(jù)量大的時(shí)候還要控制不要一次讀太多,比如一次讀 5000 條,處理完再讀 5000 條之類。
PostgreSQL 的 COPY TO 直接可以干這個(gè)事情,而且導(dǎo)出速度是非??斓摹O旅胬邮前?products 表導(dǎo)出成 CSV :
COPY products TO "/path/to/output.csv" WITH csv;
可以導(dǎo)出指定的屬性:
COPY products (name, price) TO "/path/to/output.csv" WITH csv;
也可以配合查詢語(yǔ)句,比如最常見(jiàn)的 SELECT :
COPY ( SELECT name, category_name FROM products LEFT JOIN categories ON categories.id = products.category_id ) TO "/path/to/output.csv" WITH csv;導(dǎo)入 CSV
跟上面的導(dǎo)出差不多,只是把 TO 換成 FROM ,舉例:
COPY products FROM "/path/to/input.csv" WITH csv;
這個(gè)命令做導(dǎo)入是非常高效的,在開(kāi)頭那篇博客作者的測(cè)試中,COPY 只花了 INSERT 方案 1/3 的時(shí)間,而后者還用 prepare statement 優(yōu)化過(guò)。
總結(jié)COPY 還有一些其他配置,比如把輸入輸出源指定成 STDIN/STDOUT 和 shell 命令,或者指定 CSV 的 header 等等。這里不再贅述。數(shù)據(jù)庫(kù)也有很多細(xì)節(jié)可挖,有些簡(jiǎn)單卻非常實(shí)用。合理使用能大大提高效率。
參考資料Friends Don’t Let Friends Use Loops
PostgreSQL: COPY
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/38970.html
摘要:無(wú)意中看到了一篇講數(shù)據(jù)批量導(dǎo)入的文章,才注意到的命令。的直接可以干這個(gè)事情,而且導(dǎo)出速度是非??斓?。總結(jié)還有一些其他配置,比如把輸入輸出源指定成和命令,或者指定的等等。合理使用能大大提高效率。 TL;DR 無(wú)意中看到了一篇講 數(shù)據(jù)批量導(dǎo)入 的文章,才注意到 PostgreSQL 的 COPY 命令。簡(jiǎn)而言之,它用來(lái)在文件和數(shù)據(jù)庫(kù)之間復(fù)制數(shù)據(jù),效率非常高,并且支持 CSV 。 導(dǎo)出 CS...
摘要:基本環(huán)境操作系統(tǒng)安裝安裝和安裝時(shí)序數(shù)據(jù)庫(kù)插件部署實(shí)踐時(shí)空數(shù)據(jù)庫(kù)德哥官網(wǎng)安裝文檔設(shè)置實(shí)驗(yàn)下載測(cè)試數(shù)據(jù)創(chuàng)建數(shù)據(jù)庫(kù)解壓下載文件創(chuàng)建表結(jié)構(gòu)導(dǎo)入數(shù)據(jù)查詢測(cè)試注釋數(shù)據(jù)庫(kù)啟動(dòng)連接數(shù)據(jù)庫(kù)創(chuàng) 基本環(huán)境 操作系統(tǒng): centOS 7 postGreSQL : 10 timescaleDB : 1.0 + postGreSQL安裝 Centos7 安裝Postgresql10.5和PostGIS times...
摘要:導(dǎo)入導(dǎo)出可以操作的是本地的服務(wù)器也可以是遠(yuǎn)程的服務(wù)器所以都有如下通用選項(xiàng)主機(jī)端口用戶名密碼導(dǎo)出庫(kù)名表名列名查詢條件導(dǎo)出的文件名導(dǎo)出格式便于和傳統(tǒng)數(shù)據(jù)庫(kù)交換數(shù)據(jù)導(dǎo)出庫(kù)下面的表從哪里導(dǎo)出導(dǎo)出的文檔數(shù)導(dǎo)出庫(kù)下 導(dǎo)入/導(dǎo)出可以操作的是本地的mongodb服務(wù)器,也可以是遠(yuǎn)程的服務(wù)器所以,都有如下通用選項(xiàng): -h host 主機(jī) --port port 端口 -u username 用...
閱讀 3269·2021-09-29 09:34
閱讀 3617·2021-09-10 10:51
閱讀 2014·2021-09-10 10:50
閱讀 7024·2021-08-12 13:31
閱讀 3061·2019-08-30 15:54
閱讀 1683·2019-08-30 15:44
閱讀 1486·2019-08-29 12:26
閱讀 2715·2019-08-26 18:36