背景
随着网络通讯越来越发达,用户外出购物、游玩、酒店等对WiFi网络越来越依赖!商家也为了更好的服务自家的会员用户基于大数据分析给用户制定人物画像,下面就是基于阿里云流计算对商场WiFi会员管理写的一个小案例!
案例
商场一般会提供免费的WIFI来做引流,再基于每个用户的需求来做实时推荐!这个案例就是用户到达商场后,系统会自动判断是哪家商店的会员,会自动推送实时服务!
步骤
当用户的信息是流式数据进入流计算以后,先去和维表里的静态数据做JOIN如果能够JOIN上数据就说明是老用户来了,然后写入数据推送的结果表里。如果没有JOIN上就说明是新客户、潜在客户然后把他的信息写入到刚才的维表中去做保存,为后续发展成新用户做准备!
--实时的用户手机号的流式源表
CREATE TABLE datahub_input1 (
id BIGINT,
name VARCHAR,
age BIGINT
) WITH (
type='datahub'
);
--商场商家的会员信息做数据维表
create table phoneNumber(
name VARCHAR,
id bigint,
phoneNumber bigint,
primary key(name),
PERIOD FOR SYSTEM_TIME
)with(
type='RDS',
);
--新用户的结果表
CREATE table result_01(
id bigint,
phoneNumber bigint,
name VARCHAR
)with(
type='rds'
);
--最后推送信息的结果表
CREATE table result_02(
id bigint,
phoneNumber bigint,
name VARCHAR
)with(
type='rds'
);
INSERT INTO result_01
select *
from
datahub_input1;
INSERT INTO result_02
SELECT
t.id
,w.phoneNumber
,t.name
FROM datahub_input1 as t
JOIN phoneNumber FOR SYSTEM_TIME AS OF PROCTIME() as w
ON t.name = w.name;
##难点解析
--商场商家的会员信息做数据维表
create table phoneNumber(
name VARCHAR,
id bigint,
phoneNumber bigint,
primary key(name),
PERIOD FOR SYSTEM_TIME
)with(
type='RDS',
);
--新用户的结果表
CREATE table result_01(
id bigint,
phoneNumber bigint,
name VARCHAR
)with(
type='rds'
);
--最后推送信息的结果表
CREATE table result_02(
id bigint,
phoneNumber bigint,
name VARCHAR
)with(
type='rds'
);
最大的难点是这里,其实这result_01和phoneNumber两张RDS是一张表!只不过是名称不一样、声明两次就好了,第一次声明为结果表去插入新用户的数据另一个是把插入的数据进行维表关联然后把要推送的信息写入result_02最后的结果表中!