首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据准备:使用sql构建表的另一种方法是生成许多列

数据准备:使用sql构建表的另一种方法是生成许多列
EN

Stack Overflow用户
提问于 2016-05-31 21:49:12
回答 1查看 88关注 0票数 0

我正在尝试从我们公司的dwh-server获取数据,并对这些数据使用一些机器学习算法。

(Un)-fortunately我想要聚合的数据位于不同的表中。例如,我有人口统计客户信息,购买行为和收到的广告。

此外,广告分为两类,以及顾客可以购买的产品。我需要为广告上的每个客户构建一个映射到购买(取决于广告交付后的时间)。因此,我知道广告是否成功。

此外,为了构建机器学习算法,我需要在发送新广告之前分配购买和接收的广告,并以聚合形式汇总这些数据。无论是收到的广告还是购买的商品,都会受到季节性的影响。

因此,汇总数据(如净利润、购买数量等)可能是明智的。关于季节、前几个季节、前几个季节之前的季节等等。此外,回想一下,产品分为两类。并且聚合/列的数量翻了一番。

我想你可以感觉到这是怎么回事:

有没有一种有效的替代方法来从sql中获取数据以进行机器学习,从而避免大量的列?

当然,我可以推迟聚合并在本地机器上将步骤合并为R或python,但通常sql服务器应该要快得多。

目前,我的表应该包含大约400列,并且sql服务器上的查询在超过80分钟后还没有完成。

也许我应该添加以下内容:在最后的聚合步骤中,我使用了许多形式的语句:

代码语言:javascript
复制
SUM(IIF(PRODUCTTYPE = 1, NET, 0)) AS TYPE1NET
SUM(IIF(PRODUCTTYPE = 1 AND SEASON = 'WIN', NET, 0)) AS TYPE1NETWIN

我看不到一个地方可以让我早点计算出来。

EN

回答 1

Stack Overflow用户

发布于 2016-05-31 22:04:11

我处理了大量的数据,有时数据量非常大。转储数据并将其转换为ML算法可使用的形式是一个痛苦且通常很耗时的过程。

我尝试使用RDBMS功能来完成任务,但在大多数情况下都失败了。主要原因是:它们不适合任务(例如,它们不支持数据流)。

在我的实践中,最好的方法是将数据转储为CSV格式;提供给某个键值引擎(HBase也可以,我自己也使用了简单的基于Java的解决方案)。然后选择你最喜欢的编程语言,遍历一个集合,构造你的数据并保存到磁盘中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37547616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档