GBase 8a
Doris JDBC Catalog 支持通过标准 JDBC 接口连接 GBase 8a 数据库。本文档介绍如何配置 GBase 8a 数据库连接。
这是一个实验功能。
使用须知
要连接到 GBase 8a 数据库,您需要
-
GBase 8a 数据库。
-
GBase 8a 数据库的 JDBC 驱动程序,您可以从 GBase 官方网站下载最新或指定版本的 GBase JDBC 驱动程序。
-
Doris 每个 FE 和 BE 节点和 GBase 8a 服务器之间的网络连接,默认端口为 5258。
此 Catalog 对接测试 GBase 8a 时,使用的版本如下:
- GBase 8a: GBase8a_MPP_Cluster-NoLicense-FREE-9.5.3.28.12-redhat7-x86_64
- JDBC 驱动程序: gbase-connector-java-9.5.0.7-build1-bin.jar
其他版本未经测试,可能会有兼容性问题。
连接 GBase 8a
CREATE CATALOG `gbase` PROPERTIES (
"user" = "root",
"type" = "jdbc",
"password" = "secret",
"jdbc_url" = "jdbc:gbase://127.0.0.1:5258/doris_test",
"driver_url" = "gbase-connector-java-9.5.0.7-build1-bin.jar",
"driver_class" = "com.gbase.jdbc.Driver"
); """
jdbc_url
定义要传递给 GBase 8a JDBC 驱动程序的连接信息和参数。您可以从 GBase 官方网站查看支持的 URL 参数。
层级映射
映射 GBase 8a 时,Doris 的一个 Database 对应于 GBase 8a 中的一个 Database。而 Doris 的 Database 下的 Table 则对应于 GBase 8a 中,该 Database 下的 Tables。即映射关系如下:
Doris | GBase 8a |
---|---|
Catalog | GBase 8a Server |
Database | Database |
Table | Table |
类型映射
GBase 8a 到 Doris 类型映射
GBase 8a Type | Doris Type | Comment |
---|---|---|
TINYINT | TINYINT | |
SMALLINT | SMALLINT | |
INT | INT | |
BIGINT | BIGINT | |
real | FLOAT | |
FLOAT | DOUBLE | |
DECIMAL | DECIMAL | |
NUMERIC | DECIMAL | |
CHAR | CHAR | |
VARCHAR | STRING | |
TEXT | STRING | |
DATE | DATE | |
DATETIME | DATETIME | |
TIME | STRING | |
TIMESTAMP | DATETIME | |
Other | UNSUPPORTED |
查询优化
谓词下推
当执行类似于 where dt = '2022-01-01'
这样的查询时,Doris 能够将这些过滤条件下推到外部数据源,从而直接在数据源层面排除不符合条件的数据,减少了不必要的数据获取和传输。这大大提高了查询性能,同时也降低了对外部数据源的负载。
行数限制
如果在查询中带有 limit 关键字,Doris 会将 limit 下推到 GBase 8a,以减少数据传输量。
转义字符
Doris 会在下发到 GBase 8a 的查询语句中,自动在字段名与表名上加上转义符:(``),以避免字段名与表名与 GBase 8a 内部关键字冲突。