zoukankan      html  css  js  c++  java
  • 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)
    
  • 相关阅读:
    css 盒模型
    Dom事件类-文档对象模型
    BFC-边距重叠解决方案
    三栏布局的五种方式--左右固定,中间自适应
    为什么必须先写组件再写vue的实例
    H5跳小程序安卓机出现白屏的问题
    关于iframe标签的src属性
    子组件让父组件进行刷新vuex
    html 插件
    git 其他merge
  • 原文地址:https://www.cnblogs.com/zeppelin/p/7253051.html
Copyright © 2011-2022 走看看