摘要:無意中看到了一篇講數(shù)據(jù)批量導(dǎo)入的文章,才注意到的命令。的直接可以干這個事情,而且導(dǎo)出速度是非??斓?。總結(jié)還有一些其他配置,比如把輸入輸出源指定成和命令,或者指定的等等。合理使用能大大提高效率。
TL;DR
無意中看到了一篇講 數(shù)據(jù)批量導(dǎo)入 的文章,才注意到 PostgreSQL 的 COPY 命令。簡而言之,它用來在文件和數(shù)據(jù)庫之間復(fù)制數(shù)據(jù),效率非常高,并且支持 CSV 。
導(dǎo)出 CSV以前做類似的事情都是用程序語言寫,比如用程序讀取數(shù)據(jù)庫的數(shù)據(jù),然后用 CSV 模塊寫入文件,當(dāng)數(shù)據(jù)量大的時候還要控制不要一次讀太多,比如一次讀 5000 條,處理完再讀 5000 條之類。
PostgreSQL 的 COPY TO 直接可以干這個事情,而且導(dǎ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;
也可以配合查詢語句,比如最常見的 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;
這個命令做導(dǎo)入是非常高效的,在開頭那篇博客作者的測試中,COPY 只花了 INSERT 方案 1/3 的時間,而后者還用 prepare statement 優(yōu)化過。
總結(jié)COPY 還有一些其他配置,比如把輸入輸出源指定成 STDIN/STDOUT 和 shell 命令,或者指定 CSV 的 header 等等。這里不再贅述。數(shù)據(jù)庫也有很多細(xì)節(jié)可挖,有些簡單卻非常實(shí)用。合理使用能大大提高效率。
參考資料Friends Don’t Let Friends Use Loops
PostgreSQL: COPY
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17582.html
摘要:無意中看到了一篇講數(shù)據(jù)批量導(dǎo)入的文章,才注意到的命令。的直接可以干這個事情,而且導(dǎo)出速度是非??斓???偨Y(jié)還有一些其他配置,比如把輸入輸出源指定成和命令,或者指定的等等。合理使用能大大提高效率。 TL;DR 無意中看到了一篇講 數(shù)據(jù)批量導(dǎo)入 的文章,才注意到 PostgreSQL 的 COPY 命令。簡而言之,它用來在文件和數(shù)據(jù)庫之間復(fù)制數(shù)據(jù),效率非常高,并且支持 CSV 。 導(dǎo)出 CS...
摘要:基本環(huán)境操作系統(tǒng)安裝安裝和安裝時序數(shù)據(jù)庫插件部署實(shí)踐時空數(shù)據(jù)庫德哥官網(wǎng)安裝文檔設(shè)置實(shí)驗(yàn)下載測試數(shù)據(jù)創(chuàng)建數(shù)據(jù)庫解壓下載文件創(chuàng)建表結(jié)構(gòu)導(dǎo)入數(shù)據(jù)查詢測試注釋數(shù)據(jù)庫啟動連接數(shù)據(jù)庫創(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)出庫名表名列名查詢條件導(dǎo)出的文件名導(dǎo)出格式便于和傳統(tǒng)數(shù)據(jù)庫交換數(shù)據(jù)導(dǎo)出庫下面的表從哪里導(dǎo)出導(dǎo)出的文檔數(shù)導(dǎo)出庫下 導(dǎo)入/導(dǎo)出可以操作的是本地的mongodb服務(wù)器,也可以是遠(yuǎn)程的服務(wù)器所以,都有如下通用選項(xiàng): -h host 主機(jī) --port port 端口 -u username 用...
閱讀 1066·2021-11-24 09:39
閱讀 3603·2021-11-22 13:54
閱讀 2562·2021-10-11 10:59
閱讀 803·2021-09-02 15:40
閱讀 1038·2019-08-30 15:55
閱讀 1057·2019-08-30 13:57
閱讀 2317·2019-08-30 13:17
閱讀 3037·2019-08-29 18:32