2016-07-01 8 views
1

データベースをSQL Server 2012からAmazon Redshiftに移行しています。Redshiftで終了するクエリ

アプリケーションのフロントエンドは、Redshiftでクエリを実行するMicroStrategy(MSTR)で開発されています。

アプリケーションはProduction(SQL Server 2012上)で正常に動作していますが、私たちはPoC Environment on Redshiftで奇妙な問題に遭遇しました。

MSTRでダッシュボードを開始したとき、ダッシュボードからのクエリがRedshiftにヒットし、問題なく正常に完了します。

しかし、すべてのダッシュボードを同時に実行してアプリケーションをテストすると、その特定のダッシュボードのクエリはRedshiftで終了します。データベースは何のエラーメッセージもスローしません。そのため、なぜクエリが終了しているのかをトラブルシューティングできません。

誰でもこの問題を解決する方法を提案してください。

は、問題は、あなたがWLM configurationを使用してクエリを送信しているキューにいくつかのタイムアウトを持っていることであるかもしれないあなたに

答えて

2

ありがとうございます。

Redshiftは、分析クエリに最適化されるように、他のDBとは異なる設計になっています。そのため、OLTP DBの場合と同様に、クエリ結果はキャッシュされません。もう1つの違いは、あらかじめ定義された並行レベル(WLM-http://docs.aws.amazon.com/redshift/latest/mgmt/workload-mgmt-config.htmlの一部でもあります)があることです。各同時実行スロットには、大きなクエリを素早く完了するために割り当てられたリソースがありますが、実行可能な同時クエリの数が制限されています。デフォルトの構成は5で、最大50まで増やすことができます。推奨値は15-20以下に増やすことです.50を指定すると、各クエリがクラスタリソースの2%だけを取得することになります。 20%(5人)または5%(20人)。

これらの2つの違いの組み合わせは、多数のダッシュボードを接続している場合、それぞれがRedshiftにクエリーを送信し、リソースを競合して(各クエリーが何度も実行されることなく)タイムアウトするか、インタラクティブなダッシュボードでは遅いです。

上記の前提条件でRedshiftにクエリを送信しているMicroStrategy用のRedshift最適化ドライバを使用していることを確認してください。

また、ダッシュボードに必要な集計データを使用して、ダッシュボードとRedshiftの間にRDSを配置し、その集計データでインメモリキャッシュと並行処理を使用することもできます。 Redshiftにいくつかのクエリ(集計されたダッシュボードのもの)をPostgreSQLに送るのに役立つ、pgバウンサsee hereで実装できる興味深いパターンを見ることができます。

関連する問題