• 👍 小项目Postgres应该是完全够用的

    不过我觉得你说的有点问题,拿京东类比是非常有误导性的。

    SKU只是库存,类比到例子中的Movie,这个量不会很大,但是用户评分这个行为会超级大。

    类比到通用的推荐概念, user behavior item,SKU只是反应了item数,ItemCF的基础逻辑就是Item不会很多,但是User可能会超级多,User的操作behavior也会超级多。

    Hbase、Hive这种面向大数据存储或数据仓库通常意义上面向的数据量都会在TB以上的情景。Postgres单表在几亿时,已经比较吃力了。

    总价下我的观点:

    1. 京东的体量不可能是用Postgres来解决类似问题的,这里面最大的量不是Item,而是Behavior
    2. 对于小项目(比如数据量在10T以下,每日产生数据大概几千万条)可以通过Postgres时序数据库timescaledb来存储;对于更大的项目,还是老老实实研究Hadoop这一套,毕竟入门难度偏高,在一个相对较小的数据量时入门会更容易,也利于自己打磨
    3. Spark 主要是解决分布式计算,Hbase、Hive、Elasticsearch等都提供了Spark RDD支持。用Spark分布式更容易些,自己写一套分布式算法相对还是更困难的。

    所以,如果是Demo,我觉得可以直接用Postgres来玩儿,如果是企业级,假设你的数据量很小,推荐是无意义的。如果数据量很大。还是乖乖研究Hadoop吧。