2017-04-12 8 views
0

私は、複数のモバイルアプリケーションから送信されたデータ(AmazonのRedshiftクラスタに格納されている)に基づいてデータを挿入するRESTful APIをGoで構築したいと考えています。おそらく、毎秒何千もの要求を受信する可能性があります。大量のデータをRedshiftに挿入する

私が読んだことから、Redshiftは遅い挿入速度を示します。 これは、私がinsertを最初に実行するdynamodbやs3のような中間データベースを使用するように勧められた人はほとんどいません。次に、2回目に、データをRedshiftにインポートします。

なぜデータが既にデータベースに保存されているので、Redshiftを使用する必要があるのでしょうか?私は別のことを進めることができると思いますか?

また、キューに書き込んでデータを赤方偏移に徐々に挿入するという単純な解決策も考えましたが、挿入速度が速すぎてキューを大きくすることはできません入ってくるデータ。

ご協力いただきありがとうございます。 :-)このような

+0

S3はストレージサービスであり、リレーショナルデータベースではありません。 – Nathan

答えて

2

アドバイスは通常、オフ話題StackOverflowのためですが、...

アマゾン赤方偏移は、SQLインターフェースを備えた超並列処理(MPP)データベースです。 TBやPBのデータを照会するのに使用でき、非常に効率的です。

「なぜ私はRedshiftを使用する必要がありますか?」という質問には、伝統的なデータベースで照会の要件を満たすことができない場合、答えはです。あなたのクエリーに正常なデータベースをうまく使うことができれば、Redshiftを使う本当の理由はありません。

ただし、クエリでRedshiftが必要な場合は、引き続き使用する必要があります。 Redshiftの設計では、データを挿入する最も効率的な方法は、Amazon S3からCOPYコマンドを経由してロードすることです。 INSERTステートメント(たとえば、数百または数千)ごとに多くの行を挿入しない限り、通常のINSERTステートメントでデータを挿入するのは非効率です。

ので、聞いていくつかの質問:

  • は、私は私のクエリのアマゾン赤方偏移の能力が必要です、または従来のデータベースで十分ですか?
  • にデータをロードする必要がありますか、バッチで読み込むだけで十分ですか?
  • バッチを使用する場合、バッチを読み込む頻度はどのくらいですか?毎時または毎日行うことはできますか、またはデータが到着してから数分以内にする必要がありますか?

Amazon Kinesis Firehoseを使用することもできます。Amazon Kinesis Firehoseは、一連のデータを受け入れ、自動的にAmazon Redshiftデータベースに挿入することができます。

関連する問題