Data Dialect:[DM] Backend Deployment with Dameng Database
I. Driver Configuration
The server version of Dameng database must match the driver version. It is strongly recommended to use the JDBC driver provided during the server installation, avoiding drivers from the official Maven repository.
When encountering an error "Table xx cannot contain both clustered KEY and large fields", specify a non-clustered primary key during table creation. Query configuration via SELECT * FROM V$DM_INI WHERE PARA_NAME = 'PK_WITH_CLUSTER';
and set parameters with SP_SET_PARA_VALUE (1,'PK_WITH_CLUSTER',0)
.
(Ⅰ) Maven Configuration for DM8 (Latest Version in Maven Repository)
<dm.version>8.1.2.192</dm.version>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>${dm.version}</version>
</dependency>
Note:
The 8.1.3.12 driver version needs to be manually uploaded to the Nexus repository, and relevant content for this version is included in this document.
(Ⅱ) Maven Configuration for DM7
<dm7.version>7.6.1.120</dm7.version>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>Dm7JdbcDriver18</artifactId>
<version>${dm7.version}</version>
</dependency>
Note:
The 7.6.1.120 driver version needs to be manually uploaded to the Nexus repository, and relevant content for this version is included in this document.
(Ⅲ) Offline Driver Download
Dm7JdbcDriver18-7.6.1.120.jarDmJdbcDriver18-8.1.3.12.jar
II. JDBC Connection Configuration
pamirs:
datasource:
base:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: dm.jdbc.driver.DmDriver
# url: jdbc:dm://127.0.0.1:5236/BASE?clobAsString=true&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql
url: jdbc:dm://127.0.0.1:5236?schema=BASE&clobAsString=true&columnNameUpperCase=false&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql
username: xxxxxx
password: xxxxxx
initialSize: 5
maxActive: 200
minIdle: 5
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
asyncInit: true
validConnectionCheckerClassName: com.alibaba.druid.pool.vendor.OracleValidConnectionChecker
validationQuery: SELECT 1 FROM DUAL
Note: For more YAML configurations, refer to Module API.
(Ⅰ) Connection URL Configuration
Click to view the official document: DM JDBC Programming Guide
1. Connection String 1
jdbc:dm://127.0.0.1:5236?schema=BASE&clobAsString=true&columnNameUpperCase=false&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql
Note:
The schema
parameter is case-sensitive in lower-version drivers and case-insensitive in higher-version drivers. To avoid errors, use all uppercase uniformly. The columnNameUpperCase
parameter differs from official documentation, so explicit specification is required.
2. Connection String 2
jdbc:dm://127.0.0.1:5236/BASE?clobAsString=true&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql
Note:
This may be the connection string format for future higher versions.
Dameng database requires different connection strings for different driver versions, as shown in the table below: (Using incorrect connection strings will prevent normal startup)
Dm7JdbcDriver18 Version | Build-Time | Connection String Type | Schema Specification Supported | Schema Case Sensitivity | Available | Reason for Unavailability |
---|---|---|---|---|---|---|
7.6.0.165 | 2019.06.04 | 1 | No | Yes | No | Does not support LocalDateTime type |
7.6.1.120 (Recommended) | 2022.09.14 | 1 | Yes | Yes | Yes | - |
DmJdbcDriver18 Version | Build-Time | Connection String Type | Schema Specification Supported | Schema Case Sensitivity | Available | Reason for Unavailability |
---|---|---|---|---|---|---|
8.1.2.192 | 2023.01.12 | 1 | Yes | No | Yes | - |
8.1.3.12 (Recommended) | 2023.04.17 | 2 | Yes | No | Yes | - |
III. Dialect Configuration
(Ⅰ) pamirs Dialect Configuration
pamirs:
dialect:
ds:
base:
type: DM
version: 8
majorVersion: 8
pamirs:
type: DM
version: 8
majorVersion: 8
Database Version | type | version | majorVersion |
---|---|---|---|
7-20220916 | DM | 7 | 20220916 |
8-20230418 | DM | 8 | 8 |
(Ⅱ) Schedule Dialect Configuration
pamirs:
event:
schedule:
dialect:
type: DM
version: 8
majorVersion: 8
type | version | majorVersion |
---|---|---|
DM | 8 | 8 |
Note:
As there are no significant differences in the schedule dialect across multiple versions, only one dialect configuration is provided currently.
IV. Other Configurations
(Ⅰ) Logical Deletion Value Configuration
pamirs:
mapper:
global:
table-info:
logic-delete-value: (CAST(SYSTIMESTAMP AS TIMESTAMP) - CAST(TIMESTAMP '1970-01-01 08:00:00' AS TIMESTAMP)) * 8640000000000
(Ⅱ) Dameng Database User Initialization and Authorization
-- init oinone role (role name can be modified by oneself)
CREATE ROLE OINONE;
GRANT CREATE SCHEMA,
CREATE TABLE,
CREATE INDEX,
INSERT ANY TABLE,
UPDATE ANY TABLE,
select ANY TABLE,
SELECT ANY VIEW
TO OINONE;
SELECT * FROM DBA_ROLES;
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='OINONE';
-- init root user (user name can be modified by oneself)
CREATE TABLESPACE ROOT DATAFILE 'ROOT.DBF' SIZE 128;
CREATE USER "root" IDENTIFIED BY "shushi@2019";
ALTER USER "root" DEFAULT TABLESPACE ROOT DEFAULT INDEX TABLESPACE ROOT;
GRANT RESOURCE,OINONE TO ROOT;
select * FROM DBA_ROLE_PRIVS WHERE GRANTEE='ROOT';