Currently browsing tag

ETL

PostgreSQL下查找与去除重复数据

有时候难免会导入重复的数据(一行所有的列都重复),问题是如何找出来呢? 假设有表 tbl,结构如下,

如何判断是否存在id, href,title和image都重复的数据呢(这种情况一般发生在导入重复)?

如何判断是否存在重复href,title和image, 但id不同的数据呢(这种一般是OLTP的新增重复)?

接下来就是这样的数据如何只保留最早插入的数据,而删除后面重复插入的数据?

    reference, https://wiki.postgresql.org/wiki/Deleting_duplicates

ETL时遇到的坑之一

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

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

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

DBeaver连接MS SQL Server MDF 数据库

依赖LocalDB,用R读取MS SQLServer 的MDF文件碰到了一个问题,有些字段类型被改变了,如果要保持字段类型,得事先知道每个字段的类型,并确定是否转换(as.is),今天尝试使用MS SQL Server Express和DBeaver来管理数据库。 安装并配置SSCM(SQL Server Configuration Manager), DBeaver上配置MS SQL Server连接, Attach 数据库,

Detach 数据库,

 

ReadStat: 免费 SAS, Stata, SPSS,RData,CSV之间互转工具

ReadStat是一款开源,跨平台的多格式数据互转工具(命令行程序),支持格式如下, SAS: SAS7BDAT and SAS7BCAT(读,写) Stata: DTA(读,写) SPSS: POR and SAV(读,写) R:rdata and RDS(读,写) CSV(写) XLSX(写) 下面是我在Macbook Pro下使用MXE编译的,偷懒,没有集成librdata和libxlsxwriter,欢迎下载试用(内存和CPU耗用非常小,速度还不错)。 readstat Windows64位版本 readstat win32版本 …

使用R将Excel导入到PostgreSQL

R读取Excel的方法有很多,这个我将另外一篇来详细介绍,经过一翻实验,最喜欢的还是readxl, 它同时支持XLS和XLSX格式。 对于这段代码,需要注意的地方是,如果excel是中文,不执行

Windows下,数据库保存的将是乱码,macOS下不存在这个问题,Linux下没有测试。 而

的含义是指定schema和表名,如果是public,可以只给表名就可以了。 library(readxl, quietly=TRUE) df <- read_excel(“d:/my.xlsx”,col_names = TRUE) library(RPostgreSQL) drv <- dbDriver(“PostgreSQL”) con <- dbConnect(drv, …