假设我正在构建一个像Uber这样的应用程序,我想根据用户的过去历史、当前的经度和时间/日期来预测用户最可能的目的地。
这是提议的建筑-
假设我有一个预先训练过的模型作为一项服务。我挣扎的部分是,如何从RiderID实时获取数据库中的用户特性,以供预测服务(XGBoost模型)使用?考虑到我有1M+用户和乘车,我猜在SQL数据库中查找将花费太长时间。
提前感谢!
发布于 2018-06-01 20:53:32
我认为,考虑到对模型进行足够的推广所付出的努力,您模型的返回很可能是不值得的。
最好是存储用户当前位置并查询最可能的目的地。或者简单地看一下那个地方所有流行的旅游目的地。具有适当索引的数据库应该能够处理这一问题。
发布于 2019-08-31 11:21:44
听起来你在寻找一个快速且水平可伸缩的数据库。我建议您使用列族数据库而不是关系数据库来存储此类数据。我们在类似的用例中使用Google BigTable (BT)。在一个带有SSD磁盘的3节点BT集群上,我们有超过300米的记录,这些记录由键以6ms @99百分位数的速度获取,每秒加载1000个请求。如果负载增加,则只需在运行到群集时添加节点或删除节点即可。像卡桑德拉这样的开源替代物在我们的经验中甚至更快。在您的情况下,该数据库密钥将是RiderID。
发布于 2021-07-27 10:08:01
RiderID可以散列,因此是固定时间的查找.
这些特性可以脱机处理,并作为每个RiderID的属性存储。
大多数关系数据库管理系统(RDBMS)应该足够快。如果RDBMS太慢,那么尝试像Redis这样的键值存储。
https://datascience.stackexchange.com/questions/28000
复制