主要な概念を理解する
Azure Databricks は、大規模なデータ操作を可能にする複数のテクノロジを備えた単一のサービス プラットフォームです。 Azure Databricks を使う場合は、重要な概念をいくつか理解する必要があります。
ワークスペース
Azure Databricks の ワークスペース は、ノートブック、クラスター、ジョブ、ライブラリ、ダッシュボード、実験など、すべての Databricks 資産にアクセスして整理できる、セキュリティで保護された共同作業環境です。
[ワークスペースの起動] を選択すると、Azure portal から Azure Databricks ワークスペースを開くことができます。
Web ベースの ユーザー インターフェイス (UI) と、リソースとワークフローを管理するための REST API が提供されます。 ワークスペースをフォルダーに構造化してプロジェクト、データ パイプライン、またはチーム資産を整理し、アクセスを制御するためにさまざまなレベルでアクセス許可を適用できます。 データ エンジニア、アナリスト、データ サイエンティストなどの複数のユーザーが共有ノートブックで共同作業を行い、実験を追跡し、依存関係を管理できるようにすることで、 コラボレーション をサポートします。
さらに、ワークスペースは一元化されたデータ ガバナンスのために Unity カタログ (有効になっている場合) に関連付けられ、組織全体のデータへの安全なアクセスが保証されます。 各ワークスペースは、Databricks がバックグラウンドで使用するコンピューティング、ネットワーク、ストレージ リソースを保持する 基になる Azure リソース グループ (マネージド リソース グループを含む) にもリンクされます。
Notebooks
Databricks ノートブック は、 実行可能なコード、視覚化、および説明テキスト を 1 つの環境に組み合わせた、対話型の Web ベースのドキュメントです。 Python、R、Scala、SQL などの複数の言語がサポートされており、ユーザーは マジック コマンドを使用して同じノートブック内の言語を切り替えることができます。 この柔軟性により、ノートブックは 探索的データ分析、データ視覚化、機械学習実験、複雑なデータ パイプラインの構築に適しています。
ノートブックは コラボレーション用にも設計されています。複数のユーザーが同時にセルを編集および実行したり、コメントを追加したり、リアルタイムで分析情報を共有したりできます。 Databricks クラスターと緊密に統合されているため、ユーザーは大規模なデータセットを効率的に処理でき、管理されたデータ アクセスのために Unity カタログ を介して外部データ ソースに接続できます。 さらに、ノートブックをバージョン管理したり、ジョブとしてスケジュールしたり、プラットフォームの外部で共有するためにエクスポートしたりできるため、 アドホック探索 と 運用グレードのワークフローの両方に集中できます。
ノートブックには、 コード セル と Markdown セルの 2 種類のセルのコレクションが含まれています。 コード セルには実行可能なコードが含まれています。 Markdown セルには、テキストとグラフィックスとしてレンダリングされる Markdown コードが含まれています。 1 つのセル、セルのグループ、またはノートブック全体を 実行 できます。
クラスター
Azure Databricks では、次の 2 層アーキテクチャが利用されます。
- コントロール プレーン: Microsoft によって管理されるこの内部レイヤーは、Azure Databricks アカウントに固有のバックエンド サービスを処理します。
- コンピューティング プレーン: これは、データを処理し、Azure サブスクリプションに存在する外部レイヤーです。
クラスター は、Azure Databricks のコア コンピューティング エンジンです。 これらは、データ エンジニアリング、データ サイエンス、および分析タスクを実行するために必要な処理能力を提供します。 各クラスターは、実行を調整する ドライバー ノードと、分散計算を処理する 1 つ以上の ワーカー ノードで構成されます。 クラスターは、固定リソースを使用して手動で作成することも 、自動スケールに設定することもできます。これにより、Databricks はワークロードの需要に応じてワーカー ノードを追加または削除できます。 この柔軟性により、効率的なリソースの使用とコスト管理が保証されます。
Azure Databricks コンピューティングには、さまざまなワークロードの種類で使用できる広範なコンピューティング オプションのセットが用意されています。
- サーバーレス コンピューティング: ワークロードのニーズに合わせて自動的にスケールアップまたはスケールダウンするフル マネージドのオンデマンド コンピューティング。 起動時間の短縮、管理オーバーヘッドの最小化、エラスティック スケーリングが必要なチームに最適です。
- クラシック コンピューティング: VM サイズ、ライブラリ、ランタイム バージョンなど、コンピューティング設定を完全に制御できるユーザー プロビジョニングおよび構成済みクラスター。 カスタマイズまたは一貫したパフォーマンスを必要とする特殊なワークロードに最適です。
- SQL ウェアハウス: SQL ベースの分析と BI クエリ用に最適化されたコンピューティング リソース。 SQL ウェアハウスは、ガバナンスとパフォーマンスの要件に応じて、 サーバーレス (エラスティック、マネージド) または クラシック (ユーザー構成) としてプロビジョニングできます。
これにより、ノートブックでの探索的分析から大規模な ETL パイプライン、高パフォーマンスのダッシュボードやレポートまで、特定のニーズに合わせてコンピューティングを調整できます。
Databricks Runtime
Databricks ランタイムは、パフォーマンスの向上と追加のライブラリを含む Apache Spark のカスタマイズされたビルドのセットです。 これらのランタイムを使用すると、 機械学習、 グラフ処理、 ゲノムなどのタスクを簡単に処理でき、一般的なデータ処理と分析を引き続きサポートできます。
Databricks には、 長期サポート (LTS) リリースを含む複数のランタイム バージョンが用意されています。 各リリースでは、基になる Apache Spark のバージョン、リリース日、およびサポートが終了するタイミングを指定します。 時間の経過とともに、古いランタイム バージョンはライフサイクルに従います。
- レガシ – 使用可能ですが、推奨されなくなりました。
- 非推奨 – 将来のリリースで削除対象としてマークされています。
- サポート終了 (EoS) – それ以上の修正プログラムや修正プログラムは提供されません。
- End of Life (EoL) – 廃止され、利用できなくなりました。
使用しているランタイム バージョンのメンテナンス更新プログラムがリリースされた場合は、 クラスターを再起動して適用できます。
Lakeflow ジョブ
Lakeflow ジョブ は、Azure Databricks でワークフローの自動化とオーケストレーションを提供し、データ処理タスクを確実にスケジュール、調整、実行できるようにします。 コードを手動で実行する代わりに、ジョブを使用して、ETL パイプライン、機械学習トレーニング、ダッシュボードの更新などの反復的または運用レベルのワークロードを自動化できます。
Databricks のジョブは、基本的に 1 つ以上の タスクのコンテナーです。 タスクは、実行する作業 (ノートブックの実行、Spark ジョブの実行、外部コードの呼び出しなど) を定義します。
ジョブは、さまざまな方法でトリガーできます。
- スケジュールに従って (たとえば、深夜 0 時に毎晩)。
- イベントへの応答。
- 必要に応じて手動で。
繰り返し可能で管理されているため、ジョブは運用環境の ワークロードにとって重要です。 これにより、データ パイプラインが一貫して実行され、ML モデルがトレーニングされ、制御された方法でデプロイされ、ダウンストリーム システムは更新された正確なデータを受け取ります。
Delta Lake
Delta Lake は、 Azure Data Lake Storage などのクラウド オブジェクト ストレージの上にトランザクション機能を追加することで、データ レイクの信頼性とスケーラビリティを向上させるオープンソース ストレージ フレームワークです。 従来のデータ レイクでは、データの不整合、部分的な書き込み、同時アクセスの管理の困難などの問題が発生する可能性があります。 Delta Lake は、以下をサポートすることで、これらの問題に対処します。
- 信頼性の高い 読み取りと書き込みのための ACID トランザクション (原子性、一貫性、分離性、持続性)。
- スケーラブルなメタデータ処理 により、パフォーマンスが低下することなく、テーブルが数十億ものファイルに拡張される可能性があります。
- データのバージョン管理とロールバック。タイム トラベル クエリと以前の状態の回復を可能にします。
- バッチ処理とストリーミング処理が統合されているため、同じテーブルでリアルタイムのインジェストとバッチの履歴読み込みを処理できます。
この基礎の上に、 Delta テーブル は、 SQL クエリ または DataFrame API を使用して構造化データを簡単に操作できるようにする、使い慣れたテーブルの抽象化を提供します。 差分テーブルは Azure Databricks の既定のテーブル形式であり、新しいデータが既定でトランザクション保証で格納されるようにします。
Databricks SQL (ダタブリックス SQL)
Databricks SQL は Databricks Lakehouse に データ ウェアハウス機能 を提供し、アナリストやビジネス ユーザーは、データ レイクに直接開いている形式で格納されているデータのクエリと視覚化を行うことができます。 ANSI SQL がサポートされているため、SQL に慣れているすべてのユーザーが、新しい言語やツールを学習しなくても、クエリの実行、レポートの作成、ダッシュボードの作成を行うことができます。
Databricks SQL は、Azure Databricks の Premium レベル でのみ使用できます。 内容は以下のとおりです。
- クエリを記述および実行するための SQL エディター 。
- 分析情報を共有するためのダッシュボードと視覚化ツール。
- 外部 BI および分析ツールとの統合。
SQL Warehouses
すべての Databricks SQL クエリは、ストレージから切り離されたスケーラブルなコンピューティング リソースである SQL ウェアハウス (旧称 SQL エンドポイント) で実行されます。 パフォーマンス、コスト、管理のニーズに応じて、さまざまな種類の倉庫を使用できます。
サーバーレス SQL Warehouse
- 迅速な起動と 自動スケーリングを備えたインスタントでエラスティックなコンピューティング。
- Databricks は容量、修正プログラムの適用、最適化を処理するため、管理オーバーヘッドが低くなります。
- 自動的にスケーリングし、アイドル状態のリソース コストを回避することで、コスト効率を高めます。
Pro SQL Warehouses
- よりカスタマイズ可能ですが、開始に時間がかかります (≈4 分)。
- サーバーレスと比較して、応答性の低い自動スケール。
- 一貫性のある予測可能なワークロードが必要な場合に便利です。
従来の SQL Warehouse
- コンピューティング リソースは、Databricks ではなく、 独自の Azure サブスクリプションで実行されます。
- サーバーレスよりも柔軟性は低くなりますが、特定のガバナンスまたはコスト管理の要件に適している場合があります。
MLflow
MLflow は、 エンドツーエンドの機械学習 (ML) ライフサイクルを管理するように設計されたオープンソース プラットフォームです。 データ サイエンティストや ML エンジニアが実験を追跡し、モデルを管理し、モデルを開発から運用環境に移行するプロセスを合理化するのに役立ちます。 MLflow では、生成型 AI ワークフローもサポートされ、AI エージェントを評価および改善するためのツールも含まれています。