Month: September 2016

R语言关联规则压力测试-arules

前文说到如何用R与PostgreSQL进行数据挖掘之关联规则, 下面使用真实数据使用Apriori算法做个压力测试(系统配置,Windows 2008 64-bit,SSD,128G内存),620items, 163763 transactions。mini confidence和mini support均选择0.00001(选择这么低并没有意义),minlen=2,maxlen=5,输出规则高达3亿5千万之多,现实rule占用16.6G。 Apriori Parameter specification: confidence minval smax arem aval originalSupport support minlen maxlen target ext 1e-05 0.1 1 none FALSE TRUE 1e-05 2…

Read More

如何用R与PostgreSQL进行数据挖掘之关联规则

前面用PostgreSQL 函数实现了一个简易版的关联规则算法,今天尝试下R语言的关联规则包“arules”中的apriori算法。 连接数据库并读取数据 library(RPostgreSQL) drv <- dbDriver("PostgreSQL") con <- dbConnect(drv, user='postgres', dbname='steven', password='', host='127.0.0.1') rs <- dbSendQuery(con,"select customer_id,brand from trans;") results <- fetch(rs,n=-1) trans表的结构和数据示例如下, CREATE TABLE public.maoye ( customer_id text…

Read More

postgres_fdw-PostgreSQL外部数据封装器的使用

我的PostgreSQL数据库在Windows上,MADlib不支持,于是使用Docker部署了个Linux版本的PostgreSQL,并且安装了MADlib插件,利用postgres_fdw就可以方便分析Windows下的数据库进行分析了。 postgres_fdw模块提供外部数据封装器的功能,PostgreSQL通过 它可以访问存储在外部的 PostgreSQL服务器上的数据。 本模块提供的功能不但涵盖老版本中dblink模块实现的功能, 而且postgres_fdw提供更加透明和符合标准的语法来访问远程表,并在许多情况下 提供更好的性能。 使用postgres_fdw模块做远程访问的准备: 使用CREATE EXTENSION语句安装postgres_fdw. CREATE EXTENSION if not exists postgres_fdw;   使用CREATE SERVER语句,为每个需要连接的远程数据库 创建一个外部服务器对象。指定除了user和password 以外的连接信息作为服务器对象的选项。 CREATE SERVER foreign_server_99 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host…

Read More

PostgreSQL-关联规则的纯SQL实现

该SQL是基于Apriori算法的一个尝试(代码比较粗糙),并且只实现了一推一的情况,对照MadLib的结果做了验证,没有问题。 CREATE OR REPLACE FUNCTION assoc.rules() RETURNS void LANGUAGE plpgsql AS $function$ begin /* create view assoc.trans as select * from trans where purchase_date between '2015-08-01' and '2016-07-31'; */ create…

Read More

SAS 连PostgreSQL的几种方法

SAS 9.4之前,需要ODBC的方式连接PostgreSQL(记得提前配置好DSN),这些方法不仅仅实用于PostgreSQL,很多常用的数据库都可以通过ODBC或者直接连接的方式访问。 方法一,ODBC里执行PostgreSQL的SQL语句 PROC SQL; CONNECT TO ODBC(DSN="ml"); /* con-Name : is the ODBC connection name. Connection should be pre established */ CREATE TABLE temp_sas AS SELECT * FROM CONNECTION…

Read More

实用SAS 代码片段

SAS表的Name是类似_COL0,_COL1,_COL2这样的字段,Label是中文名,直接导出到PostgreSQL的话,字段实用的是Name, NOTE: SAS 变量标签、格式和长度并未写入 DBMS 表。 这时候需要做rename,代码, libname sas"X:\job\xxx\data"; libname psql odbc datasrc = 'PostGreSQL30' schema = alitrack PRESERVE_TAB_NAMES=yes; *sas.Member的表结构信息输出到sas.Member_label proc contents data=sas.Member out=sas.Member_label noprint; run; *拼接rename字段 proc sql; select…

Read More

图解SQL关联查询

SQL 的连接(JOIN)语句将数据库中的两个或多个表组合起来. 由"连接"生成的集合, 可以被保存为表, 或者当成表来使用. JOIN 语句的含义是把两张表的属性通过它们的值组合在一起. 基于 ANSI 标准的 SQL 列出了五种 JOIN 方式: 内连接(INNER), 全外连接(FULL OUTER), 左外连接(LEFT OUTER), 右外连接(RIGHT OUTER)和交叉连接(CROSS). 在特定的情况下, 一张表(基本表, 视图, 或连接表)可以和自身进行连接, 成为自连接(self-join). -- 创建两个测试用表 create table…

Read More

VirtualBox-如何禁止主机和虚拟机之间同步时间

有时候需要在虚拟机里修改时间,但修改的时候,会自动改回来,因为VirtualBox默认会把Host的时间同步给Guest,那有没有办法禁止呢?经过一番寻找,找到了答案, 关闭时间同步: vboxmanage setextradata "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "1" 开启时间同步: vboxmanage setextradata "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "0" note: 是虚拟机的名字.  

Read More