IBM Db2 JDBC カタログ
Doris JDBC Catalogは、標準のJDBCインターフェースを通じてIBM Db2データベースへの接続をサポートしています。このドキュメントでは、IBM Db2データベース接続の設定方法について説明します。
JDBC Catalogの概要については、以下を参照してください:JDBC Catalog Overview
使用上の注意
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(jdbc_urlの"database"パラメータ)の下のSchemaに対応します。そして、DorisのDatabase下のTableは、DB2のSchema下のTablesに対応します。マッピング関係は以下のとおりです:
| Doris | IBM Db2 |
|---|---|
| Catalog | DataBase |
| Database | Schema |
| Table | Table |
列型マッピング
| IBM Db2 Type | Doris Type | 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を参照してください。