超多分析结果表 简单字段关联 生成大宽表 的 并发拓展

年前有些放纵了,一直没有完成该篇的节奏感。推延至今

大数据量面前单机显然是不合适的,所以尝试将前述逻辑 并发化 考虑 以适应 分布式处理。

回溯数据清洗流程,

1.流量数据区间圈定,

2.流量数据按要求筛选聚合

3.各汇总表按唯一标志联合

初步猜想中,需要一张包含所有唯一标志的主表,这也是减少匹配次数的关键。

主表的产生不应该到流程第三步,也完全没有必要。

清洗流程第二步流量数据聚合的同时,完全可以完成 该主表的去重和排序。

接下来按照 记录总数均匀分发主表数据到个 executor,并记录下个executor的首尾,

于是在清洗流程第三步中,将个聚合表按标志分发到相应executor,并按初步猜想中的逻辑完成表的组合。

后续会考虑,尝试实现和验证实际效果。

原文地址:https://www.cnblogs.com/qq1144054302/p/10381334.html

时间: 2024-11-10 11:19:57

超多分析结果表 简单字段关联 生成大宽表 的 并发拓展的相关文章

超多分析结果表 简单字段关联 生成大宽表 的 初步猜想

业务背景: 1. 广告投放涉及到用户的诸多特征 2. 用户特征通常不在同一个表中 3. 通过各种算法逻辑会产生很多的中间表 4. 各中间表的唯一标志基本为单一字段,通常会员标志或设备标志(两者一般取较新的一对组合使用) 5. 进入算法(或机器学习)前,需要一个统一的大宽表作为入参方便取值 业务解析: 1. 若干(通常10+)结果表 2. 每张表的数据量都很大(千万-亿) 3. 每个表都有同样的唯一标志字段(具体内容不同) 结果表产生过程隐藏条件: 1. 存在一张主表,包含有所有可能的唯一标志 处

Oracle group by 多表多字段关联查询

group by 多表多字段关联查询 自己遇到一个问题,就是开始的时候需要一个字段的名字和数量,但是是同个一个表的. 数据库代码如下: select  l.batchnum,count(l.batchnum) batcount    from ts_outphone_list l join ts_outphone_batch b on l.batchnum=b.batchnum left join om_user_list om on l.datamanager=om.login_id left

Oracle中用一张表的字段更新另一张表的字段

今天在做项目的过程中,发现开发库中某张表的某字段有许多值是空的,而测试库中该字段的值则是有的. 那么,有什么办法能将测试库中该字段的值更新到开发库中呢? SQL Server中这是比较容易解决的,而Oracle中就不知道方法了. SQL Server中类似问题的解决方法 后来只好用最笨的方法: 首先,将数据复制到Excel:(假设称测试库的表为A--含有数据) 然后,在开发库中建立和表A同结构的表B:(这里为了导入数据的简单,我对表B的结构进行了改造,只有两个字段) 图 表B的数据 再利用PL

SQL数据表两个字段关联同一张数据表

数据表temp结构 -- Table "temp" DDL CREATE TABLE `temp` ( `page_id` bigint(20) DEFAULT NULL, `section_id` bigint(20) DEFAULT NULL, `visit_category_id` bigint(20) DEFAULT NULL, `cart_category_id` bigint(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=

两表通过字段关联进行级联删除。

create table ta(id int not null) create table tb(id int , aid int) insert into ta values(1) insert into ta values(2) insert into tb values(1 , 1) insert into tb values(2 , 2) insert into tb values(3 , 1) go --一.查看原始数据 --ta表的原始数据 select * from ta /* i

mysql 一张表的多个字段关联另外一张表

SELECT vtiger_orderitem.orderid, ( SELECT vtiger_users.last_name FROM vtiger_users WHERE vtiger_orderitem.signatory = vtiger_users.id ) AS signatory, ( SELECT vtiger_users.last_name FROM vtiger_users WHERE vtiger_orderitem.servicer = vtiger_users.id

将一个表的字段更新到另一个表中去

描述 做一个需求需要记录用户留下签字意见时的职位信息,并且签字意见中留下的职位信息不随他的职位的调动变化而变化.在标准产品的签字意见表里面没有记录职位信息的字段,这就需要我们添加一个字段用于存储当前操作者的职位信息,对于新的数据我们可以在插入签字意见的时候一并插入.但是对于历史数据,我们就需要通过SQL来更新,这样在升级客户系统的时候直接运行一个SQL脚本就将历史数据的职位字段更新为记录的操作者当前的职位信息. 假设表HRM表示用户表,结构如下: 字段名字 类型 备注 ID NUMBER 用户i

mysql把一个表的字段update成另一个表的字段根据id

1.填充activity表里面的creator字段,用org的founderid,其中activity的orgid要和org的id对应,具体sql语句如下:update activity a inner join (select id,founderid from org o) c on a.orgid =c.id  set a.creator = c.founderid;

将B表的字段内容插入到A表字段中

update hy_b_hacker as h , ( SELECT ( @rowNO := @rowNo +1 ) AS rowno, ip FROM ( SELECT * FROM hy_b_sendlog GROUP BY ip )a, ( SELECT @rowNO :=0 )b ) as i set h.ip=i.ip where h.id=i.rowno;