Databricks のコンセプト

この記事では、Databricks を効果的に使用するために理解する必要がある一連の基本概念をご紹介します。

アカウントとワークスペース

Databricksはワークスペースはクラウド内の Databricks デプロイメントであり、チームが Databricksアセットにアクセスするための環境として機能します。ニーズに応じて、複数のワークスペースを使用するか、 1つのワークスペースのみ使用するかを選択することが可能です。

Databricksアカウントは、複数のワークスペースを含めることができる単一のエンティティです。Unity Catalogが有効なアカウントであれば、アカウント内のすべてのワークスペースにわたって、ユーザーとデータへのアクセスを一元的に管理できます。請求とサポートもアカウントレベルで処理されます。

請求:Databricks ユニット(DBU)

Databricksの請求は、Databricksユニット(DBU)、つまりVMインスタンスタイプに基づく1時間あたりの処理能力の単位に基づきます。

Databricks on AWS の料金見積もり」を参照してください。

認証と承認

このセクションでは、Databricks IDとDatabricks アセットへのアクセスを管理する際に知っておくべき概念について説明します。

ユーザー

システムにアクセスできる一意の個人。 ユーザーのアイデンティティは電子メールアドレスで表されます。 「 ユーザーの管理」を参照してください。

サービスプリンシパル

サービスのアイデンティティであり、ジョブ、自動化ツール、スクリプト、アプリ、CI/CD プラットフォームなどのシステムで使用されます。 サービスプリンシパルはアプリケーション ID で表されます。 「サービスプリンシパルの管理」を参照してください。

グループ

アイデンティティのコレクションを表します。 グループを使用すると アイデンティティ管理が簡素化され、ワークスペース、データ、その他のセキュリティ保護可能なオブジェクトへのアクセスの割り当てが容易になります。 すべての Databricks アイデンティティはグループのメンバーとして割り当てることができます。 グループの管理を参照してください。

アクセス制御リスト(ACL)

ワークスペース、クラスター、ジョブ、テーブル、またはエクスペリメントに関連付けられた権限のリストです。 ACLは、どのユーザーまたはシステム プロセスにオブジェクトへのアクセスを許可するか、また資産に対してどのような操作を許可するかを指定します。 一般的な ACLの各エントリは、サブジェクトと操作を指定します。 「アクセス制御リスト」を参照してください。

パーソナルアクセストークン

不透明型の文字列であり、REST APIに対する認証や、技術パートナー 内のツールによる SQLウェアハウスへの接続に使用されます。 「Databricks パーソナルアクセストークン認証」を参照してください。

UI

Databricks UI は、ワークスペースフォルダとそれに含まれるオブジェクト、データオブジェクト、コンピューティングリソースなどの機能を操作するためのグラフィカルインターフェイスです。

データサイエンスとエンジニアリング

データサイエンスとエンジニアリングツールは、データサイエンティスト、データエンジニア、データアナリスト間のコラボレーションを支援します。このセクションでは、基本的な概念について説明します。

ワークスペース

ワークスペース は、すべての Databricks 資産にアクセスするための環境です。ワークスペースは、オブジェクト (ノートブック、ライブラリ、ダッシュボード、エクスペリメント) を フォルダー に整理し、データ オブジェクトとコンピューティング リソースへのアクセスを提供します。

ノートブック

データサイエンスおよび機械学習のワークフローを作成するためのWeb ベースのインターフェイスです。実行可能なコマンド、ビジュアライゼーション、説明テキストを含めることができます 「Databricks ノートブック入門」を参照してください。

ダッシュボード

ビジュアライゼーションへの体系的なアクセスを提供するインターフェイスです。「ノートブックのダッシュボード」を参照してください。

ライブラリ

クラスター上で実行されるノートブックまたはジョブで使用可能なコードのパッケージです。Databricks ランタイムには多くのライブラリが含まれており、独自のライブラリを追加することも可能です。

Git フォルダー (以前の Repos)

コンテンツをリモートGitリポジトリに同期することによって、一緒にバージョン管理されるフォルダーです。 Databricks Git フォルダーはGitと統合され、プロジェクトのソースとバージョン管理を提供します。

エクスペリメント

機械学習モデルをトレーニングする MLflow ラン の集合を指します。「MLflow エクスペリメントを使用してトレーニングの実行を整理する」を参照してください。

Databricks インターフェイス

このセクションでは、アセットへのアクセスにおいてDatabricks がサポートしているUI以外のインターフェイスである、APIおよびコマンドライン(CLI)について説明します。

REST API

Databricks は、ワークスペースアカウントの API ドキュメントを提供しています。

CLI

Databricks CLI は、GitHub でホストされているオープンソースプロジェクトです。CLI は Databricks REST API をベースに構築されています。

データ管理

このセクションでは、分析を実行し、機械学習アルゴリズムにフィードするデータを保持するオブジェクトについて説明します。

Databricks ファイルシステム(DBFS)

blob ストア上のファイルシステム抽象化レイヤーです。 ディレクトリを内包しており、ファイル (データ ファイル、ライブラリ、画像) や他のディレクトリを含むことが可能です DBFS には、Databricks の学習に使用できるいくつかの データセット が自動的に設定されます。 「 Databricks ファイル システム (DBFS) とは」を参照してください。

データベース

テーブル、ビュー、関数などのデータ オブジェクトのコレクションで、簡単にアクセス、管理、および更新できるように編成されています。 「データベースとは」を参照してください。

テーブル

構造化データを表現するものです。 テーブルはApache Spark SQL と Apache Spark APIによってクエリされます。 「 テーブルとは」を参照してください。

Delta テーブル

既定では、Databricksで作成されるすべてのテーブルはDeltaテーブルとなります。Deltaテーブルは、クラウドオブジェクトストア上の高性能 ACIDテーブルストレージのフレームワークである、 Delta Lake オープンソースプロジェクトに基づいています。Deltaテーブルは、データをクラウドオブジェクトストレージ上のファイルのディレクトリとして保存し、テーブルのメタデータをカタログおよびスキーマ内のメタストアに登録します。

もっと詳しく知るには、Delta としてブランド化されたテクノロジーを参照してください。

メタストア

データウェアハウス内のさまざまなテーブルとパーティションのすべての構造情報を格納するコンポーネントです。カラムとカラムの型の情報、データの読み取りと書き込みに必要なシリアライザーとデシリアライザー、データが格納されている対応するファイルなどを含みます。 「メタストアとは」を参照してください。

すべての Databricks デプロイメントには、テーブルメタデータを永続化するためにすべてのクラスターからアクセスできる中央 Hive メタストアがあります。既存の外部 Hive メタストアを使用するオプションもあります。

ビジュアライゼーション

クエリーの実行結果をグラフィカルに表示したものを指します。「Databricks ノートブックにおけるビジュアライゼーション」を参照してください。

コンピューティング管理

このセクションでは、Databricks で計算を実行するために知っておく必要がある概念について説明します。

クラスター

ノートブックやジョブを実行するための、計算資源と設定のセットです。 クラスターには、汎用クラスターとジョブクラスターの2種類があります。 「 コンピュート」を参照してください。

  • All-Purposeクラスターは、UI、CLI、または REST APIを使用して作成します。All-Purpose クラスターは手動で終了・再起動することができます。複数のユーザーでクラスターを共有し、インタラクティブな分析を共同で行うことが可能です。

  • Databricks ジョブスケジューラは、新しいジョブクラスタージョブを実行したときにジョブクラスターを作成し、ジョブが完了したときにそのクラスターを終了します。ジョブクラスターを再起動することはできません

プール

アイドル状態ですぐに使用できるインスタンスのセットであり、クラスターの起動時間と自動スケーリング時間を短縮するために使用します。 プールをアタッチすると、クラスターはドライバーノードとワーカーノードをプールから割り当てます。 「プール構成リファレンス」を参照してください。

クラスターの要求に対応するのに十分なアイドルリソースがプールにない場合、インスタンスプロバイダーから新しいインスタンスを割り当ててプールを拡張します。アタッチされたクラスターが終了すると、使用していたインスタンスはプールに戻され、別のクラスターで再利用できます。

Databricks Runtime

Databricks によって管理されるクラスターで実行されるコア コンポーネントのセット。 「 コンピュート」を参照してください。 Databricks には、次のランタイムがあります。

  • Databricks Runtime は、Apache Spark だけでなく、ビッグデータ分析の操作性やパフォーマンス、セキュリティなどを向上させる数多くのコンポーネントや更新プログラムを含みます。

  • Databricks Runtime for Machine LearningはDatabricks Runtime上に構築されており、Databricksワークスペースのすべての機能と統合された事前構築済みの機械学習インフラストラクチャを提供します。TensorFlow、Keras、PyTorch、XGBoostといった、複数の一般的なライブラリを含んでいます。

ワークフロー

データ処理パイプラインを開発および実行するためのフレームワークです:

  • ジョブ: ノートブックまたはライブラリをただちに、またはスケジュールに基づいて実行するための非対話型メカニズムです。

  • Delta Live Tables:信頼性が高く、保守可能で、テスト可能なデータ処理パイプラインを構築するためのフレームワークです。

Databricks ワークフロー入門」を参照してください。

ワークロード

Databricks では、異なる料金体系の対象である2 種類のワークロードとして、データエンジニアリング(ジョブ)とデータアナリティクス(All-Purpose)が識別されます。

  • データエンジニアリングジョブクラスター上で実行される(自動化された)ワークロードであり、Databricks ジョブスケジューラによって個々に作成されます。

  • データ分析All-Purpose クラスター上で実行される(対話型の)ワークロードです。通常、対話型ワークロードは Databricks ノートブック内でコマンドを実行します。ただし、既存の All-Purpose クラスター上でのジョブの実行も対話型ワークロードとして扱われます。

実行コンテキスト

サポートされている各プログラミング言語の入力ー評価ー出力ループ(REPL)環境の状態を指します。サポートされている言語は、Python、R、Scala、SQL です。

機械学習

Databricks 上での機械学習は、エクスペリメントの追跡、モデルのトレーニング、特徴量の開発と管理、特徴量とモデルサービングのためのマネージドサービスを組み込んだ、統合されたエンドツーエンド環境です。

エクスペリメント

機械学習モデル開発を追跡するための主要な組織単位を指します。「MLflow エクスペリメントを使用してトレーニングの実行を整理する」を参照してください。エクスペリメントは、モデルトレーニングコードの記録された個々の実行を整理し、表示し、アクセスを制御します。

Feature Store

一元化された特徴量のリポジトリです。 「 Feature Storeとは」を参照してください。 Feature Storeを使用すると、組織全体で特徴量の共有と検出が可能になり、モデルのトレーニングと推論に同じ特徴計算コードが使用されるようになります。

SQL

SQL REST API

SQL オブジェクトのタスクを自動化するインターフェースです。「SQL API」を参照してください。

ダッシュボード

データの視覚化と解釈を示すプレゼンテーションです。 「 ダッシュボード」を参照してください。 レガシーダッシュボードについては、「 レガシーダッシュボード」を参照してください。

SQL クエリー

このセクションでは、Databricksで SQLクエリーを実行するために知っておくべき概念について説明します。