# tCouchbaseInput

Couchbaseデータベースからドキュメントをクエリーします。

## tCouchbaseInputの標準プロパティ

これらのプロパティは、標準ジョブのフレームワークで実行されているtCouchbaseInputを設定するために使われます。

標準のtCouchbaseInputコンポーネントは、データベースNoSQLファミリーに属しています。

このフレームワークのコンポーネントは、すべてのビッグデータ対応のTalend製品およびTalend Data Fabricで利用できます。

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| [Bootstrap nodes] (ブートストラップノード) | Couchbase SDKでブートストラップするノードの名前かIPを入力します。Couchbaseはブートストラップに複数のノードを指定するよう推奨しているので、ノードの名前かIPをコンマ( , )で区切ってこのフィールドに入力してください。<br><br>Couchbaseブートストラップの詳しい情報は、[How Couchbase SDKs connect to the cluster](https://developer.couchbase.com/documentation/server/4.1/developer-guide/connection-advanced.html)をご覧ください。<br><br>ノード名はCouchbase Web Consoleの[Servers] (サーバー)ページで見つかります。詳しい情報は、Couchbaseクラスターの管理者に連絡するか、Couchbaseのドキュメンテーションをご覧ください。<br><br>Clouchbaseサーバーはプロキシをサポートしないことにご注意ください。この理由により、TalendからのCouchbaseのコンポーネントもプロキシをサポートしません。 |
| [Username] (ユーザー名)と[Password] (パスワード) | 認証情報を自分のCouchbaseクラスターに入力します。<br><br>パスワードを入力するためには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。<br><br>Couchbase V5.0以降ではパスワードがバケットに関連付けられなくなったため、該当するバージョンを使用している場合は、[Bucket] (バケット)フィールドに同じ値をパスワードとして入力してください。ただしCouchbaseでは、バケットにアクセスできるロールを持つユーザーを作成する必要があります。<br><br>Couchbaseサイドでのアクセスコントロールやその他の重要要件に関する詳細は、お使いのバージョンのCouchbaseリリースノートをご覧ください。<br><br>パスワードを入力するには、[Password] (パスワード)フィールドの横にある[...]ボタンをクリックし、[Enter a new password] (新しいパスワードを入力)ダイアログボックスを表示させ、テキストフィールドにパスワードを入力して[OK]をクリックします。パスワードは、[pure password] (純粋なパスワード)モードではJSON文字列で、[Java mode] (Javaモード)ではJava式として入力できます。テキストフィールドの上部にある[switch to Java mode] (Javaモードに切り替え)または[switch to pure password mode] (純粋なパスワードに切り替え)をクリックすることで、2つのモードの間で切り替えられます。<br><br>情報メモ注:<br><br><ul> <li>この2つのパスワードモードは、<span>Talend</span>が提供する8.0.1 R2022-05以降の<span>Talend Studio</span>マンスリーアップデートをインストール済みである時のみ利用可能です。詳細は管理者にお問い合わせください。</li> <li><span>Talend</span>が提供する8.0.1 R2022-05以降の<span>Talend Studio</span>マンスリーアップデートがインストールされていない場合は、<span>[Java mode] (Javaモード)</span>でのみパスワードを入力できます。 </li> </ul> |
| [Schema] (スキーマ)と[Edit schema] (スキーマを編集) | スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。<br><br>JSON以外のドキュメントを使用する場合は、[String] (文字列)型のidカラムを定義してから、contentカラムを定義します。このcontentカラムのタイプは、文字列ドキュメントの場合は[String] (文字列)バイナリドキュメントの場合はbyte[] である必要があります。<br><br>JSONドキュメントについては、使用するJSONドキュメントに存在するフィールドを定義します。 |
| [Bucket] (バケット) | Couchbaseデータベースにあるデータバケットの名前を二重引用符で囲んで入力します。<br><br>使用している認証情報に、このバケットにアクセスできる適切な権限があることを確認します。<br><br>Couchbase V5.0以降を使用している場合、使用するCouchbase UIの[Security] (セキュリティ)タブで作成したユーザー名がこのバケットの名前になります。 |
| [Document type] (ドキュメントタイプ) | Couchbaseデータベースに保存されるデータは、JSON、文字列、バイナリのいずれかを入力します。このドロップダウンリストから、Couchbaseで使用する必要があるデータのタイプを選択します。<br><br>JSON、バイナリ、文字列のドキュメントを同じバケットに混在させることはお勧めしません。この混合により、ドキュメント処理でエラーが発生しやすくなる可能性があります。<br><br>N1QLを使用して文字列またはバイナリドキュメントをクエリーする必要がある場合、唯一の方法は、ドキュメントIDを使用してドキュメントを取得することです。たとえば、ID番号が2のドキュメントを取得する必要がある場合、N1QLクエリーは次のようになります。<br><br>```<br>SELECT meta().id as `_meta_id_` FROM `bucket_name` where meta().id = '2';<br>```<br><br>\_meta\_id\_とbucket\_nameを囲む引用符はバッククォート(`)であることにご注意ください。 |
| [Query Type] (クエリータイプ) | 使うするクエリーのタイプを次のオプションから選択します。<br><br><ul> <li> <span>[Select All] (すべて選択)</span>: 特定のバケットのすべてのコンテンツを選択します。</li> <li> <span>[N1QL]</span>: N1QLステートメントを使って、微調整されたクエリーを実行します。</li> <li> <span>[N1QL for Analytics]</span>: N1QL for Analyticsステートメントを使って、クエリーを実行します。N1QL for Analyticsは、半ストラクチャー化データをクエリーする言語です。 </li> <li> <span>[Document ID] (ドキュメントID)</span>: ドキュメントIDを使ってドキュメントを選択します。表示される<span>[Document ID] (ドキュメントID)</span>フィールドに、使うIDを入力する必要があります。コンポーネントごとに許可されるドキュメントIDは1つだけです。</li> </ul><br><br>情報メモ注:<br><br><ul> <li>N1QL for Analyticsに関する情報は、<a href="https://docs.couchbase.com/server/current/analytics/1_intro.html" target="_blank">N1QL for Analytics Languageリファレンス</a>をご覧ください。</li> <li>なお、<a href="https://docs.couchbase.com/server/current/analytics/6_n1ql.html" target="_blank">N1QL for Analytics vs. N1QL for Query</a>で、<span>N1QL for Analytics</span>と<span>N1QL for Query</span>の比較をご覧いただけます。</li> </ul> |
| [Query] (クエリー) | N1QL queryステートメントまたはN1QL for Analyticsステートメントを入力して、複雑なアクションを実行します。<br><br>許可されるステートメントは1つだけです。ステートメントを引用符で囲まないでください。<br><br><ul> <li> <p><span>SELECT *</span>などのクエリーでワイルドカードを使う場合  、このクエリーの返された結果は、このクエリーで使われるバケット名でラップされます。この状況では、このコンポーネントのスキーマで結果のカラムを1つだけ定義します。</p> <div>たとえば、このクエリーを実行すると                   <pre><code><pre><code><code>SELECT * FROM `travel_sample` limit 3</code></code></pre></code></pre>返された結果は、以下のように<kbd>travel_sample</kbd>バケットでラップされます。                   <pre><code><pre><code><code>[  {    "travel_sample": {      "callsign": "MILE-AIR",      "country": "United States",      "iata": "Q5",      "icao": "MLA",      "id": 10,      "name": "40-Mile Air",      "type": "airline"    }  },  {    "travel_sample": {      "callsign": "TXW",      "country": "United States",      "iata": "TQ",      "icao": "TXW",      "id": 10123,      "name": "Texas Wings",      "type": "airline"    }  },  {    "travel_sample": {      "callsign": "atifly",      "country": "United States",      "iata": "A1",      "icao": "A1F",      "id": 10226,      "name": "Atifly",      "type": "airline"    }  }]</code></code></pre></code></pre> </div> <p>スキーマで、結果を保管するために、たとえば<kbd>travel_sample</kbd>という1つのカラムを定義し、タイプとして<span>[String] (文字列)</span>を選択します。</p> </li> <li> <div>次のようなワイルドカードなしのクエリーを使う場合                   <pre><code><pre><code><code>SELECT callsign, country, iata, icao, id, name, type FROM `travel_sample` limit 3;</code></code></pre></code></pre>返される結果はラップされず、次のようになります。                   <pre><code><pre><code><code>[  {    "callsign": "MILE-AIR",    "country": "United States",    "iata": "Q5",    "icao": "MLA",    "id": 10,    "name": "40-Mile Air",    "type": "airline"  },  {    "callsign": "TXW",    "country": "United States",    "iata": "TQ",    "icao": "TXW",    "id": 10123,    "name": "Texas Wings",    "type": "airline"  },  {    "callsign": "atifly",    "country": "United States",    "iata": "A1",    "icao": "A1F",    "id": 10226,    "name": "Atifly",    "type": "airline"  }]</code></code></pre></code></pre> </div> <p>この状況では、実際のビジネスデータのストラクチャーを表すカラムを定義します。たとえば、コンポーネントスキーマの中の次のようなカラムです: <kbd>callsign</kbd>、<kbd>country</kbd>、<kbd>iata</kbd>、<kbd>icao</kbd>、<kbd>id</kbd>、<kbd>name</kbd>、<kbd>airline</kbd>。 </p> </li> </ul><br><br>情報メモ注: このフィールドは、[Query type] (クエリータイプ)ドロップダウンリストから[N1QL]または[N1QL Analytics] (N1QL統計)を選択する時に使用できます。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |
| [Use custom connection parameters] (カスタム接続パラメーターを使用) | このオプションを選択すれば、[Connection timeout] (接続タイムアウト)、[Query timeout] (クエリータイムアウト)、[Analytics timeout] (アナリティクスタイムアウト)、[Query threshold] (クエリーしきい値)といった接続パラメーターを設定できます。<br><br>接続パラメーターを設定する場合は、テーブルの下部にあるプラスボタンをクリックして[Connection parameters] (接続パラメーター)テーブルに行を追加し、[Parameter name] (パラメーター名)カラムをクリックしてドロップダウンリストから目的のパラメーターを選択し、[Parameter value] (パラメーター値)カラムにパラメーター値を入力します。 |
| [Use TLS] (TLSを使用) | 転送されるデータを保護するようTLSを有効にする場合は、このオプションを選択します。関連情報は[Couchbase TLS](https://docs.couchbase.com/operator/current/concept-tls.html)をご覧ください。<br><br>情報メモ注: このオプションは、Talendが提供する8.0.1-R2022-06以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。 |
| Java Truststore | TrustStoreのファイル名を入力します。関連情報は[KeyStores and TrustStores](https://docs.oracle.com/cd/E19509-01/820-3503/ggffo/index.html)をご覧ください。<br><br>情報メモ注: このオプションは、[Use TLS] (TLSを使用)オプションを選択した場合のみ利用できます。 |
| Java TrustStore password (Java TrustStoreのパスワード) | TrustStoreファイルのパスワードを入力します。関連情報は[Generating a KeyStore and TrustStore](https://docs.oracle.com/cd/E19509-01/820-3503/6nf1il6er/index.html)をご覧ください。<br><br>情報メモ注: このオプションは、[Use TLS] (TLSを使用)オプションを選択した場合のみ利用できます。 |
| [Java TrustStore type] (Java TrustStoreタイプ) | Java TrustStoreタイプを入力します。デフォルトでは、Java TrustStoreタイプがJKSとなっています。<br><br>情報メモ注: このオプションは、[Use TLS] (TLSを使用)オプションを選択した場合のみ利用できます。 |
| [Limit rows] (行を制限) | 読み取る最大行数を入力します。N1QLクエリーを使う場合、このフィールドは使えません。 |
| [Create primary index] (プライマリインデックスを作成) | このチェックボックスを選択して、データベースのプライマリインデックスまたはプライマリインデックスが既に存在する場合、新しいプライマリインデックスをコンポーネントに作成させます。<br><br>セカンダリーインデックスが存在する場合、プライマリインデックスの作成がオプションである可能性があるため、デフォルトでこのチェックボックスは消去されています。<br><br>プライマリインデックスに関する詳細は、公式Couchbaseドキュメンテーションから[Create primary index (プライマリインデックスを作成)](https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/createprimaryindex.html)をご覧ください。 |

## グローバル変数

| 変数 | 説明 |
| --- | --- |
| グローバル変数 | NB\_LINE: 入力コンポーネントによって読み取られた行の数、または出力コンポーネントに転送された行の数。これはAfter変数で、整数を返します。<br><br>ERROR\_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。<br><br>Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。<br><br>フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。<br><br>変数の詳細は、[コンテキストと変数を使用](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/contexts-and-variables)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | 開始コンポーネントとして、tCouchbaseInputがCouchbaseデータベースからドキュメントを読み取ります。 |

**関連概念**

[N1QLクエリーを使ってCouchbaseデータベース からJSONドキュメントをクエリーする](https://help.qlik.com/talend/ja-JP/components/8.0/couchbase/tcouchbaseinput-tlogrow-querying-json-documents-from-couchbase-database-with-n1ql-query "このシナリオでは、N1QLクエリーを使ってJSONドキュメントをクエリーします。Couchbaseによって提供される[travel-sample] (旅行サンプル)サンプルバケットデータを使います。具体的には、サンプルデータから米国内にある航空会社の最初の5社を取得します。")