Couchbase への接続
Couchbase は非 SQL 文書指向データベースです。組織の Couchbase データをインポートするには、Analytics のデータ コネクターを使用します。
開始する前に
Couchbase に接続するには、以下を収集する必要があります。
- クエリとインデックス サービスが有効な Couchbase インスタンスの 1 つ以上のノード
- データベース サーバーのホスト名
- 正しい接続ポート
- 選択した認証方法の該当する資格情報
Couchbase インスタンスで認証が必要な場合、1 つ以上のバケットの名前とパスワードを指定する JSON 文字列または JSON ファイルを提供する必要があります。詳細は、JSON 認証形式を参照してください。
- 有効な SSL 証明書(SSL 経由で接続する場合)
接続の前提条件の収集については、組織のコネクター管理者に支援を仰いでください。管理者から支援を得られない場合は、あなたまたは管理者からコネクターのサポートにお問い合わせください。
Couchbase 接続を作成する
- Analytics のメイン メニューから、[インポート > データベースとアプリケーション]を選択します。
- ACL コネクター セクションの[新規の接続 ]タブから、Couchbaseを選択します。
ヒント
使用可能なコネクターのリストをフィルタリングするには、[接続のフィルタリング]ボックスに検索文字列を入力します。コネクターはアルファベット順に表示されます。
- [データ接続の設定]パネルが開いたら、接続設定を入力し、パネルの下部にある[保存して接続]をクリックします。
デフォルトの接続名を使用するか、新しい接続名を入力します。
お使いのコネクターの接続は、[既存の接続]タブに保存されます。今後は、保存したこの接続を使って、お使いのコネクターに再度接続できます。
接続が確立されると、データ アクセス ウィンドウが開いてステージング領域が表示されるので、データのインポートを開始できます。コネクターからのデータのインポートのヘルプについては、データ アクセス ウィンドウを使用したデータのインポートを参照してください。
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 | CustomerID | CreditCard_Type | CreditCard_Number | CreditCard_Expiry | 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 |