Tag:PostgreSQL

ETL时遇到的坑之一

今天客户给的数据压缩包,先是在mac OSX上解压碰到乱码问题(已解决)(家中预览),然后发现一系列问题, 所有的数据开始都有等号(=) 部分数据结尾存在多余的逗号(,) 订单表字段不统一(部分文件缺少末尾字段,这也许是和上个问题有关系) 部分文件名命名错误,把订单明细命名成了订单 解决办法,使用sed批量去除头尾多余的字符(写了个简单的Windows批处理文件),并把订单和订单明细分到不同目录(原来有超过10个目录) @echo off @rem replace first md detail md order for /r %%i in (*宝贝*.csv) do @sed "s/^=//g" %%i |sed "s/,$//g">detail\%%~ni.txt for /r %%i…

Read More

如何访问局域网内PostgreSQL服务器

提前休假回家过中秋,却没有能好好休息,客户赶进度,而服务器在局域网内,没有通过路由设置把端口暴露出来,也没有VPN,可以远程桌面(RDP),虽然可以访问,但速度太慢,于是想到了前段时间下载的ngrok,一款内网转发服务软件,需要注册才支持TCP服务,试了下,效果还不错。 如果临时使用ngrok是不错的选择,不过免费版本,只能映射一个端口,其实如果自己有外网的服务器或者虚拟主机,plink(windows下使用,linux推荐autossh,plink需要自己写个批处理命令实现for循环,好在短线后自动连接,我写的是死循环)更方便些,不限制端口个数,自己的服务器,安全也能更加保证。

Read More

在Ubuntu下安装RPostgreSQL

在Windows上安装RPostgreSQL非常简单, install.packages("RPostgreSQL") 但同样都命令在Ubuntu(Linux)环境下就会遇到如下错误, checking for "/libpq-fe.h"... no configure: creating ./config.status config.status: creating src/Makevars gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c RS-DBI.c -o…

Read More

PostgreSQL9.5 下安装MADlib

下载安装MADlib前的准备工作,安装编译环境和必要的组件: apt-get update apt-get install build-essential m4 postgresql-server-dev-9.5 \ postgresql-plpython-9.5 git cmake 下载、编译、安装MADlib: git clone https://github.com/apache/incubator-madlib cd incubator-madlib ./configure make install 部署MADlib到指定数据库 /usr/local/madlib/bin/madpack -p postgres -c postgres@127.0.0.1/test install  

Read More

PostgreSQL 获得星期的名字

下面命令得到的是一个星期的第几天,the day of week(0~6, 0是Sunday) select extract(dow from now()); 如果想转成Monday或者Mon怎么办呢?下面这个从网上找来的函数就是来做这个转换的, CREATE OR REPLACE FUNCTION dayOfWeek (date Date) RETURNS Character Varying(15) AS $$ DECLARE DAY_OF_WEEK_CONST Character Varying(15) := 'dow'; dayOfWeek Integer…

Read More

如何查找PostgreSQL库所有表的行数

今天使用R批量导入Excel数据到PostgreSQL,总共25个excel,导完后被告知有2个excel是一模一样的,但我导入的时候没有记录表名和excel名直接的关系,如何查找是哪两个表重复了呢? 网上找到一段代码,可以获得指定库下所有表的行数, SELECT schemaname,relname,n_live_tup FROM pg_stat_user_tables ORDER BY n_live_tup DESC; 结合我的表的前缀raw_2014_,轻松寻找到了2个行数一样的表, How do you find the row count for all your tables in Postgres SELECT schemaname,relname,n_live_tup FROM pg_stat_user_tables where relname…

Read More

SparkR连接PostgreSQL数据库

成功安装了SparkR后,让我们来尝试下如何从PostgreSQL读取数据, Sys.setenv(SPARK_HOME="/Users/steven/Applications/spark2") .libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths())) library(SparkR) d.pg="org.postgresql:postgresql:9.4.1209.jre7" sc <- sparkR.session(master="local",sparkPackages=c(d.pg)) url<-"jdbc:postgresql://localhost:5432/steven?user=postgres&password=" driver<-"org.postgresql.Driver" df.pg <- read.jdbc(source="jdbc", url=url, tableName ="public.mtcars",driver=driver) printSchema(df.pg) collect(df.pg) #createOrReplaceTempView(df.pg,"mtcars") #sql("select * from mtcars") sparkR.session.stop() 从代码可以看到,主要指定sparkPackages和read.jdbc命令,这段命令只要稍做修改,同样适用MySQL等支持JDBC连接的数据库。

Read More

Postgres.app让你在macOS下方便快捷地使用PostgreSQL

在macOS下使用Postgres,可以只需要3步, 下载 移到/Applications 双击 Postgres.app整合了多个实用的扩展和工具包, PostgreSQL 9.5.4 PostGIS 2.2.2 存储过程语言: PL/pgSQL, PL/Perl, PL/Python, and PLV8 (Javascript) 流行扩展, 包括 hstore, uuid-ossp, 及其它 一些方便实用的命令行工具 注意,如果你想使用MADLib,建议使用PostgreSQL 9.4版本。

Read More

将Excel导入PostgreSQL之PL/R版本

PostgreSQL官方支持PL/pgSQL,PL/Tcl,PL/Perl和PL/Python这几种过程语言。同时还支持一些第三方提供的过程语言,如PL/Java,PL/PHP,PL/Py,PL/R,PL/Ruby,PL/Scheme,PL/sh, PL/V8。 前文介绍了,R下实现读取Excel,并导入PostgreSQL,于是尝试把它封装成存储过程,失败。 网上遍寻答案,无果,后来偶然发现,R下还有另外一个PostgreSQL的读写包rpg,测试成功。 create or replace function xls2db(text,text, text) returns void as $$ library(readxl, quietly=TRUE) xls <- read_excel(arg1,col_names = TRUE, sheet=arg2) df =data.frame(xls) library(rpg) connect(dbname="steven", host="127.0.0.1", user="postgres") write_table(data.frame(df), arg3)…

Read More