摘要:無意中看到了一篇講數(shù)據(jù)批量導入的文章,才注意到的命令。的直接可以干這個事情,而且導出速度是非??斓???偨Y還有一些其他配置,比如把輸入輸出源指定成和命令,或者指定的等等。合理使用能大大提高效率。
TL;DR
無意中看到了一篇講 數(shù)據(jù)批量導入 的文章,才注意到 PostgreSQL 的 COPY 命令。簡而言之,它用來在文件和數(shù)據(jù)庫之間復制數(shù)據(jù),效率非常高,并且支持 CSV 。
導出 CSV以前做類似的事情都是用程序語言寫,比如用程序讀取數(shù)據(jù)庫的數(shù)據(jù),然后用 CSV 模塊寫入文件,當數(shù)據(jù)量大的時候還要控制不要一次讀太多,比如一次讀 5000 條,處理完再讀 5000 條之類。
PostgreSQL 的 COPY TO 直接可以干這個事情,而且導出速度是非??斓?。下面例子是把 products 表導出成 CSV :
COPY products TO "/path/to/output.csv" WITH csv;
可以導出指定的屬性:
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;導入 CSV
跟上面的導出差不多,只是把 TO 換成 FROM ,舉例:
COPY products FROM "/path/to/input.csv" WITH csv;
這個命令做導入是非常高效的,在開頭那篇博客作者的測試中,COPY 只花了 INSERT 方案 1/3 的時間,而后者還用 prepare statement 優(yōu)化過。
總結COPY 還有一些其他配置,比如把輸入輸出源指定成 STDIN/STDOUT 和 shell 命令,或者指定 CSV 的 header 等等。這里不再贅述。數(shù)據(jù)庫也有很多細節(jié)可挖,有些簡單卻非常實用。合理使用能大大提高效率。
參考資料Friends Don’t Let Friends Use Loops
PostgreSQL: COPY
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/38970.html
摘要:無意中看到了一篇講數(shù)據(jù)批量導入的文章,才注意到的命令。的直接可以干這個事情,而且導出速度是非??斓摹?偨Y還有一些其他配置,比如把輸入輸出源指定成和命令,或者指定的等等。合理使用能大大提高效率。 TL;DR 無意中看到了一篇講 數(shù)據(jù)批量導入 的文章,才注意到 PostgreSQL 的 COPY 命令。簡而言之,它用來在文件和數(shù)據(jù)庫之間復制數(shù)據(jù),效率非常高,并且支持 CSV 。 導出 CS...
摘要:基本環(huán)境操作系統(tǒng)安裝安裝和安裝時序數(shù)據(jù)庫插件部署實踐時空數(shù)據(jù)庫德哥官網安裝文檔設置實驗下載測試數(shù)據(jù)創(chuàng)建數(shù)據(jù)庫解壓下載文件創(chuàng)建表結構導入數(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...
摘要:導入導出可以操作的是本地的服務器也可以是遠程的服務器所以都有如下通用選項主機端口用戶名密碼導出庫名表名列名查詢條件導出的文件名導出格式便于和傳統(tǒng)數(shù)據(jù)庫交換數(shù)據(jù)導出庫下面的表從哪里導出導出的文檔數(shù)導出庫下 導入/導出可以操作的是本地的mongodb服務器,也可以是遠程的服務器所以,都有如下通用選項: -h host 主機 --port port 端口 -u username 用...
閱讀 3206·2021-09-29 09:34
閱讀 3560·2021-09-10 10:51
閱讀 1960·2021-09-10 10:50
閱讀 6767·2021-08-12 13:31
閱讀 3008·2019-08-30 15:54
閱讀 1585·2019-08-30 15:44
閱讀 1435·2019-08-29 12:26
閱讀 2663·2019-08-26 18:36