Multicorn 是一個 PostgreSQL 9.1+ 的擴展模塊,用於簡化外部數據封裝開發,容許開發者使用 Python 編程語言開發。python
因爲我前面已經安裝了postgresql9.5,下面安裝其餘的包。sql
$ 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:app
$ sudo pgxn install multicorn
報以下錯:python2.7
/usr/bin/install -c -m 755 multicorn.so '/usr/lib/postgresql/9.5/lib/multicorn.so' cp .//setup.py ./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 <module> 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
就沒報錯了。post
這個fdw被使用鏈接存儲的csv文件,表中定義的每一個列都將按照CSV文件中的列進行映射。ui
咱們使用/tmp/test.csv,其內容以下:postgresql
Year,Make,Model,Length 1997,Ford,E350,2.34 2000,Mercury,Cougar,2.38
postgresql中聲明外部表:code
CREATE SERVER csv_srv foreign data wrapper multicorn options ( wrapper 'multicorn.csvfdw.CsvFdw' ); 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)