次の方法で共有


Azure Synapse Analytics ワークロードの重要度

この記事では、ワークロードの重要度が、Azure Synapse での専用 SQL プール要求の実行順序にどのように影響するかを説明します。

重要度

ビジネス ニーズでは、データ ウェアハウスワークロードが他のワークロードよりも重要である必要があります。 会計期間が終了する前にミッション クリティカルな売上データが読み込まれるシナリオを考えてみましょう。 気象データなどの他のソースのデータ読み込みには、厳密な SLA はありません。 売上データを読み込む要求の重要度を高く設定し、気象データを読み込む要求に重要度を低く設定すると、売上データの読み込みがリソースへの最初のアクセスを取得し、より迅速に完了します。

重要度レベル

重要度のレベルには、low、below_normal、normal、above_normal、high の 5 つがあります。 重要度が設定されない要求には、既定のレベルである normal が割り当てられます。 同じ重要度レベルが設定された要求については、現時点で存在しているスケジュール動作と同じになります。

重要度のシナリオ

前に説明した売上データと気象データに関する基本的な重要度シナリオ以外にも、ワークロードの重要度がデータ処理とクエリのニーズを満たすのに役立つシナリオもあります。

ロック

読み取りおよび書き込みアクティビティのロックへのアクセスは、自然な競合の 1 つの領域です。 パーティション切り替えRENAME OBJECT などのアクティビティには、昇格されたロックが必要です。 ワークロードの重要度がないと、Azure Synapse の専用 SQL プールによってスループットが最適化されます。 スループットの最適化とは、実行中の要求とキューに登録された要求が同じロックニーズを持ち、リソースが使用可能な場合、キューに登録された要求は、要求キューに到着したロックニーズが高い要求をバイパスできることを意味します。 より高いロック ニーズを持つ要求にワークロードの重要度が適用されると、 重要度が高い要求は、重要度が低い要求の前に実行されます。

次の例を確認してください。

  • Q1 は、SalesFact からデータをアクティブに実行して選択しています。
  • Q2 は、Q1 が完了するのを待ってキューに入れられます。 午前9時に送信され、新しいデータをSalesFactにパーティション切り替えしようとしています。
  • Q3 は午前 9 時 1 分に送信され、SalesFact からデータを選択したいと考えています。

Q2 と Q3 の重要度が同じで、Q1 がまだ実行されている場合は、Q3 の実行が開始されます。 Q2 は引き続き SalesFact の排他ロックを待機します。 Q2 の重要度が Q3 よりも高い場合、Q3 は Q2 が完了するまで待機してから実行を開始します。

一様でない要求

重要度がクエリ要求を満たすのに役立つもう 1 つのシナリオは、異なるリソース クラスの要求が送信される場合です。 前述のように、同じ重要度の下で、Azure Synapse の専用 SQL プールによってスループットが最適化されます。 混合サイズ要求 (smallrc や mediumrc など) がキューに入っている場合、専用 SQL プールは、使用可能なリソース内に収まる最も早く到着する要求を選択します。 ワークロードの重要度が適用されている場合、最も重要度の高い要求が次にスケジュールされます。

DW500c の次の例を考えてみましょう。

  • Q1、Q2、Q3、および Q4 では smallrc クエリが実行されています。
  • Q5 は、mediumrc リソース クラスと共に午前 9 時に送信されます。
  • Q6 は、午前 9 時 1 分に smallrc リソース クラスで送信されます。

Q5 は mediumrc であるため、2 つのコンカレンシー スロットが必要です。 Q5 では、実行中のクエリのうち 2 つが完了するまで待機する必要があります。 ただし、実行中のクエリ (Q1-Q4) のいずれかが完了すると、クエリを実行するためのリソースが存在するため、Q6 は直ちにスケジュールされます。 Q5 の重要度が Q6 よりも高い場合、Q6 は Q5 が実行されるまで待機してから実行を開始します。

次のステップ