Anypoint Studio で Cassandra 用 Anypoint Connector (Cassandra Connector) を設定する手順は、次のとおりです。
-
プロジェクトにコネクタを追加します。
-
コネクタを設定します。
-
コネクタの入力元を設定します。
Studio プロジェクトへのコネクタの追加
Anypoint Studio には、Studio プロジェクトにコネクタを追加する 2 つの方法があります。Studio タスクバーの Exchange ボタンから追加するか、[Mule Palette (Mule パレット)] ビューから追加します。
Exchange を使用してコネクタを追加する
-
Studio で Mule プロジェクトを作成します。
-
Studio タスクバーの左上にある Exchange アイコン (X) をクリックします。
-
Exchange で、[Login (ログイン)] をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。
-
Exchange で、「Cassandra」を検索します。
-
コネクタを選択して [Add to project (プロジェクトに追加)] をクリックします。
-
画面の指示に従ってコネクタをインストールします。
Studio でコネクタに追加する
-
Studio で Mule プロジェクトを作成します。
-
[Mule Palette (Mule パレット)] ビューで、[(X) Search in Exchange ((X) Exchange 内を検索)] をクリックします。
-
[Add Modules to Project (モジュールをプロジェクトに追加)] で、検索項目に「Cassandra」と入力します。
-
[Available modules (使用可能なモジュール)] で、このコネクタの名前をクリックします。
-
[Add (追加)] をクリックします。
-
[Finish (完了)] をクリックします。
Authentication (認証)
Cassandra データベースで認証が有効になっている場合、Cassandra Connector からアクセスするときにログイン情報を提供する必要があります。Cassandra では基本認証のみがサポートされています。Cassandra データベースにログイン情報を提供するには、Cassandra Connector のグローバル要素に対応する値を入力します。
Studio を使用した Cassandra キースペースの作成
この例では、列ファミリーをグループ化する Cassandra キースペースを作成した後、Cassandra テーブルを作成します。
キースペースを作成する
-
Anypoint Studio で新しい Mule プロジェクトを作成し、
src/main/resources/mule-app.properties の Cassandra ログイン情報を入力します。config.host=<HOST> config.port=<PORT> config.keyspace=<KEY_SPACE> config.username=<USERNAME> config.password=<PASSWORD> -
HTTP Connector をキャンバスにドラッグし、[
Host (ホスト)] と [Port (ポート)] はデフォルト値のままにして、パスを /test/createKeyspace に設定します。 -
[Transform Message] コンポーネントを Mule パレットからフローの右 (プロセス) 側にドラッグし、コンポーネントを選択して、出力ペイロードを設定します。次に例を示します。
%dw 2.0 output application/java --- { "keyspaceName": payload.keyspaceName, "replicationFactor": payload.replicationFactor, "replicationStrategyClass": payload.replicationStrategyClass } as Object { class: "org.mule.modules.cassandradb.api.CreateKeyspaceInput" } -
Create Keyspace 用の Cassandra コンポーネントをキャンバスにドラッグします。
項目 説明 Host (ホスト)
Cassandra ノードのホスト名または IP アドレスを入力します。
Port (ポート)
ポート番号を入力します。デフォルトポートは 9042 です。
Keyspace (キースペース)
Cassandra キースペースを入力します。キースペースは列ファミリーをグループ化します。
Username (ユーザー名)
Cassandra YAML ファイルで PasswordAuthenticator を有効にしている場合、Cassandra ユーザー名を入力します。
AllowAllAuthenticator を有効にしている場合、この値を空白のままにします。Password (パスワード)
PasswordAuthenticator を有効にした場合、パスワードを入力します。有効にしていない場合、この値を空白のままにします。 -
[Test Connection (接続をテスト)] オプションをクリックして、Mule が Cassandra インスタンスに接続できることを確認します。正常に接続できた場合は、[OK] をクリックして設定を保存します。それ以外の場合、無効なパラメーターを確認および修正して、再度テストします。
-
アプリケーションを実行します。ブラウザーで、次の URL を使用して、キースペース名
ks_name、複製係数 rf、および複製戦略クラス rs_class のクエリパラメーターを入力します。http://localhost:8081/simple?ks_name=simple_keyspace&rf=3&rs_class=SimpleStrategy
Cassandra テーブルを作成する
-
Anypoint Studio で新しい Mule プロジェクトを作成し、
src/main/resources/mule-app.properties の Cassandra ログイン情報を入力します。config.host=<HOST> config.port=<PORT> config.keyspace=<KEY_SPACE> config.username=<USERNAME> config.password=<PASSWORD> -
HTTP Connector をキャンバスにドラッグし、[
Host (ホスト)] と [Port (ポート)] はデフォルト値のままにして、パスを /test/createTable に設定します。 -
[Transform Message] コンポーネントを Mule パレットからフローの右 (プロセス) 側にドラッグし、コンポーネントを選択して、出力ペイロードを設定します。次に例を示します。
%dw 2.0 output application/java --- { "columns": payload.columns, "tableName": payload.tableName, "keyspaceName": payload.keyspaceName } as Object { class : "org.mule.modules.cassandradb.api.CreateTableInput" } -
Create Table 操作用の Cassandra コンポーネントをキャンバスにドラッグします。
項目 説明 Host (ホスト)
Cassandra ノードのホスト名または IP アドレスを入力します。
Port (ポート)
ポート番号を入力します。デフォルトポートは
9042 です。Keyspace (キースペース)
Cassandra キースペースを入力します。キースペースは列ファミリーをグループ化します。
Username (ユーザー名)
Cassandra YAML ファイルで
PasswordAuthenticator を有効にしている場合、Cassandra ユーザー名を入力します。AllowAllAuthenticator を有効にしている場合、この値を空白のままにします。Password (パスワード)
PasswordAuthenticator を有効にしている場合、パスワードを入力します。それ以外の場合、この値を空白のままにします。 -
[Test Connection (接続をテスト)] をクリックして、Mule が Cassandra インスタンスに接続できることを確認します。クライアントテストに成功した場合は、[OK] をクリックして設定を保存します。それ以外の場合、無効なパラメーターを確認および修正して、再度テストします。
-
Mule アプリケーションを実行します。Postman で [POST] を選択します。[Body (本文)] > [Raw (未加工)] を選択し、JSON (application/json) MIME タイプを選択して、大文字のデータ型を使用して次のテーブル記述を入力します。
{ "tableName": "users", "keyspaceName": "Excelsior", "columns": [ { "name": "id", "type": "INT", "primaryKey": "true" }, { "name": "username", "type": "TEXT", "primaryKey": "true" }, { "name": "name", "type": "TEXT", "primaryKey": "false" }, { "name": "email", "type": "TEXT", "primaryKey": "false" } ] } -
Postman で [Send (送信)] をクリックし、[Status:
200 OK (状況:200 OK)] を探します。