USER MANUALS


Databricks API と DBFS を使用した一括読み込み

Databricks API を使用してデータ一括読み込みを実行できます。

重要

セットアップは簡単ですが、数百万行以上を読み込む場合、速度は「 Databricks 」セクションで説明する代替方法よりも大幅に遅くなります。

一括読み込みを行うには、Virtual DataPort が動作するホストで以下の手順に従います。

  1. Python 3 をインストールします。

  2. Python パッケージマネージャー (PIP) をインストールします。これは Python バージョン 3.4 以降にデフォルトで同梱されています。PIP をインストールしていない場合、 このページ からダウンロードしてインストールできます。

  3. コマンドラインで以下のコマンドを実行して Databricks クライアント をインストールします。

    pip install databricks-cli
    
  4. Databricks クライアント認証をセットアップします。認証を構成するには、 個人アクセストークン を取得する必要があります。その後、Virtual DataPort の起動に使用する場合と同じユーザーアカウントで次のコマンドを実行します。

    databricks configure --token
    

    このコマンドを実行すると、ユーザーのホームディレクトリに .databrickscfg 構成ファイルが作成されます。

  5. 次のコマンドを実行して、すべて正常に動作しているかどうかを確認します。

    dbfs ls
    
  6. 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 bulk data load configuration

Databricks のデータ一括読み込みの構成

実行時に、クエリに Databricks への一括読み込みが含まれる場合、Virtual DataPort は、以下の 2 つの処理を実行します。

  1. 一時データファイルを Databricks ファイルシステム (DBFS) にアップロードします。これを行うために、Virtual DataPort サーバーが動作するホストで dbfs cp ... コマンドをローカルに実行します。

  2. 手順 1 でアップロードされたデータに関連するテーブルを Databricks に作成します。

DBFS での外部ファイルシステムのマウント

Databricks は独自のファイルシステムを提供しています。このシステムを使用して、テーブルのデータを保存できます。また、「AWS S3 バケット」、「Azure Blob Storage」、「Azure Data Lake」などの外部オブジェクトストレージも使用できます。オブジェクトストレージを DBFS にマウントすることによって、DBFS に存在しているかのようにオブジェクトストレージ内のオブジェクトにアクセスできます。

AWS S3 バケットのマウント

このセクションでは、AWS S3 バケットを DBFS にマウントしてアクセスする手順について説明します。マウントは、AWS S3 の場所を参照するポインターになります。

  1. AWS の アクセスキーとシークレットキー ([Access Keys (Access Key ID and Secret Access Key)] セクション) を取得します。

  2. Databricks インスタンスの Web サイト``https://<my_databricks_instance>.cloud.databricks.com`` にアクセスします。

  3. 新しい Python ノートブックを作成します。これを行うには、[Create a Blank Notebook] をクリックします。

  4. 以下の 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))
    
  5. 自分のアクセスキー、シークレットキー、および S3 バケット名の値を設定します。

  6. [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)

注釈

他の外部オブジェクトストレージをマウントできます。詳細については、この リンク をクリックしてください。

Add feedback