Databricks SQL は、 Databricks のレイクハウスプラットフォームにおける SQL のデータウェアハウス機能とファーストクラスのサポートを提供します。これにより、アナリストは従来のクラウドデータウェアハウスよりもわずかなコストで新たな知見を迅速に発見し、共有できるようになります。 このブログは、Databricks SQL に関するコンテンツシリーズの一部です。Databricks SQL の性能、使いやすさ、ガバナンスにおける重要な機能について解説します。以前のブログでは、Databricks SQL の強化された最新のユーザーエクスペリエンスについてご紹介しました。今回は、ユーザーがクエリとクエリの性能を理解するのに役立つ改善点について解説します。 実行時のボトルネックを特定してクエリを高速化 Databricks SQL は、自動的なクエリの高速化に優れています。事実、2021年11月に世界記録を更新しました。しかし、こういった技術革新にもかかわらず、クエリが予期せず遅いといった場合には、クエリの実行内容の確認が必要になることもあります。そこで、新機能である「クエリプロファイル」をご紹介できることを嬉しく思います。クエリプロファイルは、クエリの実行の詳細や、時間とコンピューティングリソースが費やされている場所を確認するための詳細なメトリクスを提供します。また、クエリプロファイルの UI は、以前にデータベースを使用したことのある管理者には、馴染みのあるものになっています。 クエリプロファイルには、次の主要な機能が含まれています。 クエリの実行と関連するメトリクスにおける主なコンポーネントの詳細化:タスクに費やされた時間、処理された行、メモリ消費量 複数のグラフィック表現:最も遅い処理を一目で確認できる要約されたツリービュー、クエリ演算子間のデータフローを理解するためのグラフビュー 結合の展開や全表スキャンといったクエリのよくある間違いを簡単に検出する機能 クエリプロファイルをダウンロードして共有する機能でコラボレーションを向上 クエリを高速化するための一般的な方法は、最初に最も時間を要しているクエリ演算子を特定することです。分散システムを扱っており、演算子を並列に実行できるため、演算子の正確な処理時間よりも、タスクに費やされた合計時間に重点を置きます。 TPC-H クエリのクエリプロファイルから、最もコストのかかるクエリ演算子を簡単に特定できます。図の例では、テーブルの lineitem のスキャンに最もコストがかかっており、2番目は別のテーブル(orders)のスキャンであることが分かります。 各クエリ演算子には、多数の統計情報が付属しています。スキャン演算子の場合、メトリクスにはファイルまたはデータの読み取り数、クラウドストレージの待機に費やされた時間、またはファイルの読み取りに費やされた時間が含まれます。その結果、どのテーブルを最適化する必要があるか、結合を改善できるかどうかといった質問に簡単に答えられます。 クエリ履歴の大掃除 さらに、クエリ履歴においても小さいながらも便利な改善を行い、発表できることを嬉しく思います。各クエリでアクセスできる詳細を強化したことにより、クエリのステータス、SQL ステートメント、処理時間の内訳、および最も重要な実行メトリクスの概要を確認できます。 上述した全ての機能は、SQL エディタとクエリ履歴の間を行き来をせずに、SQL エディタから直接利用できます。 クエリパフォーマンスのベストプラクティス クエリプロファイルは、現在、Databricks SQL で利用可能です。無料トライアルに登録することで、Databricks SQL を今すぐ使い始めることができます。Databricks SQL でレイクハウスの性能を最大化する方法については、こちらの Web セミナーをご覧ください。この Web セミナーには、デモ、Q&A、現場で学んだ教訓が含まれており、レイクハウスプラットフォームの全ての機能を活用する方法を詳しく知ることが可能です。 この Web セミナーでは、次のことを学習します。 ビジネスに不可欠なデータをレイクハウスに迅速かつ簡単に取り込み、最適化された Delta テーブルでデータを継続的に精査し、最高のパフォーマンスを実現する。 Databricks SQL のネイティブなファーストクラスの SQL 開発エクスペリエンスを使用してクエリを作成、共有、再利用し、生産を最大化する。 操作レベルを詳細化して、クエリの実行に対する完全な透明性と可視性を得る。 Web セミナーは、こちらからご登録ください。