Currently browsing tag

PostgreSQL

ETL时遇到的坑之一

今天客户给的数据压缩包,先是在mac OSX上解压碰到乱码问题(已解决)(家中预览),然后发现一系列问题, 所有的数据开始都有等号(=) 部分数据结尾存在多余的逗号(,) 订单表字段不统一(部分文件缺少末尾字段,这也许是和上个问题有关系) 部分文件名命名错误,把订单明细命名成了订单 解决办法,使用sed批量去除头尾多余的字符(写了个简单的Windows批处理文件),并把订单和订单明细分到不同目录(原来有超过10个目录)

因为是csv,导入postgresql数据库,最早考虑的是copy命令,但尝试失败后(存在字段长度不统一的问题),决定使用R循环遍历文件来解决,先根据csv创建表(经过数据类型修改,否则存在类型不一致的报错)

数据导入完毕(忽略Order Detail的导入,这个比较顺利),接下来就是分析和建模了。

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

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

在Ubuntu下安装RPostgreSQL

在Windows上安装RPostgreSQL非常简单,

但同样都命令在Ubuntu(Linux)环境下就会遇到如下错误,

那是因为缺少PostgreSQL开发库,

P.S. R的PostgreSQL读写库有两个,一个是RPostgreSQL,另外一个是rpg,都依赖libpq-dev。

csv2table让PostgreSQL下导入csv不再那么麻烦

PostgreSQL下使用Copy命令导入csv,速度很快,但你得先分析CSV,创建表,有了csv2table,自动创建表并导入数据,一气呵成。

P.S. 其实对于大的CSV文件,有时我会用

这样的命令来取一部分进行分析 并用R读取并来导入(自动创建表),然后再用copy来快速导入。

PostgreSQL9.5 下安装MADlib

下载安装MADlib前的准备工作,安装编译环境和必要的组件:

下载、编译、安装MADlib:

部署MADlib到指定数据库

 

PostgreSQL 获得星期的名字

下面命令得到的是一个星期的第几天,the day of week(0~6, 0是Sunday)

如果想转成Monday或者Mon怎么办呢?下面这个从网上找来的函数就是来做这个转换的,

当然其实有个更简单的办法,

利用PostgreSQL的数组,一句话解决问题,如果需要,你可以使用完整的中文名或者英文名。

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

今天使用R批量导入Excel数据到PostgreSQL,总共25个excel,导完后被告知有2个excel是一模一样的,但我导入的时候没有记录表名和excel名直接的关系,如何查找是哪两个表重复了呢? 网上找到一段代码,可以获得指定库下所有表的行数,

结合我的表的前缀raw_2014_,轻松寻找到了2个行数一样的表,

 

SparkR连接PostgreSQL数据库

成功安装了SparkR后,让我们来尝试下如何从PostgreSQL读取数据,

从代码可以看到,主要指定sparkPackages和read.jdbc命令,这段命令只要稍做修改,同样适用MySQL等支持JDBC连接的数据库。

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版本。

将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,测试成功。