Couchbase への接続
コンセプト情報
Couchbase は非 SQL 文書指向データベースです。Couchbase データをインポートするには、Couchbase データ コネクターを使用します。
メモ
Analytics は任意のコネクターとして Couchbase を提供します。データ アクセス ウィンドウでこのコネクターを使用できない場合、一般的に、インストール中にコネクターが選択されていないことが原因です。詳細については、任意の Analytics データ コネクター と Python エンジンをインスト-るするを参照してください。
作業を開始する前に
Couchbase に接続するには、以下を収集する必要があります。
- クエリとインデックス サービスが有効な Couchbase インスタンスの 1 つ以上のノード
- データベース サーバーのホスト名
- 正しい接続ポート
- 選択した認証方法の該当する資格情報
Couchbase インスタンスで認証が必要な場合、1 つ以上のバケットの名前とパスワードを指定する JSON 文字列または JSON ファイルを提供する必要があります。詳細については、JSON 認証形式を参照してください。
- 有効な SSL 証明書(SSL 経由で接続する場合)
接続の前提条件の収集については、組織の Couchbase 管理者に支援を仰いでください。管理者から支援を得られない場合は、あなたまたは管理者から Couchbase のサポートにお問い合わせください。
Couchbase 接続を作成する
- Analytics のメイン メニューから、[インポート > データベースとアプリケーション]を選択します。
- ACL コネクター セクションの[新規の接続 ]タブから、Couchbaseを選択します。
ヒント
使用可能なコネクターのリストをフィルタリングするには、[接続のフィルタリング]ボックスに検索文字列を入力します。コネクターはアルファベット順に表示されます。
- [データ接続の設定]パネルが開いたら、接続設定を入力し、パネルの下部にある[保存して接続]をクリックします。
デフォルトの接続名を使用するか、新しい接続名を入力します。
Couchbaseの接続は、[既存の接続]タブに保存されます。今後、Couchbaseに接続するには、保存したこの接続を使用できます。
接続が確立されると、データ アクセス ウィンドウが開いてステージング領域が表示されるので、データのインポートを開始できます。Couchbaseからデータをインポートする方法については、データ アクセス ウィンドウの作業を参照してください。
接続設定
設定 | 説明 | 例 |
---|---|---|
サーバー |
Couchbase サーバーのホスト名または IP アドレス。この値は HTTP または HTTPS URL に設定できます。 |
couchbase-server.com |
ポート | Couchbase サーバーを実行するポート。 | 8093 |
認証機構 |
Couchbase サーバーに接続するときに使用する認証メカニズム。
|
|
資格情報 |
Couchbase サーバー インスタンスで認証するために、1 つ以上のユーザーまたはバケットの名前とパスワードを指定する JSON 文字列。資格情報文字列は次の形式を使用する必要があります。 [{"user": "[UserName1]", "pass":"[Password1]"}, |
|
資格情報ファイル |
Couchbase サーバー インスタンスで認証するための資格情報を含む JSON ファイルへの完全パス。 JSON ファイルには、複数のユーザーまたはバケットの名前とパスワードを含める必要があります。 |
|
SSL の有効化 | Couchbase サーバーに接続するときに SSL を使用するかどうかを指定します。 | false |
SSL 証明書 |
[SSL を有効にする]を True に設定するときに、サーバーから許可される証明書。 次のいずれかを使用できます。
コンピューターから信頼されない他の認定書はすべて拒否されます。 |
C:\cert.cer |
詳細設定
設定 | 説明 | 例 |
---|---|---|
クエリ モード |
クエリを Couchbase サーバーに送信するときに使用するクエリ モードを指定します。
|
SQL |
一貫性 |
インデックス スキャン中に施行するデータ一貫性のレベル。このプロパティを次の値のいずれかに設定します。
|
REQUEST_PLUS |
ロード バランサの有効化 | ドライバーが Couchbase クラスターのノード間でロード バランシングとフェールオーバーをサポートするかどうかを指定します。 | |
サンプル サイズ | SchemaMapOperation プロパティの生成中にデータの構造を検出するためにドライバーが抽出する文書の数。 | 100 |
型名リスト | 文書タイプを指定するためにバケットが使用する属性のカンマ区切りのリスト。各リスト項目は、バッククォート(`)で囲まれた、コロン(:)、バッククォート(`)で囲まれた属性名でなければなりません。 | `product`:`type`,`store`:`type`, `customer`:`jsonType`,`sales`:`type` |
Couchbase の問い合わせ
JSON 認証形式
[{"user" : "userName1", "pass" : "passWord1"}, {"user" : "userName2", "pass" : "passWord2"}]
SQL クエリと N1QL API 呼び出し
コネクターは Couchbase Server に対して標準の SQL クエリを使用し、標準 SQL-92 クエリを同等の N1QL クライアント API 呼び出しに変換します。この変換により、Couchbase Server インスタンスに対して標準クエリを実行できます。クエリを完全に変換できない場合は、クエリの変換された部分が 1 つ以上の N1QL クエリとして処理のために Couchbase Server インスタンスに渡され、クエリの変換されない部分がコネクターによって処理されます。
メモ
データ構造の名前は大文字と小文字を区別するため、クエリのテーブル、列、バケットなどの構造の大文字と小文字がデータベースの構造と一致することを確認する必要があります。
スキーマ定義
Couchbase は従来の関係テーブルおよび列と比べ、データ型と構造の異なるルールに従うデータを保存できます。Couchbase データはバケットと文書に整理され、ネストされた配列または異なる型の要素の配列を含むことができます。このデータは関係形式にマッピングされる必要があります。これを実現するために、コネクターは Couchbase データを ODBC 互換形式にマッピングするスキーマ定義を生成します。
必要なスキーマ定義がないデータベースに接続するときには、コネクターは次を実行して自動的に生成します。
- データベースで特定された各文書型に対して、コネクターは複数の文書からデータを抽出し、データの構造を検出します。
- コネクターはタイプに基づいてすべての文書をコレクションに整理し、スキーマ定義の部分としてこれらのコレクションを保存します。スキーマ定義を使用すると、ドライバーはテーブルとしてコレクションを公開します。
- データベースで検出された各配列に対して、コネクターは仮想テーブルを生成して、データを展開し、スキーマの一部としてこれらの仮想テーブルを保存します。スキーマを使用して、ドライバーは標準テーブルとして仮想テーブルを公開します。
- コネクターは各列の Couchbase データ型を定義し、各 Couchbase データ型を、最大数の値を最適な方法で表すことができる SQL データ型にマッピングします。
基本テーブル
基本テーブルは Couchbase 文書のコレクションのデータを表します。文書は行として表示され、配列ではないすべての属性は列として表示されます。各基本テーブルでは、コネクターは主キー PK を作成します。これは、各行の元になる Couchbase 文書を特定します。
コネクターでは、基本テーブルの名前は表される文書型です。Couchbase では、基本テーブルの名前はデータの元となるバケットです。
仮想テーブル
仮想テーブルは配列のサポートを提供します。各仮想テーブルには 1 つの配列のデータがあり、テーブルの各行は配列の要素を表します。要素に配列が含まれる場合、コネクターは必要に応じて追加の仮想テーブルを作成し、ネストされたデータを展開します。
各仮想テーブルで、コネクターは、配列の元になる文書を特定し、関連付けられた基本テーブルから列を参照する主キー列名を作成します。また、コネクターはインデックス列(名前のサフィックス _IDX)を作成し、配列内の要素の位置を示します。
例
次の例は、Couchbase データベース名 ExampleDatabase にコネクターが接続する基本テーブルと仮想テーブルを示します。これには 2 つの文書 Customer_123221 と Order_221354 があります。
Customer_123221 文書は Customer 型であり、次の属性を含みます。SavedAddresses 属性は配列です。
{
"Type": "Customer",
"Name": "John Doe",
"SavedAddresses": ["123 Main St.", "456 1st Ave"]
}
Order_221354 文書は Order 型であり、次の属性を含みます。CreditCard属性はオブジェクトであり、Items 属性はオブジェクトの配列です。
{
"Type": "Order",
"CustomerID":"Customer_123221",
"CreditCard":
{
"Type":"Visa",
"CardNumber":"4111 1111 1111 1111",
"Expiry":"12/12",
"CVN":"123"
},
"Items":
[
{"ItemID":89123, "Quantity":1},
{"ItemID":92312, "Quantity":5}
]
}
Analytics が ExampleDatabase に接続し、スキーマを生成するときには、コネクターは各文書タイプのコレクションを作成し、これらのコレクションを次に示す 2 つの基本テーブルとして公開します。
基本テーブル Customer
PK | 名前 |
---|---|
"Customer_123221" | John Doe |
基本テーブル順序
PK | 顧客 ID |
CreditCard _Type |
CreditCard _Number |
CreditCard |
CreditCard _CVN |
---|---|---|---|---|---|
"Order_ 221354" |
"Customer_ 123221" |
"Visa" | "4111 1111 1111 1111" |
"12/12" | "123" |
Customer_123221 文書の SavedAddresses 配列と Order_221354 文書の Items 配列はこれらの基本テーブルには表示されません。代わりに、コネクターは各配列の仮想テーブルを生成します。
SavedAddresses テーブル
PK | SavedAddresses_IDX | SavedAddresses |
---|---|---|
"Customer_123221" | 0 | "123 Main St." |
"Customer_123221" | 1 | "456 1st Ave" |
Items テーブル
PK | Items_IDX | ItemID | Quantity |
---|---|---|---|
"Order_221354" | 0 | 89123 | 1 |
"Order_221354" | 1 | 92312 | 5 |