IBM Db2 JDBC カタログ
Doris JDBC Catalogは、標準のJDBCインターフェースを通じてIBM Db2データベースへの接続をサポートします。このドキュメントでは、IBM Db2データベース接続の設定方法について説明します。
JDBC Catalogの概要については、以下を参照してください:JDBC カタログ 概要
使用上の注意
IBM Db2データベースに接続するには、以下が必要です:
-
IBM Db2 11.5.x以上
-
IBM Db2データベース用のJDBCドライバー。最新版または指定バージョンのIBM Db2ドライバーはMaven Repositoryからダウンロードできます。IBM db2 jccバージョン11.5.8.0の使用を推奨します。
-
各DorisのFEおよびBEノードとIBM Db2サーバー間のネットワーク接続。デフォルトポートは51000です。
IBM Db2への接続
CREATE CATALOG db2_catalog PROPERTIES (
'type' = 'jdbc',
'user' = 'USERNAME',
'password' = 'PASSWORD',
'jdbc_url' = 'jdbc:db2://host:port/database',
'driver_url' = 'jcc-11.5.8.0.jar',
'driver_class' = 'com.ibm.db2.jcc.DB2Driver'
)
jdbc_urlは、IBM Db2ドライバーに渡される接続情報とパラメータを定義します。サポートされるURLパラメータは、Db2 JDBC Driver Documentationで確認できます。
階層マッピング
IBM Db2をマッピングする際、DorisのDatabaseは、DB2の指定されたDataBase下のSchema(jdbc_urlの"database"パラメータ)に対応します。DorisのDatabase下のTableは、DB2のSchema下のTablesに対応します。マッピング関係は以下の通りです:
| Doris | IBM Db2 |
|---|---|
| カタログ | DataBase |
| Database | Schema |
| Table | Table |
カラム型マッピング
| IBM Db2 タイプ | Doris タイプ | Comment |
|---|---|---|
| smallint | smallint | |
| int | int | |
| bigint | bigint | |
| double | double | |
| double precision | double | |
| float | double | |
| real | float | |
| decimal(P, S) | decimal(P, S) | |
| decfloat(P, S) | decimal(P, S) | |
| date | date | |
| timestamp(S) | datetime(S) | |
| char(N) | char(N) | |
| varchar(N) | varchar(N) | |
| long varchar(N) | varchar(N) | |
| vargraphic | string | |
| long vargraphic | string | |
| time | string | |
| clob | string | |
| xml | string | |
| BLOB | varbinary | Catalogのenable.mapping.varbinaryプロパティによって制御されます(4.0.2以降でサポート)。デフォルトはfalseで、stringにマップされます。trueの場合、varbinary型にマップされます。 |
| other | UNSUPPORTED |
よくある問題
-
JDBC CatalogでIBM Db2データを読み込む際に、
Invalid operation: result set is closed. ERRORCODE=-4470例外が発生する。IBM Db2 Catalogを作成する際のjdbc_url接続文字列に接続パラメータを追加してください:
allowNextOnExhaustedResultSet=1;resultSetHoldability=1;。例:jdbc:db2://host:port/database:allowNextOnExhaustedResultSet=1;resultSetHoldability=1;。 -
Caught java.io.CharConversionException
この問題は文字セットの問題が原因である可能性があります。
be.confのJAVA_OPTSに設定-Ddb2.jcc.charsetDecoderEncoder=3を追加してからBEを再起動し、問題が解決するかを確認してください。1や2などの値でも試すことができます。詳細については、以下を参照してください:https://www.ibm.com/docs/en/content-collector/4.0.1?topic=manager-jdbc-throws-javaiocharconversionexception