フィルタ(車両年、モデル、メイク、ドライバ名など)がたくさんあります。選択されたすべてのフィルタは5〜10秒のSQLクエリーを生成し、5〜15秒の時間間隔で実行されます。私たちのユーザーがフィルターを非常に高速にマークしたとしましょう:何人かのドライバーを選んで、次にいくつかの車両、いくつかのデータ範囲など15秒以内に、ユーザーはサーバーに到達してSQLクエリを実行する数ダースのAJAX要求を送信し、より多くのクエリを取得し、各実行に時間がかかります。AJAXリクエストが中止されたときにRedshiftでSQLクエリを停止する代わりに
AJAXリクエストが中止されたときにクエリを停止するソリューションについて考えましたが、これは簡単な解決策ではありません。 AJAXリクエストが中止されたときにクエリを停止するよりも優れたソリューションですか?
解析データにはRedshiftを使用し、ユーザーデータにはPostgreSQLなどを使用します。 Googleには、結果をキャッシュする高水準のキャッシュがあります。 Redshiftには、dc2.largeインスタンスのノード数が16 であり、WLM構成では15個の同時クエリ も設定されています(クエリはキューに入れられません)。 テーブル、ソートキー、ディスティーズすべてをエンコードしています。私たちは数十のテーブルを持っていますが、約300Mのレコードと〜70 の列を持つすべてのトランザクションで大きな数字の があります。 AWSコンソールのRedshift Performanceタブでは、リーダ・ノードが高負荷時に99-100%、他のノードが約10-30%で動作することがわかります。
Redshiftクラスタとそのクエリ方法を最適化する必要があります。私は質問がstackoverflowの範囲外であると思う。詳細な分析が必要で、有能で経験豊富なredshiftエキスパートと1週間の作業が必要になるからだ。 「すべての選択されたフィルタはすべて、5〜15秒の時間間隔で実行されている5〜10個のSQLクエリを生成します」と言うと、間違った方法で赤方偏移に近づいた可能性があります。あなたがそれらのクエリをどのように見ているか、どのくらいのテーブルのデータなど、我々が手助けすることができる可能性がありますそれらのクエリを詳述したいと思っている場合。 –
ありがとうございます。私はちょうどポストを編集し、より多くの情報を追加しました。 – opax
opax、長い時間がかかるクエリの例を教えてください。どのくらいの時間がかかりますか? –