首页 > 其他分享 >查询速度最高提升50倍!火山引擎ByteHouse在广告投放领域实践分享

查询速度最高提升50倍!火山引擎ByteHouse在广告投放领域实践分享

时间:2023-08-22 10:44:33浏览次数:45  
标签:人群 广告投放 50 BitEngine 查询 引擎 ByteHouse

 更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群
  据QuestMobile报告显示,移动互联网已经进入了下半场,在使用人数和使用时长方面已经没有明显增长,互联网已经流量趋于饱和。   作为广告投放主要阵地,由于互联网平台流量红利逐渐消退,越来越多的广告企业和从业者开始探索精细化营销的新路径,取代以往的全流量、粗放式的广告轰炸。精细化营销意味着要在数以亿计的人群中优选出那些最具潜力的目标受众,这无疑对提供基础引擎支持的数据仓库能力,提出了极大的技术挑战。   在人群圈选分析中, 分析师一般利用各种标签组合,挑选出最合适的人群,进而完成广告推送,达到精准投放的效果。但由于人群查询在不同标签组合下的结果集大小不同,在一次广告投放中,分析师需要经过多次的逻辑调整,以获得"最好"的人群包。抖音集团拥有广泛的广告投放场景,在日常实践中,我们发现以下痛点问题:  
  • 首先,数据预估。广告主需要对选定的人群组合进行预估,以便判断投放情况并确定投放预算。但广告平台用户越来越多,有的平台DAU达到上亿,使得人群包数据量过大,技术上只能采用1/10抽样存储,将导致10%误差。
  • 其次,性能问题。为了保证人群圈选精准度,广告主往往会设定多样、复杂的人群圈选条件,导致底层计算逻辑复杂,比如单次计算可能包含几百,甚至上千个人群包。Hive和Elasticsearch等方案在处理大数据量时,查询速度慢。如果研发人员查询某个广告主的所有用户,该方案需要扫描整个用户库,整个过程需要几分钟甚至几个小时,无法满足广告主实时性要求。
  • 最后,存储问题。Hive和Elasticsearch等方案需要额外的索引结构,使得存储空间变大,导致成本增加。
  在以往,研发团队通常使用两种方案来解决以上问题: 方案一:将每个人群包存储为一个Array类型的数据结构,每次查询需要从Array中找到某一个特定ID。 方案二:使用一个表来存储用户ID,在查询的时使用In/Join计算多个人群的交集。   经过内部长期使用经验,无论是方案一或方案二,都存在当数据量逐渐增大,查询速度无法满足实时分析需求的问题。基于高性能、分布式特点,ClickHouse可以满足大规模数据的分析和查询需求,因此研发团队以开源ClickHouse为基础,研发出火山引擎云原生数据仓库ByteHouse,并在其中定制一套处理模型——BitEngine,用于解决集合的交并补计算在实时分析场景中的性能提升问题。   据介绍,BitEngine是一个高效集合数据处理模型,底层基于MergeTree Family存储引擎,并在此基础上引入了BitMap64类型,开发了系列相关运算函数。BitEngine提供的BitMap64类型适合表达具有特定关系的大量实体ID的集合,将集合的交并补运算转化为bitmap之间的交并补运算,从而达到远超普通查询的性能指标。   那么,BitEngine如何应用在人群圈选场景中?举个例子,广告主需求为圈选出“人群包A”和“人群包B”的交集人群,完成广告精准投放。   人群包情况:
  • 人群包A = [10001, 20001,30001,40001,50001],人群包B = [10001, 20001,20002,20003,20004]
期望结果:
  • 通过BitEngine计算A&B = [10001, 20001]
  首先,人群包按照一定规则划分为多个区间,任意两个区间之间的人群包没有交集,由BitEngine保障数据的读取和计算是严格按照区间进行;其次,BitEngine在数据读取时会为每一个文件构建一个读任务,由一个线程调度模块完成整个任务调度和读取;最后,BitEngine完成所有中间结果计算后,按照结果的输出要求做一次数据合并,由此完成交集计算。已上线业务的测试表明,相比普通和Array或者用户表方式,BitEngine在查询速度上有10-50倍提升。   BitEngine上线前后查询耗时监控   BitEngine不仅仅在抖音集团海量广告投放场景中使用,目前更是集成在火山引擎云原生数据仓库ByteHouse中对外输出。火山引擎ByteHouse主要为用户提供极速分析体验,能够支撑实时数据分析和海量数据离线分析,具备便捷的弹性扩缩容能力,极致分析性能和丰富的企业级特性,目前已经与中国地震台网中心、海王集团、莉莉丝游戏、极客邦科技等诸多行业企业达成合作,深度助力各个行业数字化转型。   点击跳转火山引擎ByteHouse了解更多  

标签:人群,广告投放,50,BitEngine,查询,引擎,ByteHouse
From: https://www.cnblogs.com/bytedata/p/17647920.html

相关文章

  • 采用增强型 HotRod™封装 LMQ66420MC3RXBRQ1、LMR36503MSC5RPERQ1 汽车类降压转换器
    一、LMQ66420MC3RXBRQ1器件介绍:LMQ66420-Q1是具有集成旁路和自举电容器的业界超小型36V、2A同步直流/直流降压转换器,采用增强型HotRod™QFN封装。该易于使用的转换器支持1V(3.3V)至36V的宽输入电压范围(启动后或运行后),并支持高达42V的瞬态电压。该器件专为满足常开型汽车应......
  • 高频SQL 50题(基础版): 学生们参加各科测试的次数 | 2023-08-21
    问题学生表:Students+---------------+---------+|ColumnName|Type|+---------------+---------+|student_id|int||student_name|varchar|+---------------+---------+在SQL中,主键为student_id(学生ID)。该表内的每一行都记录有学校一名学生......
  • 北大ACM poj3750 小孩报数问题
    小孩报数问题TimeLimit:1000MS MemoryLimit:65536KTotalSubmissions:7233 Accepted:3454Description有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都......
  • 北大ACM poj1050 To the Max(C++)
    TotheMaxTimeLimit:1000MS MemoryLimit:10000KTotalSubmissions:32446 Accepted:16930DescriptionGivenatwo-dimensionalarrayofpositiveandnegativeintegers,asub-rectangleisanycontiguoussub-arrayofsize1*1orgreaterlocatedwithi......
  • 代码随想录算法训练营第二十一天| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的
     530.二叉搜索树的最小绝对差   卡哥建议:需要领悟一下二叉树遍历上双指针操作,优先掌握递归   题目链接/文章讲解:https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF%B9%E5%B7%AE.html ......
  • 高速信号处理处理卡设计原理图:501-基于TMS320C6670的软件无线电核心板
    基于TMS320C6670的软件无线电核心板一、板卡概述     北京太速科技自主研发的TMS320C6670核心板,采用TI KeyStone系列的四核定点/浮点DSP TMS320C6670作主处理器。板卡引出处理器的全部信号引脚,便于客户二次开发,降低了硬件的开发难度和时间成本。板卡满足工......
  • QOJ # 6508. This is not an Abnormal Team!
    题面传送门感觉网络流学艺不精,被薄纱了/kk原题意是最少一个点的链,在此基础上最少三个点的链,比较难去用网络流考虑。换个思路:先最大匹配出两点链,然后让最多两点链合并上一个单点变成三点链。这样显然单点最少,并且保证了不会有\(3\)个两点链合并成两个三点链,所以这样是符合题目......
  • COMP4650 文档分析
    COMP4650COMP4650/6490DocumentAnalysis–Semester2/2023Assignment1Due17:00onWednesday16August2023AEST(UTC+10)LastupdatedJuly28,2023OverviewInthisassignment,yourtaskistoimplementabasicbooleanandrankedinformationretrieval(IR......
  • P1 P2508 [HAOI2008]圆上的整点
    [HAOI2008]圆上的整点23.3.22WE.真是一道神题,特别是对于刚得了甲流滚回家摆烂从而有时间乱看而恰巧这几天上课刚学复数的我。一直很好奇复数到底是什么,昨天晚上刷B站学习偶然看到了一个解释虚数的视频,结果也没看懂,只听说乘上一个\(i\)相当于旋转\(90^{\circ}\),一想还真是!......
  • vivo 50
    有一奇人,自有锦囊妙计,王甚喜,寻而问计,问曰:“寡人可征战否?征战何如?”对曰:“肯。德积,封旷,兴起司,帷幄务实”“我是琪亚娜·卡斯兰娜,我,芽衣,布洛妮娅,还有大家终于赢得了崩坏的胜利,崩坏的时代,逐火的梦魇已经消散,崭新的道路就在眼前。咳咳,说了那么多,其实更想让舰长v我50买些方便面。人在......