コンセプト情報
Apache Cassandra は非 SQL データベース管理システムです。Apache Cassandra データをインポートするには、Cassandra データ コネクターを使用します。
メモ
Analytics は任意のコネクターとして Cassandra を提供します。データ アクセス ウィンドウでこのコネクターを使用できない場合、一般的に、インストール中にコネクターが選択されていないことが原因です。詳細については、任意の Analytics データ コネクター と Python エンジンをインスト-るするを参照してください。
作業を開始する前に
Cassandra に接続するには、以下を収集する必要があります。
- データベース サーバーのホスト名または IP アドレス
- 正しい接続ポート
- ユーザー名とパスワード(認証を使用する場合)
接続の前提条件の収集については、組織の Cassandra 管理者に支援を仰いでください。管理者から支援を得られない場合は、あなたまたは管理者から Cassandra のサポートにお問い合わせください。
Cassandra 接続を作成する
- Analytics のメイン メニューから、[インポート > データベースとアプリケーション]を選択します。
- ACL コネクター セクションの[新規の接続 ]タブから、Cassandraを選択します。
ヒント
使用可能なコネクターのリストをフィルタリングするには、[接続のフィルタリング]ボックスに検索文字列を入力します。コネクターはアルファベット順に表示されます。
- [データ接続の設定]パネルが開いたら、接続設定を入力し、パネルの下部にある[保存して接続]をクリックします。
デフォルトの接続名を使用するか、新しい接続名を入力します。
Cassandraの接続は、[既存の接続]タブに保存されます。今後、Cassandraに接続するには、保存したこの接続を使用できます。
接続が確立されると、データ アクセス ウィンドウが開いてステージング領域が表示されるので、データのインポートを開始できます。Cassandraからデータをインポートする方法については、データ アクセス ウィンドウの作業を参照してください。
接続設定
基本設定
設定 | 説明 | 例 |
---|---|---|
ホスト |
Cassandra サーバーのホスト名または IP アドレス。 |
|
ポート | Cassandra データベースの TCP ポート。 | 9042 |
デフォルトの鍵空間 | Cassandra で接続するデフォルトのキースペース(スキーマ)。 | |
認証機構 |
Cassandra サーバーへの接続で使用する認証メカニズム。使用可能なオプション:
|
認証なし |
ユーザー名 | Cassandra サーバーにアクセスするために使用するユーザー名。 | |
パスワード | 指定したユーザー名に対応するパスワード。 |
詳細設定
設定 | 説明 | 例 |
---|---|---|
クエリ モード |
クエリを Cassandra に送信するときに使用するクエリ モードを指定します。オプション:
|
SQL (CQL へのフォールバックあり) |
一貫性を調整可能 | クエリが成功するためにクエリを処理する必要がある特定の Cassandra または Cassandra レプリカの数。 | ONE |
ロード バランサのポリシー | 使用されるロード バランサ ポリシーを指定します。 | |
バイナリ型列の長さ | BLOB 列で報告するデフォルトの列長さ。 | 4000 |
文字列型列の長さ | ASCII、TEXT、VARCHAR 列で報告するデフォルトの列長さ。 | 4000 |
仮想テーブル名の区切り文字 | コレクションから作成された仮想テーブルを命名するための区切り文字。 仮想テーブルの名前は、元のテーブルの名前、区切り文字、コレクションの名前の順で付けられます。 |
_vt_ |
トークン認識の有効化 | ロードバランシングおよびレイテンシを改善するためのトークン認識ポリシーを使用するかどうかを指定します。 | |
レイテンシー認識の有効化 | ドライバーがレイテンシ認識アルゴリズムを使用して、低パフォーマンス ノードから負荷を分散する必要があるかどうかを指定します。 | |
ヌル値挿入の有効化 | ドライバーが INSERT 分で指定されたすべての NULL 値を挿入する必要があるかどうかを指定します。 | |
大文字と小文字の区別の有効化 |
ドライバーがスキーマ、テーブル、列名で大文字と小目を区別するかどうかを指定します。 このオプションが有効な場合、すべてのスキーマ、テーブル、列を二重引用符(")で囲む必要があります。 |
|
文字列データ型での SQL_WVARCHAR の使用 | テキストおよび varchar 型で SQL_WVARCHAR を使用するかどうかを指定します。 | |
ページングの有効化 | 大きい結果セットをページに分割するかどうかを指定します。 | |
ページあたりの行数 | [ページングを有効にする]オプションを有効にした場合は、このオプションを使用して、各ページに表示する最大行数を指定します。 | 10000 |
SSL オプション |
ドライバーが Cassandra サーバーに接続するために SSL を使用するかどうかを指定します。オプション:
|
SSL なし |
サーバーのホスト名検証の有効化 | ドライバーがサーバーのホスト名を SSL 証明書のホスト名と照合する必要があるかどうかを指定します。 | |
Ssltrustedcertspath | サーバーを検証するための証明書を含む .pem ファイルへの完全パス。 | |
クライアント側の証明書 | クライアントを検証するための証明書を含む .pem ファイルへの完全パス。 | |
クライアント側の秘密鍵 | クライアントを検証するために使用される秘密鍵を含むファイルへの完全パス。 | |
鍵ファイルのパスワード | [クライアント側秘密鍵]フィールドで指定された秘密鍵ファイルのパスワード。 |
Cassandra の問い合わせ
Apache Cassandra 設計の利点の 1 つは、非正規化されたデータを少ない数のテーブルに格納できることです。セット、リスト、マップなどのネストされたデータ構造を利用することで、トランザクションが簡易化されます。ただし、Analytics はこのデータ型へのアクセスをサポートしません。コレクション(セット、リスト、マップ)内のデータを仮想テーブルに再正規化することで、コネクターを使用して、ユーザーは直接データを操作できますが、Cassandra の非正規化された形式のデータの保存は残します。
テーブルにコレクション列が含まれる場合は、初めてテーブルが問い合わせられるときに、コネクターは次の仮想テーブルを作成します。
- コレクション列を除く、実際のテーブルと同じデータを含む「基本」テーブル。
- 各コレクション列の仮想テーブル。ネストされたデータを展開します。
仮想テーブルは実際のテーブルのデータを参照し、コネクターが非正規化されたデータにアクセスできるようにします。仮想テーブルを問い合わせることで、ODBC 経由で Cassandra コレクションの内容にアクセスできます。
基本テーブルと仮想テーブルは、データベースに存在するテーブルのリストに追加テーブルとして表示されます。基本テーブルは表される実際のテーブルと同じ名前を使用します。コレクションを表す仮想テーブル名は実際のテーブル名、区切り文字(デフォルトは _vt_)、列の名前を使用して設定されます。
例
ExampleTable は Cassandra データベース テーブルであり、整数の主キー列 pk_int、リスト列、マップ列、およびセット列(StringSet)を含みます。
コレクションを含むソース テーブル
pk_int | 一覧 | Map | StringSet |
---|---|---|---|
1 | ["1","2","3"] | {"S1" : "a", "S2" : "b"} | {"a", "b", "c"} |
3 | ["100","101","102","105"] | {"S1" : "t"} | {"a","e"} |
コネクターは複数の仮想テーブルを生成し、この単一テーブルを表します。最初の仮想テーブルは基本テーブルです。
基本テーブル
pk_int |
---|
1 |
3 |
基本テーブルには、コレクションを除く元のデータベース テーブルと同じデータを含みます。これはこのテーブルから省略され、他の仮想テーブルで展開されます。
次のテーブルは、List、Map、StringSet 列からデータを再正規化する仮想テーブルを示します。
一覧
pk_int | List#index | List#value |
---|---|---|
1 | 0 | 1 |
1 | 1 | 2 |
1 | 2 | 3 |
3 | 0 | 100 |
3 | 1 | 101 |
3 | 2 | 102 |
3 | 3 | 105 |
Map
pk_int | Map#key | Map#value |
---|---|---|
1 | S1 | a |
1 | S2 | 十億 |
3 | S1 | 兆 |
StringSet
pk_int | StringSet#value |
---|---|
1 | a |
1 | 十億 |
1 | c |
3 | a |
3 | e |
仮想テーブルの外部キー列は実際のテーブルの主キー列を参照し、仮想テーブル行が対応する実際のテーブル行を示します。列名が #index または #key で終わる列は、元のリストまたはマップ内のデータの位置を示します。列名が #value で終わる列は、コレクションから展開されたデータを含んでいます。
データ コネクターの更新
Analytics またはロボット エージェントをアップグレードする場合は、いずれかの Analytics データ コネクターを使ってデータをインポートするスクリプト(ACCESSDATA コマンド)をテストする必要があります。
データ ソースまたは ODBC ドライバーのサード パーティ ベンダーが加えた変更により、1 つまたは複数のデータ コネクターを更新しなければならない可能性があります。スクリプトに作り込んだデータ接続を引き続き正常に動作させるには、それを更新する必要があります。
- インポートの再実行 接続機能を最も簡単に更新する方法は、更新されたバージョンの Analytics のデータ アクセス ウィンドウを使って、インポートを手動で実行することです。ログに記録されている ACCESSDATA コマンドをコピーし、それを使ってスクリプトを更新します。
メモ
データ ソースに接続してインポートを再実行する前に、コネクターのキャッシュを消去することで、既存の一連のテーブル名を削除します。
データ アクセス ウィンドウの[既存の接続]タブで、接続名の横にある[
>キャッシュの消去]を選択します。
- フィールド指定の更新 データ ソースまたは ODBC ドライバーのテーブル スキーマの変更と一致するように、スクリプト本体内のフィールド指定を更新しなければならない場合もあります。必要に応じてフィールド名、フィールドのデータ型、およびフィールド長とレコード長を変更します。
- フィルター処理の結果の確認 データ インポートの一環として適用したフィルター処理の結果も確認する必要があります。インポートのフィルター処理によってレコードを正しく追加または除外できたかどうかを確認します。
Apache Cassandra データ コネクターの変更内容
Apache Cassandra データ コネクターに加えられた具体的な変更内容を次に挙げます。
Analytics のバージョン | 変更 |
---|---|
14.2 |
本コネクターでは、Apache Cassandra 2.0 への接続がサポートされなくなりました。 接続は、Apache Cassandra 2.1、2.2、3.0 に対してのみ行われます。 |