Webサイトから一連の製品をスクレイピングし、それらをDBに保存しています。現在、私はMySQLを使用しており、次の2つのテーブルがあります。
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)データ量が年間約500万から1,000万の製品になるためです。スキーマを構造化する2つの方法を見ることができます
オプション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のいずれかで機能すると思います。(メンテナンスのオーバーヘッドがゼロのクラウドでホストされるものが必要なため、これら2つを検討しています)。
私はこれらのアプローチで正しい方向に進んでいますか?どちらが最適ですか?私はnosqlにまったく慣れていないので、アドバイスをいただければ幸いです。