パイプラインにおける Serverless とクラシック コンピュートの比較
すべての LakeFlow Pipelines パイプラインは、Serverlessコンピュートまたはクラシックコンピュートのいずれかで更新を実行します。コンピュートタイプはパイプラインごとの設定であり、パイプラインの設定で選択します。これは自動ではありません。パイプラインは Serverless 設定を有効にした場合にのみサーバレスコンピュートで実行され、それ以外の場合はクラシックコンピュートで実行されます。このページでは2つのオプションを比較しているため、各パイプラインに適したオプションを選択できます。
Databricksでは、ほぼすべてのパイプラインでServerlessコンピュートの使用を推奨しています。Serverlessでは、Databricksがインフラストラクチャを管理します。サイズ設定、構成、セキュリティ保護、権限付与を行うクラスターは存在せず、増分更新や垂直オートスケールなど、クラシックコンピュートでは提供できない機能を利用できます。クラシックコンピュートの場合、そのインフラストラクチャの構成と保守はお客様の責任となります。Serverlessは、クラシックコンピュートがサポートするほぼすべてをサポートしています。例外として、レガシーのHive metastoreと一部のネットワーク構成があります。ほとんどのパイプラインにおいて、クラシックコンピュートを選択することは、本来Serverlessが処理する手動作業を引き受けることを意味します。
マテリアライズドビューの増分更新は、Serverlessパイプラインでのみ利用可能です。クラシックコンピュートで実行されるマテリアライズドビューは、常に完全に再計算されます。ワークロードで増分更新が必要な場合は、Serverlessコンピュートを使用してください。マテリアライズドビューの増分更新を参照してください。
コンピュートオプションの比較
次の表は、選択の決め手となることが多い機能について、Serverlessコンピュートとクラシックコンピュートを比較したものです。
機能 | サーバーレス | クラシック |
|---|---|---|
インフラストラクチャ管理 | Databricks がすべてのインフラストラクチャを管理します。クラスター構成はありません。 | オートスケール、インスタンスタイプ、クラスターポリシーなど、クラスターを構成する必要があります。 |
マテリアライズドビューの増分更新 | サポートされています。マテリアライズドビューは、コンピュートコストを削減するために、費用対効果が高い場合に増分更新されます。マテリアライズドビューの増分更新を参照してください。 | サポートされていません。マテリアライズドビューは常に完全に再計算されます。 |
オートスケール | 水平方向(エグゼキューターの増加)および垂直方向(エグゼキューターの大型化)にスケーリングする強化オートスケール。「オートスケールを使用した LakeFlow Pipelines のクラスター使用率の最適化」を参照してください。 | 水平方向にスケールする強化オートスケール。インスタンスタイプを選択します。 |
ストリームパイプライン | defaultで有効です。マイクロバッチを並行して実行することで、throughputとレイテンシーを改善します。Serverless パイプラインの設定を参照してください。 | 利用できません。 |
コンピュート作成権限 | 必須ではありません。defaultで、すべてのワークスペースユーザーはServerlessパイプラインをランできます。 | 必須。ユーザーには、無制限のクラスター作成権限、またはコンピュートポリシーへのアクセス権が必要です。 |
コンピュートポリシーとインスタンスタイプ | Databricksが管理。インスタンスタイプやコンピュートポリシーは設定しません。 | コンピュートポリシーを手動で適用し、ワーカーおよびドライバーのインスタンスタイプを選択します。 |
Unity Catalog | 常に Unity Catalog を使用します。 | Unity Catalog またはレガシー Hive metastore を使用できます。 |
コストアトリビューション | Serverless使用ポリシーでカスタムタグを適用する。 | パイプラインにカスタムタグを適用します。タグデータと請求データを手動で結合する必要があります。 |
更新およびメンテナンスクラスター | Databricks が管理。 | 更新クラスターとメンテナンスクラスターは個別に構成します。 |
シングルノードコンピュート | 不要です。Databricks は、ワークロードに合わせてコンピュートサイズを自動的に調整します。 | 小規模または非分散型のワークロードには、シングルノードコンピュートを設定します。 |
Serverlessコンピュートを使用する場合
以下のクラシック専用の制限事項に該当しないパイプラインには、Serverlessコンピュートを使用してください。特に、次のような場合にはServerlessが適しています。
- クラスターの構成や維持を自分で行うのではなく、垂直オートスケールやインスタンス選択を含むインフラストラクチャの管理をDatabricksに任せたい場合。
- 更新コストを削減するために、マテリアライズドビューの増分更新が必要な場合。
- ワークスペースユーザーがクラスター作成権限なしでパイプラインを実行できるようにします。
Serverless パイプラインには、Unity Catalog が有効なワークスペースと、Serverless が有効なリージョンが必要です。要件と設定については、Serverless パイプラインの設定を参照してください。
クラシックコンピュートを使用する場合
Serverless はほぼすべてのパイプラインワークロードをサポートしているため、Serverless でパイプラインをまったく実行できない場合にのみ、クラシックコンピュートを使用してください:
- テーブルは Unity Catalog ではなく、レガシー Hive metastore を使用しています。Hive metastore テーブルを Unity Catalog に移行し、Serverless を有効にするには、Hive テーブルとビューを Unity Catalog にアップグレードするを参照してください。
- パイプラインには、Serverlessがサポートしていないプライベートネットワークが必要です。
- お使いのパイプラインは、Serverlessが利用できないリージョンでランされています。
クラシックコンピュートでは、コンピュートポリシー、インスタンスタイプ、シングルノードコンピュート、および個別の更新・メンテナンス用クラスターの設定と維持はお客様自身で行う必要がありますが、Serverlessではこれらが自動的に行われます。
セットアップおよび構成オプションについては、「パイプライン用のクラシック コンピュートの構成」を参照してください。
コンピュートタイプの設定
パイプラインの Compute 設定で Serverless 設定を有効または無効にすることで、コンピュートタイプを選択します。新しいパイプラインでは、defaultで Serverless が使用されます。Unity Catalog で構成された既存のパイプラインを Serverless に変換することもできます。
- Serverlessパイプラインの設定および変換については、Serverlessパイプラインの設定を参照してください。
- クラシックコンピュートを構成するには、「パイプライン用のクラシックコンピュートの構成」を参照してください。