Datastax の Cassandra へ CData Cassandra Driver から接続する方法

f:id:sugimomoto:20210914153546p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

オープンソースのNoSQL で有名な Cassandraですが、現在様々なクラウドサービスでスケーラビリティかつ簡単に扱えるようになっていますね。

その中でも今回はとても手軽に環境構築ができる Datastax というサービスで提供されている Cassandra へ CData Driver で接続する方法を紹介したいと思います。

www.datastax.jp

f:id:sugimomoto:20210913141854p:plain

www.cdata.com

f:id:sugimomoto:20210913141902p:plain

Datastax のアカウントについて

まず、接続先となるDatastaxの環境を用意しましょう。

Datastax アカウントは2021年09月現在、無料で作成することができ、そのなかのApache Cassandra のマネージド・サービスである「Astera DB」は毎月最大80GBまで無料で利用できるようになっています。

今回はこの無料枠を利用して環境を作成しました。

https://www.datastax.jp/

f:id:sugimomoto:20210913141908p:plain

データベースの作成

アカウントを作成したら、Databaseを追加しましょう。

管理画面にログインして「Create Database」をクリックします。

f:id:sugimomoto:20210913141913p:plain

任意の Database Name と最初に構成する Keyspace の Name を入力します。

また Datastax はGoogle Cloud、 Amazon Web Service、Microsoft Azure の中から構成する先の環境を選ぶことができます。

今回は特に理由が無かったので、普段からよく使っている AWSベースで構成してみました。

f:id:sugimomoto:20210913141920p:plain

Create Databaseを実行すると以下のようにDatabaseの構成が開始されます。このStatus が「Active」になればOKです。

f:id:sugimomoto:20210913141925p:plain

サンプルデータをロードする

せっかくなので接続した際わかりやすいようにサンプルデータもロードしておきましょう。

対象のDatabaseに移動して「Load Data」をクリックします。

f:id:sugimomoto:20210913141930p:plain

「Option 2:Load an example dataset」から「Movies and TV Shows」のデータをロードしてみます。

f:id:sugimomoto:20210913141935p:plain

次の画面でサンプルデータの中身とテーブル名の指定

f:id:sugimomoto:20210913141940p:plain

併せて partition key や clustering column を指定します。

f:id:sugimomoto:20210913141945p:plain

最後に Load 先の Database と Keyspace を選択すればOKです。

f:id:sugimomoto:20210913141951p:plain

Application Token の作成

続いて Driver から接続する際に必要となる「Application Token」を作成します。

「Connect」→「Document API」に移動し、以下の「here」をクリックして、Token Management 画面に移動します。

f:id:sugimomoto:20210913141957p:plain

Token Management画面に移動したら、任意のRoleを選択してTokenを作成します。

f:id:sugimomoto:20210913142002p:plain

これで以下のようにClientID・ClientSecret・Tokenが生成されるので、控えておきます。

f:id:sugimomoto:20210913142008p:plain

接続用の各種証明書ファイルを入手する

CData Driverからの接続には Application Token と併せて、各種証明書の情報が必要になります。

この証明書は「Connect」→「Java」→「Download Bundle」で入手できます。

f:id:sugimomoto:20210913142014p:plain

ZIPファイルがダウンロードできるので、解凍すると以下のようにca.crt、cert.pfx などの各種証明書が確認できます。

f:id:sugimomoto:20210913142019p:plain

また、config.jsonに接続先のサーバー情報なども可能されているので、確認しておきましょう。

f:id:sugimomoto:20210913142024p:plain

以上でDatastax側の準備は完了です。

CData Cassandra Driver から接続する

それでは、CData Cassandra Driver から接続を試してみましょう。

今回は CData Cassandra ODBC Driver を使いますが、基本的接続方法はJDBCやADO.NET、Excel Add-inでも共通です。

以下のURLから30日間のトライアルをダウンロードしてきて

www.cdata.com

f:id:sugimomoto:20210913142029p:plain

セットアップを実行しましょう。

f:id:sugimomoto:20210913142037p:plain

セットアップが完了すると、ODBC DSNの接続構成画面が立ち上がるので、今まで取得した情報を元に以下のように設定を行います。

プロパティ名 備考
Server 例)83dcfcce-d66f-4e15-8e5e-36e9563cebfb-ap-southeast-1.db.astra.datastax.com config.json の Host の値を指定します。
User 例)tKYtFNEGDhGYeDlazreXXPYH 生成したApplication Token のClient IDを指定します。
Password SG3hJ252kfYKLTdteoteFZXjuyo8I9yulsrTl_vCES1i9blOULaefl-2Pq_G2rkqtj7PMTn_9ExE6QfbRx4AuqAGe5aoY1e0+diT2fTLKMrAdxnRwb0BOCXY2ec4O9hI 生成したApplication Token のClient Secret を指定します。
Server 例)samplekeystore 接続したいkey store を指定します。
UseSSL True
SSLClientCert C:\Work\Datastax\secure-connect-sample\cert.pfx cert.pfx ファイルのパスを指定します。
SSLClientCertType PFXFILE
SSLClientCertPassword 例)xEl8V06tBX73rJwQY XXXX
SSLServerCert C:\Work\Datastax\secure-connect-sample\ca.crt ca.crt ファイルのパスを指定します。

f:id:sugimomoto:20210913142043p:plain

入力完了後、「接続テスト」をクリックして、以下のようにメッセージが表示されればOKです。

f:id:sugimomoto:20210913142048p:plain

「OK」をクリックして設定を保存しましょう。

Power BI から接続する

接続構成が完了したので、任意のツールから接続を試してみましょう。

今回はODBC接続が利用できる Microsoft の BIツール、Poewr BI Desktop を試してみました。

powerbi.microsoft.com

Power BI Desktop を立ち上げて「データを取得」をクリックし

f:id:sugimomoto:20210913142052p:plain

接続先の一覧から「ODBC」を選択します。

f:id:sugimomoto:20210913142057p:plain

ODBCのDSN名で先程構成したDSNを選択すると

f:id:sugimomoto:20210913142101p:plain

以下のようにCassandraのKeyspaceに含まれる先ほど登録したサンプルデータが確認できました。

f:id:sugimomoto:20210913142107p:plain

これでデータの読み込みを行うと、以下のようにPower BI にCassandraのデータがスムーズに取り込めます。

f:id:sugimomoto:20210913142112p:plain

あとはPower BIの機能でビジュアライズが可能です。

f:id:sugimomoto:20210913142117p:plain

トライアル・お問い合わせ

関連コンテンツ