Databricks Data Science & Engineering concepts | Databricks on AWS [2021/10/14時点]の翻訳です。
Databricksクイックスタートガイドのコンテンツです。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
本書では、Databricksのワークスペースを効果的に利用するために理解すべき、基本的なコンセプトをご紹介します。
ワークスペース
ワークスペースはお使いのDatabricksの全てのアセットにアクセスするための環境となります。ワークスペースはオブジェクトをフォルダーで整理し、データオブジェクト及び計算リソースへのアクセス手段を提供します。
このセクションでは、Databricksワークスペースフォルダーに格納されるオブジェクトを説明します。
実行可能なコマンド、ビジュアライゼーション、ナラティブなテキストを含むドキュメントに対するwebベースのインタフェースです。
ビジュアライゼーションに対して統合されたアクセスを提供するインタフェースです。
お使いのクラスターで動作するノートブック、ジョブで利用するコードバッページです。Databricksランタイムには多くのライブラリが同梱されており、ご自身で追加することも可能です。
リモートのGitリポジトリと同期することで共同バージョン管理されるコンテンツを含むフォルダーです。
機械学習モデルをトレーニングするためのMLflowのランのコレクションです。
インタフェース
このセクションでは、ご自身のアセットにアクセスするためにDatabricksがサポートしている方法を説明します。UI、API、コマンドライン(CLI)をサポートしています。
UI
DatabricksのUIは、ワークスペースのフォルダー、フォルダーに格納されているオブジェクト、データオブジェクト、計算リソースに対して使いやすいグラフィカルインタフェースを提供します。
REST APIには3つのバージョン:2.1、2.0、1.2が存在します。REST API 2.1と2.0はREST API 1.2のほとんどの機能と追加機能をサポートしており、これらを使用することを推奨します。
GitHubでオープンソースプロジェクトがホストされています。CLIは最新のREST APIをベースとしています。
データ管理
このセクションでは、分析を行なったり、機械学習アルゴリズムの入力となるデータを保持するオブジェクトを説明します。
blobストアに対するファイルシステム抽象化レイヤーです。これには、ファイル(データファイル、ライブラリ、画像)を格納するディレクトリと他のディレクトリが含まれます。DBFSには、皆様がDatabricksを学ぶ際に使用できるサンプルデータセットが含まれています。
整理された情報のコレクションであり、容易にアクセス、管理、更新が可能です。
構造化データの表現の一つとなります。Apache Spark SQLやApache Spark APIを用いてテーブルに対するクエリーを実行することができます。
データウェアハウスにおける様々なテーブル、パーティションの全ての構造化データを格納するコンポーネントであり、カラム、カラムタイプ情報、データの読み書きに必要となるシリアライザ、デシリアライザ、データを保持する対応ファイルが格納されます。あらゆるDatabriksデプロイメントには集中管理されたHiveメタストアが含まれており、テーブルのメタデータを永続化するために全てのクラスターからアクセスされます。既存の外部Hiveメタストアを使用することも可能です。
計算リソース管理
このセクションでは、Databricksにおける計算資源を実行するために必要なコンセプトを説明します。
クラスター
ノートブック、ジョブを実行するための計算リソースと設定のセットです。クラスターには2つのタイプが存在します:all-purpose(汎用)とjob(ジョブ)です。
- UI、CLI、REST APIを用いてall-purposeクラスターを作成します。手動でall-purposeクラスターを停止、再起動することができます。コラボレーションしながらインタラクティブな分析を行うために、複数のユーザーでこのようなクラスターを共有することができます。
- Databricksのジョブスケジューラーは新規ジョブクラスターでジョブを実行する際に、jobクラスターを作成し、ジョブが完了するとクラスターを停止します。
クラスターの起動時間、オートスケールの時間を短縮するために用いる、アイドル状態かつ利用可能なインスタンスの集合です。クラスターがプールにアタッチされると、クラスターはドライバーノードとワーカーノードをプールから割り当てます。クラスターの要求に応えるための十分なアイドル状態のリソースがプールにない場合、プールはインスタンス提供者から新たなインスタンスを獲得します。アタッチされているクラスターが停止されると、使用されていたインスタンスはプールに返却され、他のクラスターで再利用することができます。
Databricksによって管理されるクラスターで実行されるコアコンポーネントの集合です。Databricksではいくつかの種類のランタイムを提供しています:
- DatabricksランタイムにはApache Sparkが含まれていますが、それ以外のも数多くのコンポーネントが含まれており、ビッグデータ分析における使いやすさ、性能、セキュリティを改善するためにアップデートされ続けています。
- Databricks機械学習ランタイムはDatabricksランタイムをベースとしていますが、機械学習、データサイエンスにすぐに活用できる環境を提供します。これには、TensorFlow、Keras、PyTorch、XGBoostのような人気のあるライブラリが多数含まれています。
- Databricksゲノミクスランタイムは、ゲノミクス、バイオメディカルデータの操作に最適化されたバージョンのDatabricksランタイムです。
- Databricks Lightは、オープンソース版Apache SparkランタイムのDatabricks版パッケージです。Databricksランタイムによって提供される先進的なパフォーマンス、信頼性、オートスケーリングといったメリットが必要ないジョブに対するランタイムのオプションとなります。JAR、Python、spark-submitジョブを実行するためにクラスターを作成する際にのみDatabricks Lightを選択することができます。インタラクティブあるいはノートブックジョブのワークロードを実行するクラスターのランタイムに、Databricks Lightを選択することはできません。
即時あるいはスケジュールで、ノートブックやライブラリを非インタラクティブな方法で実行するメカニズムです。
ワークロード
Databricksは、異なる価格スキーマが適用される2つの種類のワークロードを識別します:データエンジニアリング(job)とデータアナリティクス(all-purpose)です。
- データエンジニアリング Databricksのジョブスケジューラーがワークロードごとに作成するジョブクラスターで実行される(自動化された)ワークロードです。
- データアナリティクス all-purposeクラスターで実行される(インタラクティブな)ワークロードです。インタラクティブなワークロードは通常、Databricksノートブックのコマンドを実行します。しかし、既存のall-purposeクラスターでジョブが実行された場合には、インタラクティブなワークロードとして取り扱われます。
実行コンテキスト
サポートされるプログラミング言語のREPL環境の状態です。サポートされる言語はPython、R、Scala、SQLです。
機械学習
このセクションでは、Databricksにおける機械学習に関連するコンセプトを説明します。
機械学習モデル開発のトラッキングの基本単位となります。エクスペリメントは、モデルトレーニングコードの実行記録のそれぞれを整理、表示、アクセスの制御を行います。
特徴量の集中管理されたリポジトリです。Databricks Feature Storeは、企業における特徴量の共有と検索を可能とし、モデルトレーニングと推論で同じ特徴量計算処理が用いられることを保証します。
モデルレジストリに登録されたトレーニング済み機械学習、ディープラーニングのモデルです。
認証及び承認
このセクションでは、DatabricksのユーザーおよびDatabricksのアセットへのアクセスを管理するために理解すべきコンセプトを説明します。
システムにアクセスできる一意の個人です。
ユーザーのコレクションです。
ワークスペース、クラスター、ジョブ、テーブル、エクスペリメントに設定されるアクセス権のリストです。ACLでは、どのユーザー、どのシステムがオブジェクトに対するアクセスを許可されているのか、アセットに対して許可される操作を定義します。通常のACLのエントリーでは、対象と操作を定義します。