CREATE CATALOG jdbc_mysql PROPERTIES ("type"="jdbc","user"="root","password"="123456","jdbc_url" = "jdbc:mysql://127.0.0.1:3306/demo","driver_url" = "mysql-connector-java-5.1.47.jar","driver_class" = "com.mysql.jdbc.Driver");
CREATE CATALOG jdbc_postgresql PROPERTIES ("type"="jdbc","user"="root","password"="123456","jdbc_url" = "jdbc:postgresql://127.0.0.1:5449/demo","driver_url" = "postgresql-42.5.1.jar","driver_class" = "org.postgresql.Driver");
Doris | PostgreSQL |
Catalog | Database |
Database | Schema |
Table | Table |
select nspname from pg_namespace where has_schema_privilege('<UserName>', nspname, 'USAGE');
CREATE CATALOG jdbc_oracle PROPERTIES ("type"="jdbc","user"="root","password"="123456","jdbc_url" = "jdbc:oracle:thin:@127.0.0.1:1521:helowin","driver_url" = "ojdbc6.jar","driver_class" = "oracle.jdbc.driver.OracleDriver");
Doris | Oracle |
Catalog | Database |
Database | User |
Table | Table |
CREATE CATALOG jdbc_clickhouse PROPERTIES ("type"="jdbc","user"="root","password"="123456","jdbc_url" = "jdbc:clickhouse://127.0.0.1:8123/demo","driver_url" = "clickhouse-jdbc-0.3.2-patch11-all.jar","driver_class" = "com.clickhouse.jdbc.ClickHouseDriver");
CREATE CATALOG sqlserver_catalog PROPERTIES ("type"="jdbc","user"="SA","password"="Doris123456","jdbc_url" = "jdbc:sqlserver://localhost:1433;DataBaseName=doris_test", "driver_url" = "mssql-jdbc-11.2.3.jre8.jar","driver_class" = "com.microsoft.sqlserver.jdbc.SQLServerDriver");
Doris | SQLServer |
Catalog | Database |
Database | Schema |
Table | Table |
CREATE CATALOG doris_catalog PROPERTIES ("type"="jdbc","user"="root","password"="123456","jdbc_url" = "jdbc:mysql://127.0.0.1:9030?useSSL=false","driver_url" = "mysql-connector-java-5.1.47.jar","driver_class" = "com.mysql.jdbc.Driver");
参数 | 是否必须 | 默认值 | 说明 |
user | 是 | - | 对应数据库的用户名 |
password | 是 | - | 对应数据库的密码 |
jdbc_url | 是 | - | JDBC 连接串 |
driver_url | 是 | - | JDBC Driver Jar 包名称* |
driver_class | 是 | - | JDBC Driver Class 名称 |
only_specified_database | 否 | "false" | 指定是否只同步指定的 database |
lower_case_table_names | 否 | "false" | 是否以小写的形式同步 JDBC 外部数据源的表名 |
include_database_list | 否 | "" | 当 only_specified_database=true 时,指定同步多个 database,以','分隔。db 名称是大小写敏感的 |
exclude_database_list | 否 | "" | 当 only_specified_database=true 时,指定不需要同步的多个 database,以','分割。db名称是大小写敏感的 |
driver_url
可以通过以下三种方式指定:mysql-connector-java-5.1.47.jar
。需将 Jar 包预先存放在 FE 和 BE 部署目录的 jdbc_drivers/
目录下。系统会自动在这个目录下寻找。该目录的位置,也可以由 fe.conf 和 be.conf 中的 jdbc_drivers_dir
配置修改。file:///path/to/mysql-connector-java-5.1.47.jar
。需将 Jar 包预先存放在所有 FE/BE 节点指定的路径下。https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-5.1.47.jar
。系统会从这个 http 地址下载 Driver 文件。仅支持无认证的 http 服务。only_specified_database
:在 jdbc 连接时可以指定链接到哪个 database/schema,如:MySQL 中 jdbc_url 中可以指定 database,pg 的 jdbc_url 中可以指定 currentSchema。include_database_list
:当 only_specified_database=true 时,指定需要同步的 database,以','分割。默认为'',即不做任何过滤,同步所有 database。db 名称是大小写敏感的exclude_database_list
:当 only_specified_database=true 时,指定不需要同步的多个 database,以','分割。默认为'',即不做任何过滤,同步所有database。db 名称是大小写敏感的。include_database_list
和 exclude_database_list
有重合的 database 配置时,exclude_database_list
会优先生效。select * from mysql_catalog.mysql_database.mysql_table where t1 > 1000 and t2 ='term';
MYSQL Type | Doris Type | Comment |
BOOLEAN | BOOLEAN | - |
TINYINT | TINYINT | - |
SMALLINT | SMALLINT | - |
MEDIUMINT | INT | - |
INT | INT | - |
BIGINT | BIGINT | - |
UNSIGNED TINYINT | SMALLINT | Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级 |
UNSIGNED MEDIUMINT | INT | Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级 |
UNSIGNED INT | BIGINT | Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级 |
UNSIGNED BIGINT | LARGEINT | - |
FLOAT | FLOAT | - |
DOUBLE | DOUBLE | - |
DECIMAL | DECIMAL | - |
DATE | DATE | - |
TIMESTAMP | DATETIME | - |
DATETIME | DATETIME | - |
YEAR | SMALLINT | - |
TIME | STRING | - |
CHAR | CHAR | - |
VARCHAR | VARCHAR | - |
TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB、TINYSTRING、STRING、MEDIUMSTRING、LONGSTRING、BINARY、VARBINARY、JSON、SET、BIT | STRING | - |
Other | UNSUPPORTED | - |
POSTGRESQL Type | Doris Type | Comment |
boolean | BOOLEAN | - |
smallint/int2 | SMALLINT | - |
integer/int4 | INT | - |
bigint/int8 | BIGINT | - |
decimal/numeric | DECIMAL | - |
real/float4 | FLOAT | - |
double precision | DOUBLE | - |
smallserial | SMALLINT | - |
serial | INT | - |
bigserial | BIGINT | - |
char | CHAR | - |
varchar/text | STRING | - |
timestamp | DATETIME | - |
date | DATE | - |
time | STRING | - |
interval | STRING | - |
point/line/lseg/box/path/polygon/circle | STRING | - |
cidr/inet/macaddr | STRING | - |
bit/bit(n)/bit varying(n) | STRING | bit 类型映射为 doris 的 STRING 类型,读出的数据是 true/false,而不是1/0 |
uuid/JSONB | STRING | - |
Other | UNSUPPORTED | - |
ORACLE Type | Doris Type | Comment |
number(p) / number(p,0) | TINYINT/SMALLINT/INT/BIGINT/LARGEINT | Doris会根据p的大小来选择对应的类型:p < 3 -> TINYINT; p < 5 -> SMALLINT; p < 10 -> INT; p < 19 -> BIGINT; p > 19 -> LARGEINT |
number(p,s), [ if(s>0 && p>s) ] | DECIMAL(p,s) | - |
number(p,s), [ if(s>0 && p < s) ] | DECIMAL(s,s) | - |
number(p,s), [ if(s<0) ] | TINYINT/SMALLINT/INT/BIGINT/LARGEINT | s<0的情况下, Doris会将p设置为 p+|s|, 并进行和number(p) / number(p,0)一样的映射 |
number | - | Doris 目前不支持未指定 p 和 s 的 oracle 类型 |
decimal | DECIMAL | - |
float/real | DOUBLE | - |
DATE | DATETIME | - |
TIMESTAMP | DATETIME | - |
CHAR/NCHAR | STRING | - |
VARCHAR2/NVARCHAR2 | STRING | - |
LONG/ RAW/ LONG RAW/ INTERVAL | STRING | - |
Other | UNSUPPORTED | - |
SQLServer Type | Doris Type | Comment |
bit | BOOLEAN | - |
tinyint | SMALLINT | SQLServer 的 tinyint 是无符号数,所以映射为 Doris 的 SMALLINT |
smallint | SMALLINT | - |
int | INT | - |
bigint | BIGINT | - |
real | FLOAT | - |
float | DOUBLE | - |
money | DECIMAL(19,4) | - |
smallmoney | DECIMAL(10,4) | - |
decimal/numeric | DECIMAL | - |
date | DATE | - |
datetime/datetime2/smalldatetime | DATETIMEV2 | - |
char/varchar/text/nchar/nvarchar/ntext | STRING | - |
binary/varbinary | STRING | - |
time/datetimeoffset | STRING | - |
Other | UNSUPPORTED | - |
ClickHouse Type | Doris Type | Comment |
Bool | BOOLEAN | - |
String | STRING | - |
Date/Date32 | DATEV2 | Jdbc Catlog 连接 ClickHouse 时默认使用 DATEV2类型 |
DateTime/DateTime64 | DATETIMEV2 | Jdbc Catlog 连接 ClickHouse 时默认使用 DATETIMEV2类型 |
Float32 | FLOAT | - |
Float64 | DOUBLE | - |
Int8 | TINYINT | - |
Int16/UInt8 | SMALLINT | Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级 |
Int32/UInt16 | INT | Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级 |
Int64/Uint32 | BIGINT | Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级 |
Int128/UInt64 | LARGEINT | Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级 |
Int256/UInt128/UInt256 | STRING | Doris 没有这个数量级的数据类型,采用 STRING 处理 |
DECIMAL | DECIMAL/DECIMALV3/STRING | 将根据 Doris DECIMAL 字段的(precision, scale)和 enable_decimal_conversion 开关选择用何种类型 |
Enum/IPv4/IPv6/UUID | STRING | 在显示上 IPv4,IPv6会额外在数据最前面显示一个“/”,需要自己用 split_part 函数处理 |
Array | ARRAY | Array 内部类型适配逻辑参考上述类型,不支持嵌套类型 |
Other | UNSUPPORTED | - |
本页内容是否解决了您的问题?