HOW TO TD(User Engagement)Treasure Data User Engagement

Prestoのresult_output_redirect オプションについて

ホーム » Prestoのresult_output_redirect オプションについて

データマネジメントチームの日下部 佑起です。
本記事では、Treasure DataのPrestoでのオプションで提供しておりましたresult_output_redirectのオプションについて変更がありましたので、紹介をしていきます。

result_output_redirectについて

Prestoクエリの結果データサイズが大きくなる場合に、パフォーマンスの向上やクエリ結果サイズ上限エラー回避のためのワークアラウンドとしてresult_output_redirectをマジックコメントで記載するオプションを提供しておりました。

result_output_redirectの仕様

result_output_redirectの仕様についてはこちらのドキュメントをご確認ください。

    どのようなPrestoクエリに効果的か以下に記載致します。

  • SELECT * FROM table のようなシンプルなクエリを巨大なテーブルに実行した場合に特に効果が出やすい

ただ、上記のようなシンプルなクエリーは推奨していないため、以下の弊社ブログの「SQLパフォーマンスチューニングのいろは」をご確認いただき、遅いクエリの場合はチューニングをすることをおすすめ致します。

特にSELECT * FROM tableはすべてのカラムとすべての行を取得するクエリですので、テーブルに何が入っているか確認する際はLIMIT 100などLIMIT句を最後につけて、行数を少なくして実行することを強く推奨しております。

result_output_redirectの常時有効化について

これまではクエリ実行者がマジックコメントで記載することで有効化されておりましたが、この機能をデフォルトですべてのPrestoクエリに対して有効化することとなりました。

常時有効化とした理由について

多くのPrestoクエリにおいてパフォーマンスの向上に効果があり、処理効率の改善に伴うPrestoクラスタの安定化にも効果があると判断し、有効化することとなりました。

内部のテスト環境ではPrestoクエリの中で100MB以上のクエリに対して、95%にパフォーマンス向上効果が見られました。

本番環境に置きましては、Presto クエリの 20% が result_output_redirect を使用することで、顧客全体のクエリ処理時間が 25%~30% 短縮されました。

以下USリージョンと東京リージョンでの傾向をグラフに示しております。
青い棒グラフがresult_output_redirect を使用したジョブ数となっており、黄色の折れ線グラフがクエリの実行時間となっております。
result_output_redirect を使用したジョブ数が増えることで、クエリの実行時間が減っていることがわかると思います。

▼USリージョン

USリージョン

▼東京リージョン

東京リージョン

スケジュールについて

2021年11月現在においてすべての環境にて有効化となっております。

必要なアクションについて

本オプションは、Prestoクエリの結果データセットの生成プロセスを簡略化するものであり、クエリ結果自体に変更や影響のあるものではありません。
そのため、お客様の方で必要なアクションは特にございません。

result_output_redirectが使用できない場合について

以下の条件に合致するPrestoクエリにおいてはresult_output_redirectのオプションはご利用になれません。
条件に合致した場合は、result_output_redirectオプションは自動的に無効化されます。
Prestoクエリがエラーになることはございません。

  • ORDER BYを含むPrestoクエリ(WINDOW関数など並び替えを伴うクエリを含む)
  • カラム名に大文字を指定されているPrestoクエリ
  • カラム名に重複があるPrestoクエリ
  • CREATE TABLE文もしくはINSERT文のPrestoクエリ

result_output_redirectを無効化する場合

ご自身でresult_output_redirectオプションを無効化されたい場合は、以下のマジックコメントをPrestoクエリに記載ください。
--set session result_output_redirect= ‘false’

result_output_redirectについてご不明点やご質問等ございましたら弊社のサポートチームまでご連絡ください。

日下部 佑起

Data Managementチーム

2010年にデータ分析専業のSIerに入社し、データ活用に特化したSEとして、BI(Business Intelligence)ベンダー選定を始め、要件定義からデータモデル・テーブルの設計およびシステム設計、開発、運用まで一貫した業務を約10年経験。製薬業界、食品業界、小売業界、医療業界、不動産業界等幅広いクライアントに対して、BI・ETLの導入・移行や、統合分析基盤の構築、経営ダッシュボード作成などの業務を担当。2020年よりトレジャーデータに参画。データマネジメントチームにて、データ基盤や施策のデータ集計など設計・開発・運用支援を行う。

得意領域 : Workflow、SQL、ETL、RDBMS、BI選定・構築、DWH構築

Back to top button