Databricks でコストの最適化と信頼性のバランスを賢く実現
Databricks データ インテリジェンス プラットフォームは比類のない柔軟性を提供し、ユーザーはほぼ瞬時に水平方向にスケーラブルなコンピュート リソースにアクセスできます。 この作成の容易さは、適切に管理されない場合、制御不能なクラウド コストにつながる可能性があります。
オブザーバビリティを実装してコストを追跡し、チャージバック
Databricks でコストを追跡およびチャージバックするために可観測性を効果的に使用する方法
複雑な技術エコシステムを扱う場合、未知の要素を積極的に理解することが、プラットフォームの安定性を維持し、コストを管理するための鍵となります。 オブザーバビリティ(可観測性)は、システムが生成するデータに基づいてシステムを分析および最適化する方法を提供します。 これは、既知の問題を追跡するのではなく、新しいパターンを特定することに重点を置くモニタリングとは異なります。
Databricks のコスト追跡の主な機能
タグ:タグを使用して、リソースと料金を分類します。 これにより、よりきめ細かなコスト配分が可能になります。
システムテーブル:システムテーブルを活用して、コストの追跡とチャージバックを自動化します。
クラウドネイティブ コスト モニタリング ツール:これらのツールを使用して、すべてのリソースにわたるコストを調査します。
システムテーブルとは何か、どのように使用するのか
Databricks は、システム テーブルを使用して優れた可観測性機能を提供します。システム テーブルは、システム カタログにある顧客アカウントの運用データの Databricks がホストする分析ストアです。 これらは、アカウント全体の履歴の観測可能性を提供し、プラットフォーム テレメトリに関するユーザーフレンドリーな表形式の情報を 含みます。 課金使用状況データなどの重要な知見はシステムテーブルで確認でき (現在、これにはDBUの定価のみが含まれます)、各使用状況レコードはリソースの課金利用率の 1 時間ごとの集計を表します。
システムテーブルを有効にする方法
システムテーブルはUnity Catalogによって管理されており、アクセスするにはUnity Catalog対応のワークスペースが必要です。 これらにはすべてのワークスペースのデータが含まれますが、有効なワークスペースからのみクエリできます。 システムテーブルの有効化はスキーマ レベルで行われます。スキーマを有効にすると、そのスキーマ内のすべてのテーブルが有効になります。 管理者はAPI を使用して新しいスキーマを手動で有効にする必要があります。
Databricks タグとは何か、どのように使用するか
Databricks のタグ付けを使用すると、リソースに属性 (キーと値のペア) を適用して、整理、検索、管理を効率化できます。 コストとチャージバックを追跡するために、チームはDatabricks のジョブとコンピュート (クラスター、SQLウェアハウス) にタグを付けることができます。これにより、使用状況やコストを追跡し、それらを特定のチームまたはユニットに帰属させることができます。
タグの適用方法
使用状況とコストを追跡するために、次の Databricks リソースにタグを適用できます。
- Databricks コンピュート
- Databricks ジョブ
これらのタグを適用すると、課金利用システムテーブルを使用して詳細なコスト分析を実行できます。
クラウドネイティブツールを使用してコストを特定する方法
コストを監視し、 Databricks の使用状況を組織の事業部門やチームに正確に関連付けるには (たとえば、チャージバックの場合)、ワークスペース (および関連する管理対象リソース グループ) とコンピュートリソースにタグを付けることができます。
Azure コスト センター
次の表は、タグを適用できる Azure Databricks オブジェクトについて詳しく示しています。 これらのタグは、ポータルでアクセスできる詳細なコスト分析レポートや課金利用システムテーブルに伝播できます。 Azure でのタグの伝播と制限に関する詳細をご覧ください。
Azure Databricks オブジェクト | タ グ付けインターフェース (UI) | タグ付けインターフェース (API) |
---|---|---|
ワークスペース | Azureポータル | Azure リソース API |
プール | Azure Databricks ワークスペースのプール UI | インスタンスプール API |
汎用およびジョブコンピュート | Azure Databricksワークスペースのコンピュート UI | クラスター API |
SQLウェアハウス | Azure Databricksスペースの SQL ウェアハウス UI | ウェアハウスAPI |
AWS コストエクスプローラー
次の表は、タグを適用できる AWS Databricks オブジェクトについて詳しく説明しています。これらのタグは、使用状況ログと、コスト分析のための AWS EC2 および AWS EBS インスタンスの両方に伝播できます。 Databricks の課金利用データを表示するには、システムテーブル (パブリック プレビュー) を使用することをお勧めします。 AWS でのタグの伝播と制限に関する詳細をご覧ください。
AWS Databricks オブジェクト | タグ付けインターフェース (UI) | タグ付けインターフェース (API) |
---|---|---|
ワークスペース | N/A | アカウントAPI |
プール | Databricks ワークスペースのプール UI | インスタンスプール API |
汎用およびジョブコンピュート | DatabricksスペースのコンピュートUI | クラスター API |
SQLウェアハウス | Databricksスペースの SQL ウェアハウス UI | ウェアハウスAPI |
GCP コスト管理と請求
次の表は、タグを適用できる GCP Databricks オブジェクトについて詳しく示しています。 これらのタグ/ラベルはコンピュートリソースに適用できます。 GCP でのタグ/ラベルの伝播と制限に関する詳細をご覧ください。
アカウント コンソールの Databricks 課金利用グラフでは、個々のタグごとに使用状況を集計できます。 同じページからダウンロードした課金利用 CSV レポートには、デフォルトとカスタムタグも含まれます。 タグは GKE および GCE ラベルにも伝播します。
GCP Databricks オブジェクト | タグ付けインターフェース (UI) | タグ付けインターフェース (API) |
---|---|---|
プール | Databricks ワークスペースのプール UI | インスタンスプール API |
汎用およびジョブコンピュート | DatabricksスペースのコンピュートUI | クラスター API |
SQLウェアハウス | Databricksスペースの SQL ウェアハウス UI | ウェアハウスAPI |
Databricks システムテーブル Lakeview ダッシュボード
Databricks製品開発チームは、システムテーブルを使用してコスト分析と予測を行うための事前作成されたLakeviewダッシュボードを提供しており、顧客もこれをカスタマイズできます。
このデモは、Databricks ノートブック セルで次のコマンドを使用してインストールできます。
価値を最大化するためのベストプラクティス
Databricksでワークロードを実行する場合、適切なコンピュート構成を選択すると、コスト/パフォーマンス メトリックが大幅に向上します。 以下は、実用的なコスト最適化手法です。
適切なジョブに適切なコンピュートタイプを使用する
インタラクティブなSQLワークロードの場合、SQL ウェアハウスは最もコスト効率の高いエンジンです。 サーバレスコンピュートを使用すると、SQLウェアハウスの起動時間が非常に速くなり、自動終了時間が短くなるため、さらに効率的です。
非対話型ワークロードの場合、Jobs クラスターのコストは All-Purpose クラスターよりも大幅に低くなります。 マルチタスク ワークフローは、すべてのタスクにコンピュートリソースを再利用できるため、コストがさらに削減されます。
適切なインスタンスタイプの選択
最新世代のクラウド インスタンス タイプを使用すると、最高のパフォーマンスと最新の機能が備わっているため、ほぼ確実にパフォーマンス上のメリットが得られます。 AWS では、Graviton2 ベースの Amazon EC2 インスタンスは、同等の Amazon EC2 インスタンスよりも最大 3 倍優れた価格性能を実現できます。
ワークロードに基づいて、適切なインスタンスファミリーを選択することも重要です。 いくつかの簡単な経験則は次のとおりです。
- メモリ最適化:ML、高負荷のシャッフル & スピルワークロード
- コンピュート最適化:構造化ストリーミングワークロード、メンテナンスジョブ(例:Optimize & Vacuum)
- ストレージ最適化:キャッシュの恩恵を受けるワークロード(例:アドホック & インタラクティブデータ分析)
- GPU 最適化:特定の ML および DL ワークロード
- 汎用(General purpose):特定の要件がない場合
適切な Runtime の選択
最新の Databricks Runtime (DBR) では、通常、パフォーマンスが向上しており、以前のバージョンよりも高速になることがほとんどです。
Photonは、SQL ワークロードと DataFrame API 呼び出しをより高速に実行し、ワークロードあたりの総コストを削減する、高性能な Databricks ネイティブのベクトル化クエリ エンジンです。 これらのワークロードでは、Photon を有効にすると大幅なコスト削減が実現できます。
Databricks コンピュートでオートスケールを活用する
Databricksはクラスターのオートスケールという独自の機能を提供しており、ワークロードに合わせてクラスターを調整する必要がないため、クラスターの高い使用率を簡単に達成できます。 これは、データ負荷が変化するインタラクティブなワークロードやバッチ ワークロードに特に役立ちます。 ただし、従来のオートスケールは構造化ストリーミング ワークロードでは機能しません。そのため、スパイクが多く予測不可能なストリーミング ワークロードを処理するために、Delta Live Tables で拡張オートスケールを開発しました。
スポット インスタンスの活用
すべての主要なクラウド プロバイダーは、通常のオンデマンド インスタンスよりも最大 90% 安い料金でデータ センター内の未使用容量にアクセスできるスポット インスタンスを提供しています。 Databricks を使用すると、これらのスポット インスタンスを活用し、終了時にはオンデマンド インスタンスに自動的にフォールバックして中断を最小限に抑えることができます。 クラスターの安定性のために、オンデマンド ドライバー ノードの使用をお勧めします。
フリートインスタンスタイプを活用する(AWS 上)
内部的には、クラスターがこれらのフリートインスタンスタイプのいずれかを使用すると、Databricks はクラスターで使用するために最適な価格と可用性を備えた一致する物理 AWS インスタンスタイプを選択します。
クラスタポリシー
クラスターポリシーを効果的に使用することで、管理者はエンドユーザーに対してコスト固有の制限を適用できます。
- アイドル時間に対する料金が発生しないように、適切な値 (たとえば、1 時間) でクラスターの自動終了を有効にする
- コスト効率の高い VM インスタンスのみを選択できるようにする
- コストチャージバックに必須のタグを適用する
- クラスターあたりの最大コストを制限することで、全体的なコストプロファイルを制御する。例: 1 時間あたりの最大 DBU 数またはユーザーあたりの最大コンピュートリソース数
AI を活用したコスト最適化
Databricks データ インテリジェンス プラットフォームは、パフォーマンスの最適化、コストの削減、ガバナンスの改善、エンタープライズ AI アプリケーション開発の簡素化を実現する高度な AI 機能を統合します。 予測 I/O とリキッドクラスタリングによりクエリ速度とリソース使用率が向上し、インテリジェントなワークロード管理によりオートスケールが最適化され、コスト効率が向上します。 全体として、Databricks のプラットフォームは、業界固有のユースケース向けの革新的なソリューションを実現しながら、生産性とコスト削減を促進する包括的な AI ツール スイートを提供します。
リキッドクラスタリング
Delta Lake リキッドクラスタリングは、テーブル パーティション分割と ZORDER を置き換えて、データ レイアウトの決定を簡素化し、クエリ パフォーマンスを最適化します。 リキッドクラスタリングは、既存のデータを書き換えることなくクラスタリング キーを再定義する柔軟性を提供し、時間の経過とともに分析ニーズに合わせてデータ レイアウトを進化させることができます。
予測最適化
レイクハウスのデータエンジニアは、テーブルを定期的にOPTIMIZEしてVacuumする必要があることはよく知っていますが、これにより、これらのタスクを実行するための適切なテーブル、適切なスケジュール、適切なコンピュートのサイズを把握するという継続的な課題が生じます。 予測最適化では、 Unity CatalogとAIを活用してデータに対して実行する最適な最適化を決定し、それらの操作を専用のサーバーレス インフラストラクチャで実行します。 これらはすべて自動的に行われるため、無駄なコンピュートや手動の調整作業なしで最高のパフォーマンスが保証されます。
増分更新によるマテリアライズド ビュー
Databricks では、マテリアライズド ビュー (MV) は Unity Catalog で管理されるテーブルであり、ユーザーはこれを使用してソース テーブル内の最新バージョンのデータに基づいて結果を事前計算できます。 Delta Live Tablesとサーバーレス上に構築された MV は、低速のクエリや頻繁に使用される計算を事前に行うことで、クエリのレイテンシを削減します。 可能な場合、結果は増分更新されますが、完全な再計算によって得られる結果と同じです。 これにより計算コストが削減され、別のクラスターを維持する必要がなくなります。
モデルサービングと生成AIユースケース向けのサーバーレス機能
モデルサーバーおよび Gen AIユースケースをより適切にサポートするために、 Databricks は、インスタンスやサーバーの種類を構成する必要なく、ニーズに合わせて自動的にスケーリングするサーバーレス インフラストラクチャ上に複数の機能を導入しました。
- Vector Search : 1 回のクリックで任意のDeltaテーブルから同期できるベクター インデックス。複雑なカスタム構築されたデータ取り込み/同期パイプラインは不要です。
- オンライン テーブル:リクエストの負荷に応じて容量を自動調整し、あらゆる規模のデータに低レイテンシで高速アクセスを提供する、完全にサーバーレスなテーブルです。
- モデルサービス:モデルをデプロイするための高可用性と低レイテンシのサービス。 このサービスは需要の変化に合わせ て自動的にスケールアップまたはスケールダウンし、インフラストラクチャのコストを節約しながらレイテンシパフォーマンスを最適化します。
更新と削除のための予測 I/O
これらの AI を活用した機能により、Databricks SQL は過去の読み取りおよび書き込みパターンを分析して、インデックスをインテリジェントに構築し、ワークロードを最適化できるようになりました。 予測 I/O は、データ相互作用のパフォーマンスを向上させる Databricks 最適化のコレクションです。 予測 I/O 機能は、次のカテゴリに分類されます。
- 高速読み取りにより、データのスキャンと読み取りにかかる時間が短縮されます。 これを実現するために、ディープラーニング技術を使用します。 詳細については、このドキュメントを参照してください
- 更新の高速化により、更新、削除、およびマージ中に書き換える必要があるデータの量が削減されます。予測 I/O は削除ベクトルを活用して、 Deltaテーブルでのデータ変更中にファイル全体の書き換え頻度を減らすことで更新を高速化します。 予測I/Oは
DELETE
、MERGE
、UPDATE
操作を最適化します。詳細については、このドキュメントをご覧ください。
予測 I/O は、Databricks 上の Photon エンジン専用です。
インテリジェント・ワークロード管理 (IWM)
技術プラットフォーム管理者の主な問題点の 1 つは、小規模および大規模なワークロードに対して異なるウェアハウスを管理し、コードが最適化され、微調整されて最適に実行され、コンピュート インフラストラクチャの全容量が活用されるようにすることです。 IWM は、上記の課題を解決し、コストを抑えながらこれらのワークロードをより高速に実行できるようにする機能スイートです。 これは、リアルタイム パターンを分析し、すでに実行中のクエリを中断せずに、受信SQLステートメントを実行するためにワークロードが最適な量のコンピュートを持つようにすることで実現されます。
タグ付け、ポリシー、レポートを通じた適切な FinOps 基盤は、データ インテリジェンス プラットフォームの透明性と ROI にとって非常に重要です。 これにより、ビジネス価値をより迅速に実現し、より成功する企業を構築することができます。
サーバーレスとDatabricksIQを使用すると、迅速なセットアップ、コスト効率、ワークロード パターンに適応する自動最適化を実現できます。 これにより、TCOの削減、信頼性の向上、よりシンプルで費用対効果の高い運用が可能になります。