• PG利用Multicorn访问CSV外部数据源


    Multicorn 是一个 PostgreSQL 9.1+ 的扩展模块,用于简化外部数据封装开发,允许开发者使用 Python 编程语言开发。

    Install Multicorn

    Requirements

    • Postgresql 9.1+
    • Postgresql development packages
    • Python development packages
    • python 2.7 or >= python 3.3 as your default python

    由于我前面已经安装了postgresql9.5,下面安装其他的包。

    $ sudo apt install postgresql-server-dev-9.5
    

    安装pgxn client

    $ 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.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就没报错了。

    CSV Foreign Data Wrapper

    Purpose

    这个fdw被使用连接存储的csv文件,表中定义的每个列都将按照CSV文件中的列进行映射。

    Usage example

    我们使用/tmp/test.csv,其内容如下:

    Year,Make,Model,Length
    1997,Ford,E350,2.34
    2000,Mercury,Cougar,2.38
    

    postgresql中声明外部表:

    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)
    
  • 相关阅读:
    转载:有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别
    生活该是什么样子
    怎么处理问题
    jquery.validate 1.7版本(remote方法)bug修复方法(一)
    jquery.ui.dialog 1.81在IE8中出现滚动条bug解决方法
    javascript 懒加载技术(lazyload)简单实现
    jquery.validate 1.7版本(remote方法)bug修复方法(二)
    发布一款JavaScript焦点图组件
    发布一款轻量级的JSON转换代码
    android_intent和intent_action大全 .
  • 原文地址:https://www.cnblogs.com/zeppelin/p/7253051.html
Copyright © 2020-2023  润新知