Azure Databricks から Azure Cosmos DB for Apache Cassandra データにアクセスする
適用対象: Cassandra
この記事では、Azure Databricks 上で Spark から Azure Cosmos DB for Apache Cassandra を使用する方法について説明します。
前提条件
Cassandra コネクタ用の Cassandra 用 API インスタンス構成:
Cassandra 用 API のコネクタには、spark コンテキストの一部として、Cassandra への接続の詳細の初期化が必要です。 Databricks のノートブックを起動すると、spark コンテキストは既に初期化されています。停止して再初期化することはお勧めしません。 解決方法の 1 つは、クラスターの spark 構成で、Cassandra 用 API インスタンス構成をクラスター レベルで追加することです。 これは、クラスターごとに 1 回限りのアクティビティです。 Spark の構成情報に、以下のコードをスペース区切りのキー値のペアとして追加します。
spark.cassandra.connection.host YOUR_COSMOSDB_ACCOUNT_NAME.cassandra.cosmosdb.azure.com spark.cassandra.connection.port 10350 spark.cassandra.connection.ssl.enabled true spark.cassandra.auth.username YOUR_COSMOSDB_ACCOUNT_NAME spark.cassandra.auth.password YOUR_COSMOSDB_KEY
必要な依存関係を追加する
Cassandra Spark コネクタ: - Azure Cosmos DB for Apache Cassandra を Spark と統合するために、Cassandra コネクタを Azure Databricks クラスターにアタッチする必要があります。 クラスターを接続する方法は以下の通りです。
- Databricks ランタイム バージョンと Spark のバージョンを確認します。 次に Cassandra Spark コネクタと互換性がある Maven 座標を探してから、クラスターに接続します。 コネクタ ライブラリのクラスタへの接続については、「Maven パッケージまたは Spark パッケージをアップロードする」」の記事を参照してください。 Spark 3.2.1 をサポートする Databricks ランタイム バージョン 10.4 LTS を選択することをお勧めします。 Apache Spark Cassandra コネクタをクラスターに追加するには、 [Libraries](ライブラリ)>[Install New](新規インストール)>[Maven] を選択し、Maven 座標に
com.datastax.spark:spark-cassandra-connector-assembly_2.12:3.2.0
を追加します。 Spark 2.x を使用する場合は、Spark バージョン 2.4.5 を使用した環境で、maven 座標com.datastax.spark:spark-cassandra-connector_2.11:2.4.3
で spark コネクタを使用することをお勧めします。
- Databricks ランタイム バージョンと Spark のバージョンを確認します。 次に Cassandra Spark コネクタと互換性がある Maven 座標を探してから、クラスターに接続します。 コネクタ ライブラリのクラスタへの接続については、「Maven パッケージまたは Spark パッケージをアップロードする」」の記事を参照してください。 Spark 3.2.1 をサポートする Databricks ランタイム バージョン 10.4 LTS を選択することをお勧めします。 Apache Spark Cassandra コネクタをクラスターに追加するには、 [Libraries](ライブラリ)>[Install New](新規インストール)>[Maven] を選択し、Maven 座標に
Azure Cosmos DB for Apache Cassandra 固有のライブラリ: - Spark 2.x を使用している場合は、Cassandra Spark コネクタから Azure Cosmos DB for Apache Cassandra への再試行ポリシーを構成するためにカスタムの接続ファクトリが必要です。 ライブラリをクラスタに接続するために、
com.microsoft.azure.cosmosdb:azure-cosmos-cassandra-spark-helper:1.2.0
の Maven 座標を追加します。
注意
Spark 3.x を使用している場合、上記の Azure Cosmos DB for Apache Cassandra 固有のライブラリをインストールする必要はありません。
警告
この記事で示される Spark 3 サンプルは、Spark バージョン 3.2.1 と、対応する Cassandra Spark Connector の com.datastax.spark:spark-cassandra-connector-assembly_2.12:3.2.0 でテストされています。 それより後のバージョンの Spark や Cassandra コネクタは、予期したとおりに機能しない場合があります。
サンプル ノートブック
Azure Databricks のサンプル ノートブックの一覧を GitHub リポジトリからダウンロードできます。 これらのサンプルには、Spark から Azure Cosmos DB for Apache Cassandra への接続方法や、データに対してさまざまな CRUD 操作を実行する方法が含まれています。 また、Databricks のクラスタ ワークスペースにすべてのノートブックをインポートして、実行することもできます。
Spark Scala プログラムから Azure Cosmos DB for Apache Cassandra へのアクセス
Azure Databricks 上で自動化されたプロセスとして実行させる Spark プログラムは、spark-submit を使用してクラスタに送信され、Azure Databricks のジョブがスケジュール実行されます。
Azure Cosmos DB for Apache Cassandra との連携に向けて Spark Scala プログラムを構築し始めるときに参考になるリンクを次に示します。
- Spark Scala から Azure Cosmos DB for Apache Cassandra に接続する方法
- Spark Scala プログラムを Azure Databricks 上の自動化されたジョブとして実行する方法
- Cassandra 用 API を使用する場合のサンプル コードの一覧
次のステップ
Java アプリケーションを使用して Cassandra 用 API アカウント、データベース、テーブルを作成してみましょう。