跳转至

7.4.8 SAP HANA

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 SAP HANA 数据库。本文档介绍如何配置 SAP HANA 数据库连接。

1 使用须知

要连接到 SAP HANA 数据库,您需要

  • SAP HANA 2.0 或更高版本。

  • SAP HANA 数据库的 JDBC 驱动程序,您可以从 Maven 仓库下载最新或指定版本的 SAP HANA JDBC 驱动程序。推荐使用 ngdbc 2.4.51 以上的版本。

  • Doris 每个 FEBE 节点和 SAP HANA 服务器之间的网络连接,默认端口为 30015

2 连接 SAP HANA

SQL
1
2
3
4
5
6
7
8
CREATE CATALOG saphana PROPERTIES (
    "type"="jdbc",
    "user"="USERNAME",
    "password"="PASSWORD",
    "jdbc_url" = "jdbc:sap://Hostname:Port/?optionalparameters",
    "driver_url" = "ngdbc-2.4.51.jar",
    "driver_class" = "com.sap.db.jdbc.Driver"
)

Tip

有关 SAP HANA JDBC 驱动程序支持的 JDBC URL 格式和参数的更多信息,请参阅 SAP HANA

3 层级映射

映射 SAP HANA 时, DorisDatabase 对应于 SAP HANA 中指定 DataBasejdbc_url 参数中的 "DATABASE" )下的一个 Schema 。而 DorisDatabase 下的 Table 则对应于 SAP HANASchema 下的 Tables 。即映射关系如下:

Doris SAP HANA
Catalog Database
Database Schema
Table Table

4 类型映射

4.1 SAP HANA 到 Doris 类型映射

SAP HANA Type Doris Type Comment
BOOLEAN BOOLEAN
TINYINT TINYINT
SMALLINT SMALLINT
INTERGER INT
BIGINT BIGINT
SMALLDECIMAL DECIMAL
DECIMAL DECIMAL/STRING 将根据 Doris DECIMAL 字段的(precision, scale)选择用何种类型
REAL FLOAT
DOUBLE DOUBLE
DATE DATE
TIME STRING
TIMESTAMP DATETIME
SECONDDATE DATETIME
VARCHAR STRING
NVARCHAR STRING
ALPHANUM STRING
SHORTTEXT STRING
CHAR CHAR
NCHAR CHAR

5 查询优化

5.1 谓词下推

当执行类似于 where dt = '2022-01-01' 这样的查询时, Doris 能够将这些过滤条件下推到外部数据源,从而直接在数据源层面排除不符合条件的数据,减少了不必要的数据获取和传输。这大大提高了查询性能,同时也降低了对外部数据源的负载。

5.2 行数限制

如果在查询中带有 limit 关键字, Doris 会将 limit 下推到 SAP HANA 数据库,以减少数据传输量。

5.3 转义字符

Doris 会在下发到 SAP HANA 的查询语句中,自动在字段名与表名上加上转义符: ("") ,以避免字段名与表名与 SAP HANA 内部关键字冲突。