-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
Search before asking
-
I had searched in the issues and found no similar question.
-
I had googled my question but i didn't get any help.
-
I had read the documentation: ChunJun doc but it didn't help me.
Description
-- 源表
-- CREATE TABLE source1 (
-- Name varchar,
-- --机头号
-- Fields ROW<SSXR float,VSXCD float>,
-- -- 线速度
-- PROCTIME AS PROCTIME()
-- ) WITH(
-- 'connector' = 'emqx-x',
-- 'broker' = 'tcp://ip:1883',
-- 'topic' = 'amq/topic/#',
-- 'isCleanSession' = 'true',
-- 'qos' = '0',
-- 'username' = 'OPC_102',
-- 'password' = 'Opc_2020',
-- 'format' = 'json'
-- );
CREATE TABLE source1 (
Name varchar,
--机头号
Fields ROW<SSXR float,VSXCD float>,
-- 线速度
PROCTIME AS PROCTIME()
) WITH(
'connector' = 'emqx-x',
'broker' = 'tcp://ip:1883',
'topic' = 'test',
'isCleanSession' = 'true',
'qos' = '0',
'username' = 'admin',
'password' = 'public',
'format' = 'json'
);
-- INSERT INTO sink1
--SELECT SUBSTRING(Name,7,4) as name,Fields.SSXR as SSXR FROM source1;
-- 维表
CREATE TABLE side1 (
id varchar,
-- 102
name varchar,
-- key
Spec varchar,
--规格
InR varchar,
--内径
OutR varchar,
--外径
cww varchar,
-- 重量
length varchar,
-- 长度
F_Id varchar,
--数据库id
primary key (id,name) NOT ENFORCED
-- 这里的pk,并不会作为查询redis的主键,所以作为维表可不写。是通过select中的join条件作为主键
) WITH (
'connector' = 'redis-x' --必填
,
'url' = 'ip:6379' --必填,格式ip:port[,ip:port]
,
'table-name' = 'gdjd' --必填
,
'password' = 'Ahjuxin_2022' -- 密码 无默认,非必填项
,
'redis-type' = '3' -- redis模式(1 单机,2 哨兵, 3 集群),默认:1
-- ,'master-name' = 'lala' -- 主节点名称(哨兵模式下为必填项)
,
'database' = '0' -- redis 的数据库地址,默认:0
,
'timeout' = '10000' -- 连接超时时间,默认:10000毫秒
,
'max.total' = '3' -- 最大连接数 ,默认:8
,
'max.idle' = '3' -- 最大空闲连接数,默认:8
,
'min.idle' = '0' -- 最小空闲连接数 ,默认:0
,
'sink.parallelism' = '1' -- sink并行度
,
'lookup.cache-type' = 'LRU' -- 维表缓存类型(NONE、LRU、ALL),默认LRU
,
'lookup.cache-period' = '120000' -- ALL维表每隔多久加载一次数据,默认3600000毫秒
,
'lookup.cache.max-rows' = '20000' -- lru维表缓存数据的条数,默认10000条
,
'lookup.cache.ttl' = '700000' -- lru维表缓存数据的时间,默认60000毫秒
,
'lookup.fetch-size' = '2000' -- ALL维表每次从数据库加载的条数,默认1000条
,
'lookup.async-timeout' = '30000' -- lru维表缓访问超时时间,默认10000毫秒,暂时没用到
,
'lookup.parallelism' = '1' -- 维表并行度,默认nul
,
'type' = 'hash',
'mode' = 'hset'
);
-- 结果表
CREATE TABLE sink1 (
F_Id varchar,
com_code varchar,
head_code varchar,
weight DECIMAL,
meter DECIMAL,
PRIMARY KEY (F_Id) NOT ENFORCED
) WITH (
'connector' = 'mysql-x',
'url' = 'jdbc:mysql://ip:3306/jx_mes',
'table-name' = 'jx_mes_product_online',
'username' = 'root',
'password' = 'Ahjuxin_2022'
);
-- CREATE TABLE sink1 (
-- F_Id varchar,
-- head_code varchar,
-- weight float,
-- meter float
-- --PRIMARY KEY (F_Id) NOT ENFORCED
-- ) WITH(
-- 'connector' = 'emqx-x',
-- 'broker' = 'tcp://ip:1883',
-- 'topic' = 'zt1',
-- 'isCleanSession' = 'true',
-- 'qos' = '0',
-- 'username' = 'admin',
-- 'password' = 'public',
-- 'format' = 'json'
-- );
-- 多源头混合计算
INSERT INTO
sink1
SELECT
s.F_Id as F_Id,
-- F_Id
'cd6f184e59bc0dd6668a0fb91370a18c' as com_code,
-- 公司com_code
s.name as head_code, --机头号
((3.1415926*(CAST(s.Spec AS DECIMAL(10,6))/2-0.002)*(CAST(s.Spec AS DECIMAL(10,6))/2-0.002)0.00889e.Fields.VSXCD)*1.035) as weight,
--- 重量
e.Fields.VSXCD as meter -- 长度
from
source1 e
left join side1 FOR SYSTEM_TIME AS OF e.PROCTIME AS s on SUBSTRING(e.Name,7,4) = s.name and s.id='102';
Code of Conduct
- I agree to follow this project's Code of Conduct



