PG利用Multicorn訪問CSV外部資料來源

2022-08-22 09:00:15 字數 1871 閱讀 1766

multicorn 是乙個 postgresql 9.1+ 的擴充套件模組,用於簡化外部資料封裝開發,允許開發者使用 python 程式語言開發。

由於我前面已經安裝了postgresql9.5,下面安裝其他的包。

$ sudo apt install postgresql-server-dev-9.5
$ sudo apt install pgxnclient
ubuntu 16.04 lts自帶python3.5,但是安裝pgxnclient的時候會自動安裝python2.7,後面安裝multicorn就依賴python2.7了,所以下面安裝python-dev。

$ sudo apt install python-dev
利用pgxn安裝multicorn:

$ sudo pgxn install multicorn
報如下錯:

/usr/bin/install -c -m 755  multicorn.so '/usr/lib/postgresql/9.5/lib/multicorn.so'

cp . ./setup--1.3.3.py

sed -i -e "s/__version__/1.3.3-dev/g" ./setup--1.3.3.py

python2.7 ./setup--1.3.3.py install

traceback (most recent call last):

file "./setup--1.3.3.py", line 3, in from setuptools import setup, find_packages, extension

importerror: no module named setuptools

makefile:31: recipe for target 'python_code' failed

make: *** [python_code] error 1

solution:

$ sudo apt install python-pip
安裝了pip之後繼續執行$ sudo pgxn install multicorn就沒報錯了。

這個fdw被使用連線儲存的csv檔案,表中定義的每個列都將按照csv檔案中的列進行對映。

我們使用/tmp/test.csv,其內容如下:

year,make,model,length

1997,ford,e350,2.34

2000,mercury,cougar,2.38

postgresql中宣告外部表:

);create foreign table csvtest (

year numeric,

make character varying,

model character varying,

length numeric

) server csv_srv options (

filename '/tmp/test.csv',

skip_header '1',

delimiter ',');

select * from csvtest;

year |  make   | model  | length 

------+---------+--------+--------

1997 | ford | e350 | 2.34

2000 | mercury | cougar | 2.38

(2 rows)

遠端訪問pg配置修改

1 解決不能連線遠端postgresql postgresql預設情況下,遠端訪問不能成功,如果需要允許遠端訪問,需要修改兩個配置檔案,說明如下 1.postgresql.conf 將該檔案中的listen addresses項值設定為 在9.0 windows版中,該項配置已經是 無需修改。2.p...

PG使用預設許可權訪問其它schema資料示例

刪除public模式,各自使用私有模式管理資料 需用管理使用者操作 postgres s2ahumysqlpg01 psql psql 12.4 type help for help.postgres drop database testdb postgres create database tes...

利用numpy訪問檔案

int rat int roatents rat 此式中 不是位址運算子,而是型別表示符,roatents是rat的別名,他們指向相同的值和記憶體單元,改變 roatents的值,rat也會變。roatents是乙個引用變數 int prats rat prat是指標 roatents prats可...