# JDBCドライバーをエンジンに追加する

Talend Cloud Data Inventoryで明示的にサポートされていないデータベースに接続するために、JDBCドライバーをRemote Engine Gen2に追加できます。

生成されるSQLステートメントには、SQL-92との間に互換性があります。

## 手順

1. Remote Engine Gen2のインストールディレクトリーに移動します。
2. エンジンの起動に使用される次のDocker設定ファイルを編集します:

   default/docker-compose.yml - AWS米国、AWS欧州、AWSアジアパシフィック、Azureリージョンでエンジンを使用している場合

   eap/docker-compose.yml - Early Adopter Program (早期導入者プログラム)の一部としてエンジンを使用している場合
3. livyコンテナーを見つけ、[environment] (環境)セクションの下にこのJDBCドライバー設定を追加します:
   ```
   livy:
       image: ${LIVY_IMG}
       networks:
         default:
           aliases:
             - livy
       environment:
         LIVY_JOB_SPARK_SUBMIT_OPTS: "-Djdbc.drivers[10].id=<DATABASE_ID> -Djdbc.drivers[10].displayName=<DISPLAY_NAME> -Djdbc.drivers[10].order=<ORDER_IN_THE_LIST> -Djdbc.drivers[10].className=<JDBC_DRIVER_CLASS> -Djdbc.drivers[10].paths[0]=<MAVEN GROUP>:<MAVEN ARTIFACT>:jar:<MAVEN VERSION>"
         [...]
   ```

   上記で、&lt;DATABASE\_ID&gt; (データベース識別子)、&lt;DISPLAY\_NAME&gt; (データベース表示名)、&lt;ORDER\_IN\_THE\_LIST&gt; (アプリ内の接続リストにおけるデータベースの位置)、&lt;JDBC\_DRIVER\_CLASS&gt; (データベースJDBCドライバークラス)、&lt;MAVEN GROUP&gt;:&lt;MAVEN ARTIFACT&gt;:jar:&lt;MAVEN VERSION&gt; (データベースアーティファクト)は、ご自身のデータベース情報に置き換える必要があります。
   ### 例

   DB2データベースの場合
   ```
   livy:
       image: ${LIVY_IMG}
       networks:
         default:
           aliases:
             - livy
       environment:
   		LIVY_JOB_SPARK_SUBMIT_OPTS: "-Djdbc.drivers[10].id=DB2 -Djdbc.drivers[10].displayName=DB2 -Djdbc.drivers[10].order=900 -Djdbc.drivers[10].className=com.ibm.db2.jcc.DB2Driver -Djdbc.drivers[10].paths[0]=com.ibm.db2:jcc:jar:11.5.0.0"
   		[...]
   ```
4. [component-server] (コンポーネントサーバー)コンテナーを見つけ、この設定をenvironment/\_JAVA\_OPTIONSセクションの下に追加して、JDBCドライバーをコネクターリストに追加します。対応するサービスを呼び出すことができるようにするには、以下の手順を実行します。
   ```
   component-server:
       image: ${COMPONENTS_IMG}
       networks:
         default:
           aliases:
             - component-server
       environment:
         [...]
         _JAVA_OPTIONS: -Xmx${COMPONENTS_MEM} -Dhttp=443
   		[...@=]
   		-Djdbc.drivers[10].id=<DATABASE_ID>
   		-Djdbc.drivers[10].displayName=<DISPLAY_NAME>
   		-Djdbc.drivers[10].order=<ORDER_IN_THE_LIST>
   		-Djdbc.drivers[10].className=<JDBC_DRIVER_CLASS>
   		-Djdbc.drivers[10].paths[0]=<MAVEN GROUP>:<MAVEN ARTIFACT>:jar:<MAVEN VERSION>
   		[...]
   ```
   ### 例

   DB2データベースの場合
   ```
   component-server:
       image: ${COMPONENTS_IMG}
       networks:
         default:
           aliases:
             - component-server
       environment:
         [...]
         _JAVA_OPTIONS: -Xmx${COMPONENTS_MEM} -Dhttp=443
           [...@=]
           -Djdbc.drivers[10].id=DB2
           -Djdbc.drivers[10].displayName=DB2
           -Djdbc.drivers[10].order=900
           -Djdbc.drivers[10].className=com.ibm.db2.jcc.DB2Driver
           -Djdbc.drivers[10].paths[0]=com.ibm.db2:jcc:jar:11.5.0.0
   		[...]
   ```
5. [connectors] (コネクター)コンテナー画像を見つけ、この設定を[environment] (環境)セクションの下に追加して、JDBCドライバーライブラリーをダウンロードします。
   ```
   connectors:
       image: talend/connectors:20200528132950116
       networks:
         - default
       environment:
         CONNECTORS_SETUP_OPTS: setup --component-jdbc-auto-download-drivers
           [...]
           --artifact=<MAVEN GROUP>:<MAVEN ARTIFACT>:jar:<MAVEN VERSION>
           [...]
   ```
   ### 例

   DB2データベースの場合
   ```
   connectors:
       image: talend/connectors:20200528132950116
       networks:
         - default
       environment:
         CONNECTORS_SETUP_OPTS: setup --component-jdbc-auto-download-drivers
           [...]
           --artifact=com.ibm.db2:jcc:jar:11.5.0.0
   		[...]
   ```
6. previewrunnerコンテナーを見つけて次のように設定し、データのサンプルプレビューがTalend Cloud Data Inventory内のデータセットエディションフォームから使えるようにします。
   ```
   previewrunner:
       image: ${PREVIEW_RUNNER_IMG}
       user: root
       command: /opt/talend/app/bin/data-streams-previewrunner-ee-svc -Djdbc.drivers[10].id=<DATABASE_ID>
   	-Djdbc.drivers[10].displayName=<DISPLAY_NAME> -Djdbc.drivers[10].order=<ORDER_IN_THE_LIST>
   	-Djdbc.drivers[10].className=<JDBC_DRIVER_CLASS> -Djdbc.drivers[10].paths[0]=<MAVEN GROUP>:<MAVEN ARTIFACT>:jar:<MAVEN VERSION>
   	-Dhttp.port=80 -Dlogger.resource=dss-logback.xml -Dtalend.component.manager.m2.repository=/opt/talend/connectors
   	-Dtalend.component.manager.classloader.container.classesAndPackages=org.talend.components.common.
   ```
   ### 例

   DB2データベースの場合
   ```
   previewrunner:
       image: ${PREVIEW_RUNNER_IMG}
       user: root
       command: /opt/talend/app/bin/data-streams-previewrunner-ee-svc -Djdbc.drivers[10].id=DB2
   	-Djdbc.drivers[10].displayName=DB2 -Djdbc.drivers[10].order=900
   	-Djdbc.drivers[10].className=com.ibm.db2.jcc.DB2Driver -Djdbc.drivers[10].paths[0]=com.ibm.db2:jcc:jar:11.5.0.0
   	-Dhttp.port=80 -Dlogger.resource=dss-logback.xml -Dtalend.component.manager.m2.repository=/opt/talend/connectors
   	-Dtalend.component.manager.classloader.container.classesAndPackages=org.talend.components.common.
   ```
7. 変更を保存してエンジンを再起動します。