用户数据库的“Hadoop”格式:在线广告

数据挖掘 hbase
2022-02-22 00:57:59

我想知道是否有人可以为我指出合适的数据库格式来构建用户数据库:

基本上我正在收集印象数据的日志,我想编译一个用户数据库

哪些网站用户访问,国家/性别/..?和其他分类,目的是 a) 进行搜索:给我所有访问法国游戏网站的用户... b) 机器学习:例如按用户访问的网站对用户进行聚类

所以我有兴趣存储有关数百万用户的信息

有索引?用户、网站、地理位置

并且想法是这些数据将不断更新(例如,每晚更新访问的新站点的用户数据库等)

什么是合适的数据库系统。有人可以推荐合适的阅读材料吗?我在想象 Hbase 可能适合...

2个回答

存储用户配置文件

如果您只想存储所有用户配置文件......只需将它们保存到普通RDBMS中。假设一个用户配置文件占用 10Kb 的存储空间,那么每百万用户只需要约 9.5Gb,这非常少,并且为您提供了成熟关系数据库的所有优势。

仅当您有很多用户(例如,> 1B)或数据非常稀疏(大多数列为空)时,才有意义使用HBase 。但不要指望它会像旧的 SQL 数据库那样方便。

在广告中,尤其是在实时竞价中,需要非常快速地检索用户资料。Aerospike在这项任务中变得越来越流行。

分析数据切片

业务日志的常见用途是分析特定数据切片,例如在 2014 年 11 月 1 日至 14 日访问“游戏”类别网站的法国用户数量。有效管理此类数据的标准方法是将它们组织成数据立方体您不会获得个人记录(例如用户),但您会非常快速地获得汇总统计信息。

这样的多维数据集可能有许多不同的维度,但在 99% 的情况下,它们具有用于分区的日期字段这很有意义,因为几乎每个查询都包含从中获取数据的时间段。

至于软件,Vertica非常适合此类聚合。来自 Hadoop 世界的更便宜* 的解决方案是Impala,它也很棒。

(* - 如果您只计算许可证价格)

机器学习

这真的取决于具体的任务和正在使用的 ML 工具包。对于实时竞价,您可能希望快速访问用户配置文件向量,并且可能更喜欢 Aerospike。对于在线学习, Spark Streaming可以用作数据源,根本不使用存储。对于离线机器学习,有来自同一个 Spark 项目的优秀MLlib,它适用于各种来源。

您存储和分析的数据类型在很大程度上取决于您可以收集的数据类型。因此,在不知道您的“印象数据”是什么样子的情况下,很难建议如何对其进行标准化和存储。

此外,您存储数据的方式还取决于您希望如何分析它。例如,如果您要执行基本分析,例如页面查看次数、用户每次会话访问的页面数量等 (SQL)。. . 如果您想基于流量模式(图形数据库)构建建议,则需要以不同的方式存储数据。

请编辑您的问题以包含更多详细信息。抱歉,我不能简单地发表评论。