我正在从网站上抓取一系列产品并将它们存储在数据库中。目前,我正在使用 MySQL,有两个表:
products (product_id, site, product_description, etc)
e.g. (1234, "xyz.com", "nice product", etc)
product_history (product_id, scrape_timestamp)
e.g. (1234, 2012-01-02 10:53:09)
(1234, 2012-01-03 11:02:09)
这个模式意味着我可以得到过去任何时候列出的产品的快照。
我正在考虑迁移到 NoSQL,因为 (i) 我经常从不同的站点获取不同的字段,并且 (ii) 数据量将是每年大约 5-1000 万个产品。我可以看到两种构建模式的方法
选项 1:“嵌入式列表”
product_id, site, product_description, scrape_timestamp
1234, "xyz.com", "test product", {2012-01-02 10:53:09, 2012-01-03 11:02:09}
选项 2:“二级索引”
keep both tables as above with the relational schema
我认为选项 1 可以在允许二级索引的 MongoDB 中工作,而选项 2 可以在 MongoDB 或 DynamoDB 中工作。(我正在考虑这两个,因为我想要在云中托管的东西对我来说维护开销为零)。
我在这些方法的正确轨道上吗?哪个效果最好?我对 nosql 完全不熟悉,所以任何建议都将不胜感激。