• 👍 小项目 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 吧。