チュートリアル:Cosmos DB エンドポイントを使用して Azure Databricks を構築するTutorial: Implement Azure Databricks with a Cosmos DB endpoint

このチュートリアルでは、Cosmos DB に対して有効なサービス エンドポイントを使用して、VNet に導入された Databricks 環境を構築する方法について説明します。This tutorial describes how to implement a VNet injected Databricks environment with a Service Endpoint enabled for Cosmos DB.

このチュートリアルで学習する内容は次のとおりです。In this tutorial you learn how to:

  • 仮想ネットワーク内に Azure Databricks ワークスペースを作成するCreate an Azure Databricks workspace in a virtual network
  • Cosmos DB サービス エンドポイントを作成するCreate a Cosmos DB service endpoint
  • Cosmos DB アカウントを作成してデータをインポートするCreate a Cosmos DB account and import data
  • Azure Databricks クラスターを作成するCreate an Azure Databricks cluster
  • Azure Databricks ノートブックから Cosmos DB にクエリを実行するQuery Cosmos DB from an Azure Databricks notebook

前提条件Prerequisites

開始する前に、以下を行います。Before you start, do the following:

Cosmos DB サービス エンドポイントを作成するCreate a Cosmos DB service endpoint

  1. Azure Databricks ワークスペースを仮想ネットワークにデプロイしたら、Azure portal でその仮想ネットワークに移動します。Once you have deployed an Azure Databricks workspace to a virtual network, navigate to the virtual network in the Azure portal. Databricks のデプロイを通じて作成されたパブリックおよびプライベート サブネットに注目してください。Notice the public and private subnets that were created through the Databricks deployment.

    仮想ネットワーク サブネット

  2. public-subnet を選択し、Cosmos DB サービス エンドポイントを作成します。Select the public-subnet and create a Cosmos DB service endpoint. その後、 [保存] を選択します。Then Save.

    Cosmos DB サービス エンドポイントの追加

Cosmos DB アカウントを作成するCreate a Cosmos DB account

  1. Azure portal を開きます。Open the Azure portal. 画面の左上で、 [リソースの作成] > [データベース] > [Azure Cosmos DB] の順に選択します。On the upper-left side of the screen, select Create a resource > Databases > Azure Cosmos DB.

  2. [基本] タブの [インスタンスの詳細] に次の設定を入力します。Fill out the Instance Details on the Basics tab with the following settings:

    設定Setting Value
    サブスクリプションSubscription 該当するサブスクリプションyour subscription
    リソース グループResource Group <該当するリソース グループ>your resource group
    アカウント名Account Name db-vnet-service-endpointdb-vnet-service-endpoint
    APIAPI コア (SQL)Core (SQL)
    場所Location 米国西部West US
    geo 冗長性Geo-Redundancy DisableDisable
    マルチリージョン書き込みMulti-region Writes 有効化Enable

    Cosmos DB の基本アカウント情報を追加する

  3. [ネットワーク] タブを選択し、仮想ネットワークを構成します。Select the Network tab and configure your virtual network.

    a.a. 前提条件として作成した仮想ネットワークを選択し、public-subnet を選択します。Choose the virtual network you created as a prerequisite, and then select public-subnet. private-subnet には "Microsoft AzureCosmosDB のエンドポイントが存在しません" というメッセージが表示されていることに注意してください。Notice that private-subnet has the note 'Microsoft AzureCosmosDB' endpoint is missing'. これは、public-subnet のみで Cosmos DB サービス エンドポイントを有効にしたためです。This is because you only enabled the Cosmos DB service endpoint on the public-subnet.

    b.b. [Azure portal からのアクセスを許可する] が有効になっていることを確認します。Ensure you have Allow access from Azure portal enabled. この設定により、Azure portal から Cosmos DB アカウントにアクセスできるようになります。This setting allows you to access your Cosmos DB account from the Azure portal. このオプションが [拒否] に設定されている場合は、ご利用のアカウントにアクセスしようとしたときにエラーが発生します。If this option is set to Deny, you will receive errors when attempting to access your account.

    注意

    このチュートリアルでは必要ありませんが、ローカル コンピューターから Cosmos DB アカウントにアクセスできるようにしたい場合は、 [自分の IP からのアクセスを許可する] を有効にすることもできます。It is not necessary for this tutorial, but you can also enable Allow access from my IP if you want the ability to access your Cosmos DB account from your local machine. たとえば、Cosmos DB SDK を使用してご利用のアカウントに接続する場合は、この設定を有効にする必要があります。For example, if you are connecting to your account using the Cosmos DB SDK, you need to enable this setting. これが無効になっていると、"アクセスが拒否されました" エラーが発生します。If it is disabled, you will receive "Access Denied" errors.

    Cosmos DB アカウントのネットワーク設定

  4. [確認と作成] を選択した後、 [作成] を選択して仮想ネットワーク内に Cosmos DB アカウントを作成します。Select Review + Create, and then Create to create your Cosmos DB account inside the virtual network.

  5. Cosmos DB アカウントが作成されたら、 [設定][キー] に移動します。Once your Cosmos DB account has been created, navigate to Keys under Settings. プライマリ接続文字列をコピーし、後で使用できるようテキスト エディターに保存します。Copy the primary connection string and save it in a text editor for later use.

    Cosmos DB アカウントの [キー] ページ

  6. [データ エクスプローラー][新しいコンテナー] を選択して、ご利用の Cosmos DB アカウントに新しいデータベースとコンテナーを追加します。Select Data Explorer and New Container to add a new database and container to your Cosmos DB account.

    Cosmos DB の新しいコレクション

Cosmos DB にデータをアップロードするUpload data to Cosmos DB

  1. Cosmos DB のデータ移行ツールのグラフィカル インターフェイス バージョン (Dtui.exe) を開きます。Open the graphical interface version of the data migration tool for Cosmos DB, Dtui.exe.

    Cosmos DB データ移行ツール

  2. [ソース情報] タブで、 [インポート元] ドロップダウンから [CSV ファイル] を選択します。On the Source Information tab, select CSV File(s) in the Import from dropdown. 次に、 [ファイルの追加] を選択し、前提条件としてダウンロードした暴風雨データの CSV を追加します。Then select Add Files and add the storm data CSV you downloaded as a prerequisite.

    Cosmos DB データ移行ツールのソース情報

  3. [ターゲット情報] タブで、実際の接続文字列を入力します。On the Target Information tab, input your connection string. 接続文字列の形式は AccountEndpoint=<URL>;AccountKey=<key>;Database=<database> です。The connection string format is AccountEndpoint=<URL>;AccountKey=<key>;Database=<database>. 前のセクションで保存したプライマリ接続文字列には AccountEndpoint と AccountKey が含まれています。The AccountEndpoint and AccountKey are included in the primary connection string you saved in the previous section. 接続文字列の末尾に Database=<your database name> を追加して、 [確認] を選択します。Append Database=<your database name> to the end of the connection string, and select Verify. 次に、コンテナー名とパーティション キーを追加します。Then, add the Container name and partition key.

    Cosmos DB データ移行ツールのターゲット情報

  4. 概要ページが表示されるまで [次へ] を選択します。Select Next until you get to the Summary page. その後、 [インポート] を選択します。Then, select Import.

クラスターを作成してライブラリを追加するCreate a cluster and add library

  1. Azure portal で Azure Databricks サービスに移動し、 [ワークスペースの起動] を選択します。Navigate to your Azure Databricks service in the Azure portal and select Launch Workspace.

  2. 新しいクラスターを作成します。Create a new cluster. クラスター名を選択し、それ以外は既定の設定のままにしてください。Choose a Cluster Name and accept the remaining default settings.

    新しいクラスターの設定

  3. クラスターの作成後、そのクラスターのページに移動し、 [ライブラリ] タブを選択します。 [新規インストール] を選択し、Spark コネクタの jar ファイルをアップロードしてライブラリをインストールします。After your cluster is created, navigate to the cluster page and select the Libraries tab. Select Install New and upload the Spark connector jar file to install the library.

    Spark コネクタ ライブラリのインストール

    ライブラリがインストールされたことは、 [ライブラリ] タブで確認できます。You can verify that the library was installed on the Libraries tab.

    Databricks クラスターの [ライブラリ] タブ

Databricks ノートブックから Cosmos DB にクエリを実行するQuery Cosmos DB from a Databricks notebook

  1. Azure Databricks ワークスペースに移動して新しい Python ノートブックを作成します。Navigate to your Azure Databricks workspace and create a new python notebook.

    新しい Databricks ノートブックの作成

  2. 次の Python コードを実行して Cosmos DB の接続構成を設定します。Run the following python code to set the Cosmos DB connection configuration. EndpointMasterkeyDatabaseContainer を適宜変更します。Change the Endpoint, Masterkey, Database, and Container accordingly.

    connectionConfig = {
      "Endpoint" : "https://<your Cosmos DB account name.documents.azure.com:443/",
      "Masterkey" : "<your Cosmos DB primary key>",
      "Database" : "<your database name>",
      "preferredRegions" : "West US 2",
       "Collection": "<your collection name>",
      "schema_samplesize" : "1000",
      "query_pagesize" : "200000",
      "query_custom" : "SELECT * FROM c"
    }
    
  3. 次の Python コードを使用してデータを読み込み、一時ビューを作成します。Use the following python code to load the data and create a temporary view.

    users = spark.read.format("com.microsoft.azure.cosmosdb.spark").options(**connectionConfig).load()
    users.createOrReplaceTempView("storm")
    
  4. 次のマジック コマンドを使用して、データが返される SQL ステートメントを実行します。Use the following magic command to execute a SQL statement that returns data.

    %sql
    select * from storm
    

    VNet に導入された Databricks ワークスペースを、サービス エンドポイントに対応した Cosmos DB リソースに正常に接続することができました。You have successfully connected your VNet-injected Databricks workspace to a service-endpoint enabled Cosmos DB resource. Cosmos DB への接続方法の詳細については、Azure Cosmos DB Connector for Apache Spark に関するページを参照してください。To read more about how to connect to Cosmos DB, see Azure Cosmos DB Connector for Apache Spark.

リソースをクリーンアップするClean up resources

リソース グループ、Azure Databricks ワークスペース、および関連するすべてのリソースは、不要になったら削除します。When no longer needed, delete the resource group, the Azure Databricks workspace, and all related resources. ジョブを削除すると、不必要な課金を回避できます。Deleting the job avoids unnecessary billing. Azure Databricks ワークスペースを後で使用する予定がある場合は、クラスターを停止し、後で再起動することができます。If you're planning to use the Azure Databricks workspace in future, you can stop the cluster and restart it later. この Azure Databricks ワークスペースの使用を続けない場合は、以下の手順に従って、このチュートリアルで作成したすべてのリソースを削除してください。If you are not going to continue to use this Azure Databricks workspace, delete all resources you created in this tutorial by using the following steps:

  1. Azure Portal の左側のメニューで、 [リソース グループ] をクリックしてから、作成したリソース グループの名前をクリックします。From the left-hand menu in the Azure portal, click Resource groups and then click the name of the resource group you created.

  2. リソース グループのページで [削除] を選択し、削除するリソースの名前をテキスト ボックスに入力してから [削除] を再度選択します。On your resource group page, select Delete, type the name of the resource to delete in the text box, and then select Delete again.

次のステップNext steps

このチュートリアルでは、仮想ネットワークに Azure Databricks ワークスペースをデプロイし、Cosmos DB Spark コネクタを使用して Databricks から Cosmos DB データにクエリを実行しました。In this tutorial, you've deployed an Azure Databricks workspace to a virtual network, and used the Cosmos DB Spark connector to query Cosmos DB data from Databricks. 仮想ネットワークでの Azure Databricks の操作の詳細については、Azure Databricks での SQL Server の使用に関するチュートリアルに進んでください。To learn more about working with Azure Databricks in a virtual network, continue to the tutorial for using SQL Server with Azure Databricks.