0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Databricksにおけるデータとストレージの取り扱い

Last updated at Posted at 2023-01-28

Where’s my data? | Databricks on AWS [2023/125時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

Databricksでは、お使いのクラウドアカウントにおけるブロックストレージとオブジェクトストレージロケーションの作成、設定、アクセスに共有責任モデルを採用しています。Databricksにおけるデータのロードやデータの保存は、ブロックストレージかオブジェクトストレージに対して行われます。以下のマトリクスではクイックリファレンスを示しています。

オペレーション ロケーション
UIによるデータアップロード オブジェクトストレージ
DBFSへのファイルアップロード オブジェクトストレージ
Auto Loaderによるデータのアップロード オブジェクトストレージ
COPY INTOによるデータのアップロード オブジェクトストレージ
テーブルの作成 オブジェクトストレージ
Apache Sparkによるデータの保存 オブジェクトストレージ
pandasによるデータの保存 ブロックストレージ
ノートブックを用いてwebからデータをダンロード ブロックストレージ

オブジェクトストレージとは?

クラウドコンピューティングにおいて、オブジェクトストレージやblobストレージはデータをオブジェクトとして保持するストレージコンテナのことを指し、それぞれのオブジェクトはデータ、メタデータ、グローバルにユニークな識別子(URI)から構成されます。オブジェクトストレージにおけるデータ操作のオペレーションは多くの場合、REST APIインタフェースを通じた作成、読み込み、更新、削除(CRUD)に限定されます。いくつかのオブジェクトストレージは、バージョン管理やライフサイクル管理のような機能を提供しています。オブジェクトストレージには以下のメリットがあります:

  • 高い可用性、堅牢性、信頼性。
  • 他の多くのストレージオプションと比較して低いストレージコスト。
  • 無限にスケール(クラウドの特定のリージョンで利用できるストレージの総量に制限されます)。

多くのクラウドベースのデータレイクは、クラウドオブジェクトストレージにおけるオー文ソースデータフォーマットを基盤として構築されます。

Databricksではオブジェクトストレージをどのように使うのか?

オブジェクトストレージは、Databricksのほとんどのオペレーションで使用される主要なストレージとなります。Databricksファイルシステム(DBFS)によって、Databricksユーザーは他のファイルシステムと同じように、オブジェクトストレージのオブジェクトのファイルを操作することができます。外部のデータシステムに対するテーブルを設定しない限り、Databricksで作成されるすべてのテーブルのデータはクラウドオブジェクトストレージに格納されます。

クラウドオブジェクトストレージに格納されるDelta Lakeのファイルは、Databricksレイクハウスのデータ基盤となります。

Databricksではどのようにクラウドオブジェクトストレージを設定するのか?

Databricksでは、データファイルとテーブルを格納するためにクラウドオブジェクトストレージを活用します。ワークスペースをデプロイする際、DatabricksはDBFSルートと呼ばれるクラウドオブジェクトストレージロケーションを設定します。お使いのアカウントの他のクラウドオブジェクトストレージロケーションへの接続を設定することができます。

ほぼすべてのケースにおいて、DatabricksでApache Sparkを用いて操作するデータファイルはクラウドオブジェクトストレージに格納されます。接続を設定する際のガイダンスについては以下の記事をご覧ください:

ブロックストレージとは?

クラウドコンピューティングにおいて、ブロックストレージやディスクストレージは、単に「ハードドライブ」とも呼ばれる従来型のハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)を指します。クラウドコンピューティング環境にブロックストレージをデプロイする際、通常は1つ以上の物理ドライブの論理的なパーティションがデプロイさmれます。製品やクラウドベンダーによって実装が若干異なりますが、多くの場合、以下のような特性が共通しています。

  • すべての仮想マシン(VM)はアタッチされたブロックストレージボリュームを必要とします。
  • ブロックストレージボリュームが永続化されている限り、ブロックストレージボリュームにインストールされたファイルやプログラムは永続化されます。
  • ブロックストレージボリュームは多くの場合、一時的なデータストレージとして使用されます。
  • VMにアタッチされたブロックストレージボリュームは通常VMとともに削除されます。

Databricksではブロックストレージをどのように使うのか?

計算リソースを起動する際、DatabricksはVMをデプロイし、ブロックストレージボリュームをアタッチします。このブロックストレージは、計算資源の寿命における一時的データファイルの格納に用いられます。これらのファイルには、オペレーティングシステム、インストールされたライブラリ、ディスクキャッシュで用いられるデータが含まれます。Apache Sparkは効率的な並列処理やデータロードのためにバックグラウンドでブロックストレージを使用しますが、Databricksで実行されるコードのほとんどはブロックストレージに対して直接データの読み書きをしません。

お使いのドライバーノードにアタッチされたブロックストレージを使用するPythonやBashコマンドのような任意のコードを実行することができます。ドライバーのファイルシステムのファイルにアクセスするをご覧ください。

ワークスペースファイルが有効化されたワークスペースでは、Pythonユーザーはドライバーのブロックストレージを操作することなしに、ノートブックと一緒に格納されているファイルやデータを読み書きすることができますプログラムでDatabricksワークスペースのファイルを操作するをご覧ください。

Databricks 無料トライアル

Databricks 無料トライアル

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?