Skip to content

Latest commit

 

History

History
171 lines (140 loc) · 3.03 KB

db2Side.md

File metadata and controls

171 lines (140 loc) · 3.03 KB

1.格式:

通过建表语句中的 PERIOD FOR SYSTEM_TIME将表标识为维表,其中PRIMARY KEY(keyInfo)中的keyInfo,表示用来和源表进行关联的字段, 维表JOIN的条件必须与keyInfo字段一致。

 CREATE TABLE tableName(
     colName cloType,
     ...
     PRIMARY KEY(keyInfo),
     PERIOD FOR SYSTEM_TIME
  )WITH(
     type='db2',
     url='jdbcUrl',
     userName='dbUserName',
     password='dbPwd',
     tableName='tableName',
     cache ='LRU',
     cacheSize ='10000',
     cacheTTLMs ='60000',
     parallelism ='1',
     partitionedJoin='false'
  );

2.支持版本

db2 9.X

3.表结构定义

维表参数信息 db2独有的参数配置:

参数名称 含义
type 维表类型, db2
url 连接数据库 jdbcUrl
userName 连接用户名
password 连接密码
schema 表所属scheam

4.样例

ALL全量维表定义

 // 定义全量维表
CREATE TABLE sideTable(
    id INT,
    name VARCHAR,
    PRIMARY KEY(id) ,
    PERIOD FOR SYSTEM_TIME
 )WITH(
    type='db2',
    url='jdbc:db2://172.16.10.251:50000/mqTest',
    userName='DB2INST1',
    password='abc123',
    tableName='USER_INFO2',
    schema = 'DTSTACK'
    cache ='ALL',
    cacheTTLMs ='60000',
    parallelism ='2'
 );

LRU异步维表定义

CREATE TABLE sideTable(
    id INT,
    name VARCHAR,
    PRIMARY KEY(id) ,
    PERIOD FOR SYSTEM_TIME
 )WITH(
    type='db2',
    url='jdbc:db2://172.16.10.251:50000/mqTest',
    userName='DB2INST1',
    password='abc123',
    tableName='USER_INFO2',
    schema = 'DTSTACK'
    partitionedJoin ='false',
    cache ='LRU',
    cacheSize ='10000',
    cacheTTLMs ='60000',
    asyncPoolSize ='3',
    parallelism ='2'
 );

DB2异步维表关联输出到Console


CREATE TABLE source1 (
    id int,
    name VARCHAR
)WITH(
    type ='kafka11',
    bootstrapServers ='172.16.8.107:9092',
    zookeeperQuorum ='172.16.8.107:2181/kafka',
    offsetReset ='latest',
    topic ='mqTest03',
    timezone='Asia/Shanghai',
    topicIsPattern ='false'
 );



CREATE TABLE source2(
    id int,
    address VARCHAR,
    PERIOD FOR SYSTEM_TIME
)WITH(
    type='db2',
    url='jdbc:db2://172.16.10.251:50000/mqTest',
    userName='DB2INST1',
    password='abc123',
    tableName='USER_INFO2',
    schema = 'DTSTACK',
    batchSize = '1'
);


CREATE TABLE MyResult(
    id int,
    name VARCHAR,
    address VARCHAR,
    primary key (id)
)WITH(
    type='console'
);

insert into MyResult
select 
	s1.id,
	s1.name,
	s2.address
from 
	source1 s1
left join
	source2 s2
on 	
	s1.id = s2.id

DB2维表字段信息

-- DTSTACK.USER_INFO2 definition

CREATE TABLE "DTSTACK "."USER_INFO2"  (
		  "ID" INTEGER , 
		  "NAME" VARCHAR(50 OCTETS) , 
		  "ADDRESS" VARCHAR(50 OCTETS) )   
		 IN "USERSPACE1"  
		 ORGANIZE BY ROW
 ;

GRANT CONTROL ON TABLE "DTSTACK "."USER_INFO2" TO USER "DB2INST1" 
;

维表数据:(1001,maqi,hz)

源表数据:{"name":"maqi","id":1001}

输出结果: (1001,maqi,hz)