背景
随着互联网的普及电商行业越来越火爆,但是面对成千上万的商品种类、价格明细等大量数据,怎么才能实时的抽取商家想要获取的数据呢?
步骤操作
准备工作
取2张实时更新的主键相同数据源表(ID为主键),每张表抽出带主键的一到两个字段然后写入一张大表中去!
--实时的流式源表1
CREATE TABLE datahub_input1 (
id BIGINT,
name VARCHAR,
age BIGINT
) WITH (
type='datahub'
);
CREATE TABLE datahub_input2 (
id BIGINT,
apple BIGINT,
time VARCHAR
) WITH (
type='datahub'
);
CREATE table result_01(
id bigint,
name VARCHAR
)with(
type='rds'
);
CREATE table result_02(
id BIGINT,
apple BIGINT
)with(
type='rds'
);
insert into result_01
select
id,
name
from
datahub_input1;
insert into result_02
select
id,
apple
from
datahub_input2;
测试数据
ID | NAME | AGE |
---|---|---|
1 | 11W | 11 |
2 | 12W | 12 |
ID | APPLE | time |
---|---|---|
1 | 220 | 11:00:00 |
3 | 221 | 11:10:00 |
测试结果
ID | NAME | APPLE |
---|---|---|
1 | 11W | 220 |
2 | 12W | null |
3 | null | 221 |
难点解析
CREATE table result_01(
id bigint,
name VARCHAR
)with(
type='rds'
);
CREATE table result_02(
id BIGINT,
apple BIGINT
)with(
type='rds'
);
其实大家看上面的SQL很简单的逻辑,其实声明的这二张表是一张真实的大表,它包含了二张表的所有字段主键为相同的ID(注意:流计算不支持部分主键插入,如数据库中定义为多个的联合主键),主键相同会做UPDATE更新,字段不同不会覆盖,如果字段一样就会覆盖。如果是没有的字段就会根据数据库定义的默认值来补充!就比如上面的测试结果一样。