shell腳本操作postgresql的方法
PostgreSQL是一種特性非常齊全的自由軟件的對(duì)象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),是以加州大學(xué)計(jì)算機(jī)系開發(fā)的POSTGRES,4.2版本為基礎(chǔ)的對(duì)象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。POSTGRES的許多領(lǐng)先概念只是在比較遲的時(shí)候才出現(xiàn)在商業(yè)網(wǎng)站數(shù)據(jù)庫中。PostgreSQL支持大部分的SQL標(biāo)準(zhǔn)并且提供了很多其他現(xiàn)代特性,如復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制等。同樣,PostgreSQL也可以用許多方法擴(kuò)展,例如通過增加新的數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引方法、過程語言等。另外,因?yàn)樵S可證的靈活,任何人都可以以任何目的免費(fèi)使用、修改和分發(fā)PostgreSQL。
以前抽數(shù)據(jù)都是從其他數(shù)據(jù)庫抽取到postgres數(shù)據(jù)庫的所以選擇kettle。新項(xiàng)目需求里需要把客戶給的csv文件數(shù)據(jù)抽到postgresql,其中還需要對(duì)相關(guān)字段進(jìn)行清洗。先聲明下kettle也可以實(shí)現(xiàn),但是總感覺依賴第三方軟件抽數(shù)據(jù)不如直接操作數(shù)據(jù)庫,除非逼不得已,盡量不用(純屬個(gè)人見解)。于是就研究linux直接連接數(shù)據(jù)庫處理這部分需求。代碼如下
#!/bin/bash # ***************************************************** # ** linux_schedule_test # ***************************************************** #\copy test from '/etl-script/test.csv' delimiter ',' csv header encoding 'UTF8'; # copy test_copy to 'D:\test_copy1.csv' delimiter ',' csv header encoding 'GBK'; export PATH=/usr/pgsql-10/bin:/usr/bin; psql "host=127.0.0.1 port=5434 user=admin password=123456 dbname=linux_schedule_test" << EOF #2>/dev/null \copy test from '/etl-script/test.csv' delimiter ',' csv header encoding 'GBK'; create table test$(date +%Y%m%d_%H%m%S) as select * from test; \q EOF
export PATH=/usr/pgsql-10/bin:/usr/bin :因?yàn)榄h(huán)境作用域問題,最好在腳本開始處將要用到的命令添加PATH路徑。
psql "host=127.0.0.1 port=5434 user=admin password=123456 dbname=linux_schedule_test" :連接數(shù)據(jù)庫
<< EOF : 通過重定向,停留在psql客戶端。
#2>/dev/null 腳本出錯(cuò)不輸出,調(diào)試時(shí)建議注釋掉,不然都不知道腳本為什么沒有跑。
\copy test from '/etl-script/test.csv' delimiter ',' csv header encoding 'GBK';:通過copy命令抽取csv文件數(shù)據(jù)。
create table test$(date +%Y%m%d_%H%m%S) as select * from test;:備份test表數(shù)據(jù),測(cè)試用的。
\q:退出psql。這個(gè)不寫也可以最后的EOF也會(huì)接受psql客戶端的。
EOF:結(jié)束重定向。
到此這篇關(guān)于shell腳本操作postgresql的文章就介紹到這了,更多相關(guān)shell腳本操作postgresql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談PostgreSQL的客戶端認(rèn)證pg_hba.conf
這篇文章主要介紹了淺談PostgreSQL的客戶端認(rèn)證pg_hba.conf,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01postgresql高級(jí)應(yīng)用之合并單元格的思路詳解
這篇文章主要介紹了postgresql高級(jí)應(yīng)用之合并單元格,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05Postgresql數(shù)據(jù)庫之創(chuàng)建和修改序列的操作
這篇文章主要介紹了Postgresql數(shù)據(jù)庫之創(chuàng)建和修改序列的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02postgresql 查看當(dāng)前用戶名的實(shí)現(xiàn)
這篇文章主要介紹了postgresql 查看當(dāng)前用戶名的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02