Databricks¶
データ一括読み込みを実行するように Databricks データソースを構成するには、「 Spark 」で説明されているのと同じプロセスを実行します。これは Databricks によって推奨される方法です。
または別の方法として、Databricks API を使用して、データ一括読み込みを実行できます。これを行うには、Virtual DataPort が動作するホスト上で Databricks クライアント をインストールします。これを行うには、以下の手順に従って実施してください。
Python 3 をインストールします。
Python パッケージマネージャー (PIP) をインストールします。これは Python バージョン 3.4 以降にデフォルトで同梱されています。PIP をインストールしていない場合、 このページ からダウンロードできます。
Databricks クライアントをインストールします。これを行うには、コマンドラインを開いて、次のコマンドを実行します。
pip install databricks-cli
Databricks クライアント認証をセットアップします。認証を構成するには、 個人アクセストークン を取得する必要があります。その後、Virtual DataPort の起動に使用するのと同じユーザーアカウントで次のコマンドを実行します。
databricks configure --token
このコマンドを実行すると、ユーザーのホームディレクトリに
.databrickscfg
構成ファイルが作成されます。次のコマンドを実行して、すべて正常に動作しているかどうかを確認します。
dbfs ls
Administration Tool で JDBC データソースを編集して、[Read & Write] タブをクリックします。[Use bulk data load APIs] をチェックして、以下の情報を指定します。
Databricks executable location:「
dbfs
」と入力します。これは Databricks クライアント (dbfs
) へのパスです。このユーティリティは、通常、システムパスに含まれているため、ファイルのフルパスを入力する必要はありません。DBFS URI: Virtual DataPort がデータファイルをアップロードする URI です。たとえば、「
dbfs://user/databricks/warehouse
」と入力します。Server time zone: Databricks サーバーのタイムゾーンを選択します。
Table format: Databricks でテーブルを作成するために使用するファイル形式を選択します。

Databricks のデータ一括読み込みの構成¶
実行時に、クエリに Databricks への一括読み込みが含まれる場合、Virtual DataPort は、以下の 2 つの処理を実行します。
一時データファイルを Databricks ファイルシステム (DBFS) にアップロードします。これを行うために、Virtual DataPort サーバーが動作するホストで
dbfs cp ...
コマンドをローカルに実行します。手順 1 でアップロードされたデータに関連するテーブルを Databricks に作成します。
DBFS での外部ファイルシステムのマウント¶
Databricks は独自のファイルシステムを提供しています。それを使用して、テーブルのデータを保存できます。また、 AWS S3 buckets 、 Azure Blob Storage 、 Azure Data Lake などの外部オブジェクトストレージも使用できます。オブジェクトストレージを DBFS にマウントすることによって、オブジェクトストレージ内のオブジェクトに、あたかも DBFS に存在しているかのようにアクセスできます。
AWS S3 バケットのマウント
このセクションでは、AWS S3 バケットを DBFS にマウントしてアクセスする手順について説明します。マウントは、AWS S3 の場所を参照するポインターになります。
AWS の アクセスキーとシークレットキー ([Access Keys (Access Key ID and Secret Access Key)] セクション) を取得します。
Databricks インスタンスの Web サイト
https://<my_databricks_instance>.cloud.databricks.com
にアクセスします。新しい Python ノートブックを作成します。これを行うには、[
Create a Blank Notebook
] をクリックします。以下の Python ノートブックをコピーして貼り付けます。
ACCESS_KEY = "<aws-access-key>" SECRET_KEY = "<aws-secret-key>" AWS_BUCKET_NAME = "<aws-s3-bucket-name>" ENCODED_SECRET_KEY = SECRET_KEY.replace("/", "%2F") MOUNT_NAME = "s3_bucket" dbutils.fs.mount("s3a://%s:%s@%s" % (ACCESS_KEY, ENCODED_SECRET_KEY, AWS_BUCKET_NAME), "/mnt/%s" % MOUNT_NAME) display(dbutils.fs.ls("/mnt/%s" % MOUNT_NAME))
自分のアクセスキー、シークレットキー、および S3 バケット名の値を設定します。
[
Run All
] をクリックします。
ノートブックを実行した後、S3 バケットが、パス dbfs:/mnt/s3_bucket/
にマウントされます。
注釈
S3 バケットと Databricks インスタンスは同じ AWS リージョンで動作する必要があります。そうしないと、データを Databricks に挿入するプロセスの速度が大幅に低下します。
AWS S3 バケットのアンマウント
AWS S3 バケットをアンマウントするには、新しい Python ノートブックを次の内容で作成します。
MOUNT_NAME = "s3_bucket" dbutils.fs.unmount("/mnt/%s" % MOUNT_NAME)
注釈
他の外部オブジェクトストレージをマウントできます。詳細については、この リンク をクリックしてください。