存储用户配置文件
如果您只想存储所有用户配置文件......只需将它们保存到普通RDBMS中。假设一个用户配置文件占用 10Kb 的存储空间,那么每百万用户只需要约 9.5Gb,这非常少,并且为您提供了成熟关系数据库的所有优势。
仅当您有很多用户(例如,> 1B)或数据非常稀疏(大多数列为空)时,才有意义使用HBase 。但不要指望它会像旧的 SQL 数据库那样方便。
在广告中,尤其是在实时竞价中,需要非常快速地检索用户资料。Aerospike在这项任务中变得越来越流行。
分析数据切片
业务日志的常见用途是分析特定数据切片,例如在 2014 年 11 月 1 日至 14 日访问“游戏”类别网站的法国用户数量。有效管理此类数据的标准方法是将它们组织成数据立方体。您不会获得个人记录(例如用户),但您会非常快速地获得汇总统计信息。
这样的多维数据集可能有许多不同的维度,但在 99% 的情况下,它们具有用于分区的日期字段。这很有意义,因为几乎每个查询都包含从中获取数据的时间段。
至于软件,Vertica非常适合此类聚合。来自 Hadoop 世界的更便宜* 的解决方案是Impala,它也很棒。
(* - 如果您只计算许可证价格)
机器学习
这真的取决于具体的任务和正在使用的 ML 工具包。对于实时竞价,您可能希望快速访问用户配置文件向量,并且可能更喜欢 Aerospike。对于在线学习, Spark Streaming可以用作数据源,根本不使用存储。对于离线机器学习,有来自同一个 Spark 项目的优秀MLlib,它适用于各种来源。