怎么样优化网站seo,ios 开发,海曙网站建设网站,宣传网页制作Apache Doris JDBC Catalog 支持通过标准 JDBC 接口连接 Oracle 数据库。本文档介绍如何配置 Oracle 数据库连接。
使用须知
要连接到 Oracle 数据库#xff0c;您需要 Oracle 19c, 18c, 12c, 11g 或 10g。 Oracle 数据库的 JDBC 驱动程序#xff0c;您可以从 Maven 仓库…Apache Doris JDBC Catalog 支持通过标准 JDBC 接口连接 Oracle 数据库。本文档介绍如何配置 Oracle 数据库连接。
使用须知
要连接到 Oracle 数据库您需要 Oracle 19c, 18c, 12c, 11g 或 10g。 Oracle 数据库的 JDBC 驱动程序您可以从 Maven 仓库下载 Ojdbc8 及以上版本的 Oracle JDBC 驱动程序。 Apache Doris 每个 FE 和 BE 节点和 Oracle 服务器之间的网络连接默认端口为 1521。
连接 Oracle
CREATE CATALOG oracle PROPERTIES (typejdbc,userroot,passwordsecret,jdbc_url jdbc:oracle:thin:example.net:1521:orcl,driver_url ojdbc8.jar,driver_class oracle.jdbc.driver.OracleDriver
)备注
jdbc_url 定义要传递给 JDBC 驱动程序的连接信息和参数。 使用 Oracle JDBC Thin 驱动程序时URL 的语法可能会有所不同具体取决于您的 Oracle 配置。 例如如果您要连接到 Oracle SID 或 Oracle 服务名称则连接 URL 会有所不同。 有关更多信息请参阅 Oracle 数据库 JDBC 驱动程序文档。 以上示例 URL 连接到名为orcl的 Oracle SID。
层级映射
映射 Oracle 时Apache Doris 的一个 Database 对应于 Oracle 中的一个 User。而 Apache Doris 的 Database 下的 Table 则对应于 Oracle 中该 User 下的有权限访问的 Table。即映射关系如下
Apache DorisOracleCatalogDatabaseDatabaseUserTableTable
类型映射
Oracle 到 Apache Doris 类型映射
Oracle TypeApache Doris TypeCommentnumber(p) / number(p,0)TINYINT/SMALLINT/INT/BIGINT/LARGEINTDoris 会根据 p 的大小来选择对应的类型p 3 - TINYINT; p 5 - SMALLINT; p 10 - INT; p 19 - BIGINT; p 19 - LARGEINTnumber(p,s), [ if(s0 ps) ]DECIMAL(p,s)number(p,s), [ if(s0 p s) ]DECIMAL(s,s)number(p,s), [ if(s0) ]TINYINT/SMALLINT/INT/BIGINT/LARGEINTs0 的情况下Doris 会将 p 设置为 p|s|并进行和 number(p) / number(p,0) 一样的映射numberDoris 目前不支持未指定 p 和 s 的 oracle 类型decimalDECIMALfloat/realDOUBLEDATEDATETIMETIMESTAMPDATETIMECHAR/NCHARSTRINGVARCHAR2/NVARCHAR2STRINGLONG/ RAW/ LONG RAW/ INTERVALSTRINGOtherUNSUPPORTED
查询优化
谓词下推 当执行类似于 where dt 2022-01-01 这样的查询时Apache Doris 能够将这些过滤条件下推到外部数据源从而直接在数据源层面排除不符合条件的数据减少了不必要的数据获取和传输。这大大提高了查询性能同时也降低了对外部数据源的负载。 当变量 enable_ext_func_pred_pushdown 设置为 true会将 where 之后的函数条件也下推到外部数据源。 目前支持下推到 Oracle 的函数有 FunctionNVL
行数限制
如果在查询中带有 limit 关键字Apache Doris 会将 limit 转义为 Oracle 的 rownum 语法以减少数据传输量。
转义字符
Apache Doris 会在下发到 Oracle 的查询语句中自动在字段名与表名上加上转义符()以避免字段名与表名与 Oracle 内部关键字冲突。