# Apache Spark BatchのtMongoDBConfigurationプロパティ

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

Spark BatchのtMongoDBConfigurationコンポーネントは、データベースファミリーとデータベースNoSQLファミリーに属しています。

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

このコンポーネントはSpark 4.0.xではサポートされていません。

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Property type] (プロパティタイプ) | [Built-in] (組み込み)と[Repository] (リポジトリー)のいずれかです。<br><br>[Built-In] (組み込み): 一元的に保存されるプロパティデータはありません。<br><br>[Repository] (リポジトリー): プロパティが保存されているリポジトリーファイルを選択します。 |
| [DB Version] (データベースバージョン) | 接続する必要のあるMongoDBデータベースのバージョンを選択します。 |
| [Use connection string] (接続文字列を使用) | このチェックボックスをオンにすると、URI (Uniform Resource Identifier)を使って接続が確立されます。<br><br>次に[...]ボタンをクリックし、表示される[Enter a new password] (新しいパスワードを入力)ポップアップダイアログボックスに二重引用符で囲んだURIを入力して、最後にOKをクリックして設定を保存します。<br><br>URIではユーザー名とパスワードが直接入力されるので、[Username] (ユーザー名)パラメーターと[Password] (パスワード)パラメーターは利用できません。<br><br>詳細は、MongoDBのドキュメンテーションで[Connection String URI Format](https://www.mongodb.com/docs/manual/reference/connection-string/)をご覧ください。<br><br>このオプションは、Talendが提供する8.0.1 R2023-05以降のTalend Studioマンスリーアップデートをインストール済みであり、[DB Version] (データベースバージョン)でMongoDB 4+を選択した場合のみ利用できます。 |
| [Use replica set address or multiple query routers] (レプリカセットのアドレスまたは複数クエリールーターを使用します) | このチェックボックスをオンにして[Server addresses] (サーバーアドレス)テーブルを表示します。<br><br>[Server addresses] (サーバーアドレス)テーブルで、接続先とする共有のMongoDBデータベースまたはMongoDBレプリカセットを定義します。 |
| [Server] (サーバー)と[Port] (ポート) | データベースサーバーのIPアドレスとリスニングポート番号を入力します。<br><br>[Use replica set address or multiple query routers] (レプリカセットのアドレスまたは複数クエリールーターを使用します)チェックボックスがオフの時に利用できます。 |
| [Database] (データベース) | 接続先とするMongoDBデータベースの名前を入力します。 |
| [Use SSL connection] (SSL接続を使用) | SSLまたはTLS暗号化接続を有効にする場合は、このチェックボックスをオンにします。<br><br>次に、同じジョブ内のtSetKeyStoreコンポーネントを使用して暗号化情報を指定する必要があります。<br><br>また、[Run] (実行)ビューの[Spark configuration] (Spark設定)タブにある[Advanced properties] (詳細プロパティ)テーブルで、*spark.executor.extraJavaOptions*プロパティを設定するために使われます。例:<br><br>```<br>"spark.executor.extraJavaOptions" :<br>"-Djavax.net.ssl.trustStorePassword<br>=password<br>-Djavax.net.ssl.trustStore=<br>/tmp/keystore.jks<br>-Djavax.net.ssl.trustStoreType=JKS"<br>```<br><br><br>これらのプロパティは、tSetKeystoreがSparkエグゼキューターに対して設定するのと同じパラメーターを設定するので、値をtSetKeystoreからコピーできます。さらに、完全に同じロケーションですべてのワーカーノードにKeyStoreをデプロイする必要があります。上記のサンプルでは、*/tmp/keystore.jks*です。<br><br>SSL接続はMongoDBのバージョン2.4 +でのみ利用可能です。 |
| 認証を使用 | 使用するMongoDBデータベースが認証を必要とする場合は、このチェックボックスをオンにしてデータベース認証を有効にします。<br><br>Kerberosを使用していない場合は、[Authentication mechanism] (認証メカニズム)ドロップダウンリストにリスト表示されているメカニズムのうち、[NEGOTIATE]が推奨されます。使用しているMongoデータベースバージョンに最もよく対応している認証メカニズムが自動的に選択されるためです。<br><br>このリスト内の他のメカニズムについては、MongoDBのドキュメンテーションで[MongoDB Authentication](https://docs.mongodb.org/manual/reference/parameters/#param.authenticationMechanisms)をご覧ください。 |
| [Set Authentication database] (認証データベースの設定) | MongoDBへの接続に使用するユーザー名がMongoDBの特定の認証データベース内で作成済みの場合は、このチェックボックスをオンにして、表示される[Authentication database] (認証データベース)フィールドに、この認証データベースの名前を入力します。<br><br>MongoDB認証データベースについては、[User Authentication database](https://docs.mongodb.org/manual/core/security-users/#user-authentication-database)をご覧ください。 |
| [Username] (ユーザー名)と[Password] (パスワード) | データベースのユーザー認証データを入力します。<br><br>パスワードを入力するためには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。<br><br>これらのオプションは、[Use authentication] (認証を使用)チェックボックスがオンであり、[Use connection string] (接続文字列を使用)チェックボックスがオフの場合に利用できます。<br><br>[Authentication mechanism] (認証方式)ドロップダウンリストから、Kerberosをセキュリティシステムに選択した場合は、[Username] (ユーザー名)と[Password] (パスワード)のフィールドではなく、[User principal] (プリンシパルを使用)、[Realm] (レルム)、[KDC server] (KDCサーバー)のフィールドに入力します。 |

## 詳細設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Connection string options] (接続文字列オプション) | [Basic settings] (基本設定)タブで定義したプロパティに加えて、MongoDBへの接続用に、このテーブルでその他のプロパティを定義できます。<br><br>たとえば、次のオプションを追加して、この接続にタイムアウト値を指定できます。<br><br>```<br>connectTimeoutMS=300000<br>```<br><br>このテーブルで追加が可能なオプションについては、[Connection options](https://docs.mongodb.com/manual/reference/connection-string/#connection-string-options)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは、他のコンポーネントに接続せずに使用されます。<br><br>tMongoDBConfigurationコンポーネント内の設定は、同じジョブ内のMongoDB関連のコンポーネントにのみ適用されます。言い換えると、tRunJob経由で呼び出した子ジョブまたは親ジョブ内で使用するMongoDBのコンポーネントは、この設定を再利用できません。<br><br>このコンポーネントは、所属するSpark Batchコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。<br><br>特に明記していない限り、このドキュメンテーションのシナリオでは、標準ジョブ、つまり従来の Talend Data Integrationジョブだけを扱います。 |
| [Spark Connection] (Spark接続) | [Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。<br><br><ul> <li> <div> <span>Yarnモード</span>(YarnクライアントまたはYarnクラスター):<ul> <li> <p>Google Dataprocを使用している場合、<span>[Spark configuration] (Spark設定)</span>タブの<span>[Google Storage staging bucket] (Google Storageステージングバケット)</span>フィールドにバケットを指定します。</p> </li> <li> <p>HDInsightを使用している場合、<span>[Spark configuration] (Spark設定)</span>タブの<span>[Windows Azure Storage configuration] (Windows Azure Storage設定)</span>エリアでジョブのデプロイメントに使用するブロブを指定します。</p> </li> <li>Altusを使用する場合は、<span>[Spark configuration] (Spark設定)</span>タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。</li> <li> <p>オンプレミスのディストリビューションを使用する場合は、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/hdfs/thdfsconfiguration">tHDFSConfiguration</a>を使用します。</p> </li> </ul> </div> </li> <li> <p> <span>[Standalone mode] (スタンドアロンモード)</span>: クラスターで使われているファイルシステム(<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/hdfs/thdfsconfiguration-properties-for-apache-spark-batch">tHDFSConfiguration Apache Spark Batch</a>や<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/amazon-s3/ts3configuration-properties-for-apache-spark-batch">tS3Configuration Apache Spark Batch</a>など)に対応する設定コンポーネントを使用します。</p> <p>ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。</p> </li> </ul><br><br>この接続は、ジョブごとに有効になります。 |