あなたのデータは不変であると仮定するとサイズを与え、あなたはAmazon Redshiftを検討する必要があります。これは、ペタバイトサイズのレポートソリューション向けに書かれています。
Dynamoでは、私はいくつかの実行可能な設計を考えています。最初は複合ハッシュ/範囲キー(両方の文字列)を使用して1つのテーブルを使用できます。ハッシュキーは時系列名であり、範囲キーはISO8601文字列(アルファベット順は時系列順であるという心地よい性質を持つ)としてのタイムスタンプであり、各項目には特別な属性があります。価値'。これにより、時系列(hashKeyの等価性に関する問合せ)と時系列のサブセット(hashKeyの等価性およびrangeKey BETWEENの問合せに関する問合せ)からすべてを選択する能力が得られます。しかし、主な問題は「ホットスポット」問題です。内部的に、DynamoはデータをhashKeyでパーティション化し、すべてのパーティションにProvisionedReadCapacityを分散します。したがって、1秒間に1000KBの読み込みをすることはできますが、100個のパーティションがある場合は、各パーティションに1秒間に10KBしかなく、単一の時系列(単一のhashKey)からすべてのデータを読み取ると、1つのパーティションだけがヒットします。だから、1000KBの読み込みでは1秒に1MBが得られると思うかもしれませんが、もし10MBが保存されていれば、読んだほうがずっと長くなります。上側に
、DynamoDBのは非常に高いが高価なスケーリングに上限有します。あなたが望むのであれば、100,000のRead Capacity単位を支払うことができ、すべてのデータに対して1秒未満の応答時間があります。
もう一つの理論的なデザインは、別のテーブル内のすべての時系列を格納するだろうが、私はDynamoDBのは、テーブルの百万に拡大することを意図しているとは思わないので、これはおそらくノー行くではありません。
あなたはどこかの間でテーブル10の「データを読み取ることはほとんどない」、データは表1に入り「非常に読み」、および他のすべてのデータ10個のテーブルにまたがって時系列を試してみて広がる可能性があります。これにより、プロビジョニングされたスループット/パーティション調整ルールを「ゲーム」させることができますが、デザインの複雑さは非常に高くなります。全体として、それはおそらくそれの価値はない。新しい時系列はどこにありますか?あなたはどこにいるのでしょうか?あなたはどのように時系列を動かすのですか?
私は私自身の経験からの読み込みのDynamoDBのは、これらの種類のいくつかの内部「破裂」をサポートと思うし、それは私の番号がオフになっている可能だ、とあなたはadequeteパフォーマンスが得られます。しかし私の判断はRedshiftです。
あなたは何を使い終わったのですか? – Hugo
あなたはどのようなデザインを使い始めましたか? – Narayan