Presto Strict t t t t t t t t - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Presto Strict t t t t t t t t

状況によっては、クエリの実行時間が長くなるとコストが高くなり、Amazon EMR がより多くのクラスターリソースを使用する原因となります。これにより、クラスター上の他のワークロードからリソースが奪われます。Amazon EMR バージョン 6.8 以降では、以下のタイプの長時間実行クエリを拒否または警告する厳密モード機能を使用できます。

  • 分割された列に述語がないクエリを実行すると、大量のデータがテーブルスキャンされる

  • 2 つの大きなテーブルをクロスジョインするクエリ

  • 多数の行を無制限にソートするクエリ

Presto がクエリプランを完全に最適化すると、strict モードが実行されます。strict モードをクエリのニーズに合わせて使用およびカスタマイズするには、次の方法で Presto を設定できます。

ストリクトモードのプレスト構成
設定 説明 デフォルト
strict-mode-enabled strict モードのオンとオフを切り替えます。値がの場合、stricttrue モードがオンになっていることを示します。 false
strict-mode-fail-query strict モードで長時間実行される可能性のあるクエリが検出された場合は、クエリを拒否します。もしfalse、Amazon EMR が警告を出すだけです。 false
strict-mode-restrictions Strict t t t t t t t (Strict t t t t t) がオンになっているときに適用 厳密モードでは、MANDATORY_PARTITION_PREDICATE、DISALLOW_CROSS_JOIN、LIMITED_SORT という制限がサポートされます。

必須パーティション述語、クロスジョイン禁止、限定ソート

strict モードを試してみるには、これらの設定をオーバーライドするか、Presto クライアントを使用するときにセッションプロパティとして設定できます。

クラスター作成時に構成を設定するにはAWS Management Console
  1. [クラスターを作成] を選択し、Amazon EMR バージョン 6.8.0 を選択し、[Presto] または [Trino] を選択します。詳細については、「PrestoDB と Trino のインストール」を参照してください。

  2. strict モードの設定プロパティを直接指定するか、JSON ファイルを Amazon S3 にアップロードします。必要に応じて、AWS Glue Data Catalogメタストア用のを選択します。VPC、サブネット、ブートストラップアクション、key pair、セキュリティグループを指定します。[クラスターの作成] を選択してクラスターを作成します。

  3. クラスターのプライマリノードにログインし、presto-cliまたはを実行しますtrino-cli

  4. クエリを提出してください。Strict モードは各クエリを検証し、実行時間が長いかどうかを判断します。strict-mode-fail-query設定に応じて、Amazon EMR はクエリを拒否するか、警告を出します。

  5. クエリが終了したら、クラスターを終了し、リソースを削除します。

実行中のクラスタに設定を設定するにはAWS CLI
  1. AWS CLIを使用してクラスタのプライマリノードにログインし、presto-cliまたはを実行しますtrino-cli

  2. 次のコマンドを希望の値で実行します。

    set session strict_mode_enabled = true; set session strict_mode_fail_query = false; set session strict_mode_restrictions = 'DISALLOW_CROSS_JOIN,LIMITED_SORT';

考慮事項

Strict t t t t t t は、次の点を考慮してください。

  • 厳密モードでは、リソースをあまり消費しない実行時間の短いクエリを拒否できる場合があります。たとえば、小さなテーブルに対するクエリでは、動的フィルタリングを適用したり、内部結合をクロス結合に置き換えたりしません。これにより、クエリで必須のパーティション述語が使用されたり、クロスジョインが禁止されたりする可能性があります。この場合、strict モードはクエリを拒否します。

  • 厳密なモードチェックは、SELECT、INSERT、SELECT としてテーブルを作成、EXPLAIN ANALYZE の各クエリタイプにのみ適用されます。

  • 必須パーティション述語の制限は、Hive コネクタでのみ使用できます。