通用 JDBC 连接

使用通用 JDBC 连接来连接到没有为 Cloud Pak for Data定义连接的数据源。

如果要以一致方式连接到数据源的多个实例,那么 Cloud Pak for Data 管理员可以为数据源创建 定制 JDBC 连接器 。 该连接将在 " 新建连接 " 页面上提供,其中包含由创建连接器的管理员定义的名称,详细信息和属性。

受支持的 JDBC 版本

JDBC JAR 文件必须与 JDK 8 JDBC V 4.2 或更低版本兼容。

先决条件

  • 必须安装 Cloud Pak for Data common core services 。 common core services 由依赖它们的服务自动安装。 如果未看到 " 平台连接 " 页面,那么是因为环境中安装的任何服务都不依赖于 common core services。

  • 将数据源的 JDBC 驱动程序(JAR 文件)上传到 Cloud Pak for Data。 有关将 JAR 文件上传到 Cloud Pak for Data 的步骤和所需权限,请参阅 IBM Software Hub 文档中的导入 JDBC 驱动程序。 默认情况下,上传 JDBC 驱动程序文件被禁用,用户无法在网络客户端中查看 JDBC 驱动程序列表。 管理员必须允许用户在 IBM Software Hub 文档中上传或查看 JDBC 驱动程序

连接详细信息

重要信息: 请参阅驱动程序供应商的文档以了解所需的属性,受支持的属性和受支持的数据类型。

要创建通用 JDBC 连接,您必须具有有关数据源的以下信息。

表 1. 通用 JDBC 的连接详细信息
信息 状态 描述
所需的 JAR 文件 必需 连接数据源所需的 JAR 文件。 如果 JDBC 连接需要多个JAR文件,请确保您清楚哪些JAR文件是必需的。
JDBC 驱动程序类 必需 JDBC 驱动程序类的名称。 该名称由 JDBC 驱动程序提供程序指定。 有关详细信息,请参阅 JDBC 驱动程序文档。
注意: 在 DataStage 流程中使用通用 JDBC 连接时,驱动程序配置可通过 DataStage 服务设置进行管理。 有关更多信息,请参阅 DataStage 文档中关于驱动程序管理的详细说明。
JDBC URL 必需 用于连接数据库的 JDBC : URL。 有关 URL 语法的信息,请参阅 JDBC 驱动程序文档。
SSL 详情 条件性 若您在 JDBCURL 中指定的端口已配置为接受 SSL 连接,请确保选择 “该端口已配置为接受 SSL 连接 ”。

如果数据源使用链式证书,那么可以指定多个证书的内容。

若将自签名证书粘贴至 SSL 证书框中,该证书将被导入临时信任存储库并通过密码进行保护。 您必须在 JDBC 连接 URL 中引用信任存储库和密码,方法是在 JDBC 的“属性”框中指定连接属性。
例如:

ssl=true
sslTrustStoreLocation=${truststore_file}
sslTrustStorePassword=${truststore_password}
批处理大小 可选 发送到数据库的行数上限。 默认值为 2000。
访存大小 可选 每次调用从数据库中提取的行数上限。 默认值为 2000。
连接器使用目录结构 可选 某些数据源使用目录而非模式来组织数据。 查阅驱动程序供应商的文档以确认数据库使用目录结构后,选择此选项。
区分大小写 条件性 如果数据库中的 ID 区分大小写,请选中“指示此数据库的 ID 值是否区分大小写 ”。
JDBC 属性 可选 用于连接数据库的 JDBC 属性。 使用以下格式指定属性:

key1=value1;key2=value2;key3=value3

请参阅 JDBC 驱动程序文档以获取有关受支持属性的信息。
行数限制支持 可选 指示驱动程序是否支持 SELECT 语句中的行数限制。 您可以指定 NonePrefixSuffix
重要: 如果保留该选项或将其指定为 " " ,即使应用程序只需要少量样本,数据库界面也会从源表中选择所有行。 这可能需要比预期更多的时间和内存。
如果源数据库系统支持 SQL 查询中的行数限制,建议指定适当的 SQL 语法。
行数限制前缀 条件性 如果将行限制支持设置为 Prefix,请指定用于在 SELECT 语句中指示行限制的前缀。
使用 ${row_limit} 指示行限制值的放置位置。 例如

TOP ${row_limit}
重要: 请勿用数字手动替换 {row_limit} 值。 这是 SQL 命令的一部分,值将由运行该命令的应用程序插入。 在相应字段中使用的 SQL 标准可能会有所不同,这取决于数据库语言。
行数限制后缀 条件性 如果将行限制支持设置为 后缀,请指定用于在 SELECT 语句中指示行限制的后缀。
使用 ${row_limit} 指示行限制值的放置位置。 例如

LIMIT ${row_limit} ROWS
重要: 请勿用数字手动替换 {row_limit} 值。 这是 SQL 命令的一部分,值将由运行该命令的应用程序插入。 在相应字段中使用的 SQL 标准可能会有所不同,这取决于数据库语言。

对于 凭证证书,如果为平台配置了保险库文件,并且服务支持保险库文件,那么可以使用私钥。 有关信息,请参阅 在连接中使用保险库文件中的私钥

联邦信息处理标准 (FIPS) 合规性

此连接可在支持FIPS的集群(FIPS兼容)上使用;但它不符合FIPS标准。 测试连接以确认其正常工作。

示例 JDBC URL

重要信息: 请遵循驱动程序供应商的文档以确认要包含的其他属性。
数据块
驱动程序: com.simba.spark.jdbc.Driver

jdbc:spark://<DatabricksHost>:443/default;transportMode=http;ssl=1;AuthMech=3; httpPath=<Databricks_compute_resources_URL>;connCatalog=<WKC_catalog>;UID=token; PWD=<password>?EnableArrow=

更多信息,请参阅为传统 Spark 驱动程序构建连接URL


Db2
驱动程序: com.ibm.db2.jcc.DB2Driver

jdbc:db2://<Hostname>:<Port>/<DatabaseName>

Microsoft SQL Server
驱动程序: com.microsoft.sqlserver.jdbc.SQLServerDriver

Microsoft SQL Server 驱动程序适用于 Windows 认证。 下载最新的MicrosoftJDBCDriver forSQL Server

Microsoft SQL Server 驱动程序的必需属性:

  • server_address
  • authenticationScheme=NTLM
  • integratedSecurity=true

jdbc:sqlserver://<server_address>:<port><\your_instance>;database=<DatabaseName>; authenticationScheme=NTLM;integratedSecurity=true;domain=<your_domain>


MongoDB
驱动程序: com.ddtek.jdbc.mongodb.MongoDBDriver 端口 : SSL 已启用选项:已

启用 jdbc:datadirect:mongodb://<MongoDBHost>:<MongoDBPort>;DatabaseName=<DatabaseName>;SchemaMap=/tmp/mongodb.config;EncryptionMethod=SSL;ValidateServerCertificate=false;ReadOnly=false;

MySQL
驱动程序: com.mysql.cj.jdbc.Driver

jdbc:mysql://<MySQLHost>:<MySQLPort>/<DatabaseName>?useSSL=false

Oracle
驱动程序: oracle.jdbc.OracleDriver

具有 SID:
jdbc:oracle:thin:@<Hostname>:<Port>:<ORACLE_SID>

具有 SERVICE_NAME:
jdbc:oracle:thin:@//<Hostname>:<Port>/<ORACLE_SERVICE_NAME>

对于 SSL 连接到 Oracle 数据库的情况,您必须在连接属性中提供证书,并包含以下代码,以便 URL 将证书传递给驱动程序:

?javax.net.ssl.trustStore=${truststore_file}&javax.net.ssl.trustStorePassword=${truststore_password}

SSL 连接到 Oracle 数据库的示例格式:

具有 SID:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=<hostname>)(PORT=<port>))(CONNECT_DATA=(SID=<ORACLE_SID>)))?javax.net.ssl.trustStore=${truststore_file}&javax.net.ssl.trustStorePassword=${truststore_password}

使用 SERVICE_NAME:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=<hostname>)(PORT=<port>))(CONNECT_DATA=(SERVICE_NAME=<ORACLE_SERVICE_NAME>)))?javax.net.ssl.trustStore=${truststore_file}&javax.net.ssl.trustStorePassword=${truststore_password}

了解更多