神策新一代分析引擎架构演进

news2024/9/21 10:59:19

bdfbf36aa3f79e3ff030f359f5162042.gif

d7e369f974a7917c3cbb3b89a285477f.png

近日,神策数据已经推出全新的神策分析 2.5 版本,该版本支持分析模型与外部数据的融合性接入,构建全域数据融合模型,实现从用户到经营的全链路、全场景分析。新版本的神策分析能够为企业提供更全面、更有效的市场信息和经营策略,帮助企业深入了解用户需求、把握市场动态,从而提高竞争力。这一重要升级为企业提供了更强大的数据分析工具,为其业务发展和决策提供有力支持。

神策客户旅程分析引擎(简称“神策分析引擎”)作为新版本的技术内核,也进行了一次重要的架构演进,接下来,本文将详细讲述神策分析 2.5 版本中分析引擎的架构演进方向和重要能力优化。

一、全面的弹性架构能力支持

神策分析引擎支持全面的弹性架构,实现了存储、查询、导入三部分的架构分离,且各自都支持多种能力等级配置和弹性扩缩容。企业可以结合自己的业务需要,灵活组合最佳方案,极致优化硬件成本。

a1538860efbd3bdadaa6d0cbe587797d.png

图 神策分析引擎整体架构

1、弹性存储,双向打通主流数据湖生态

神策分析引擎是原生的存算分离架构,无论是不可变数据存储(HDFS、对象存储),还是可变数据存储(Kudu),都可以灵活的进行扩展。

根据数据的冷热程度和可更新性,引擎采用不同的存储系统。这样做的目标是最大程度减少对高性能 SSD 磁盘的使用需求,尽量采用低成本的 HDD 磁盘存储大容量数据。通过 Alluxio 的方案,引擎可以直接无缝连接各大公有云的对象存储,实现低成本的弹性扩容。当然,考虑到本地存储具有更好的性能优势,以及在一次性预付费折扣下成本也相对可控,因此弹性也并不总是最佳选择。企业可以根据业务类型和需求,灵活调整存储类型的比例,以在性能和成本之间找到最佳平衡点。

存算分离架构也会带来一些性能方面的副作用,因此在小规模集群中,神策数据默认依然采用计算和存储同机部署模式,以减少网络开销并提高扫描性能。而在大规模集群和弹性模式下,引擎则会智能利用 Local Cache 技术,减少因存算分离带来的额外网络开销。

此外,神策分析引擎完全兼容 Iceberg 标准,使得与客户现有的数据仓库和数据湖体系进行双向打通变得轻松,无需冗余存储数据,且保证了不同应用之间数据的一致性。Iceberg 数据湖标准目前受到了主流数据仓库和数据湖解决方案的广泛支持,拥有完善的开源生态工具链。                                                       

2、弹性查询,灵活应对企业经营需求

查询资源通常是分析引擎的整体资源使用中波动最大的部分,因为它不仅和企业的业务高峰有关系(例如促销活动带来的流量高峰),也受到企业的自己的经营活动(例如周报月报、版本发布)的直接影响。为此,神策分析引擎提供了非常灵活的查询资源配置方案。

首先,对于较稳定的业务固定查询需求,需要配备一定比例的本地查询资源,由于这部分资源是存储计算一体化,通常查询性能更好、延迟更低。后期也可以根据业务的增长需要,再进行扩容操作。

其次,对于夜间的离线计算或者临时性大规模查询,例如大型促销活动或者新游戏上线等场景,可以使用基于 Kubernetes 集群的弹性的查询资源。这里的最佳实践方案是使用各大公有云厂商的按需计价节点,或者竞价实例(如 AWS Spot 实例)来进行部署。按照神策数据过往服务客户的实践经验,该方案相比完全使用本地查询资源大约可以节省 20%~30% 的成本。

最后,分析引擎不仅支持物理隔离的查询资源组,还支持在资源组中划分优先级队列,例如可以按照产品线、查询大小来进行资源分配,从而更好的保障高优先级的业务需求。

3、弹性导入,最大化硬件资源利用率

在导入能力上,神策分析引擎提供了秒级实时、分钟级微批和小时级离线导入等多种方式,以在时效性和吞吐量之间取得平衡,最大限度地提高资源利用率。并且允许在不同模式之间进行动态切换,如在导入高峰期间切换到微批模式,过后再切回实时模式。

相比查询来说,导入的资源消耗通常是比较稳定的,一般默认情况下使用固定的本地资源运行即可。但是,对于大批量、一次性历史数据导入需求,更好的选择是在弹性 Kubernetes 集群上运行,以避免短时间内频繁扩容和缩容带来的操作和硬件成本。

二、六大核心能力优化

1、全面强化的用户旅程分析

神策分析引擎专注于用户旅程分析这一专属场景,与通用的 OLAP 分析引擎相比,我们构建了高效的用户序列分析框架,所有的漏斗、路径、归因、LTV 等分析模型均基于此框架开发。这不仅保证了执行效率的卓越,同时也能快速根据业务需求进行功能扩展。

在应对大数据量场景时,我们提供了基于完整用户数据的快速抽样能力,确保用户行为在抽样过程中不会被割裂,从而在低成本的基础上实现快速计算,并保持指标的准确性。另外,我们还实现了高效的点查能力,支持单用户行为序列场景,有效避免了数据的冗余存储和不一致问题。此外,为应对 ID-Mapping 和数据合规场景,我们专门支持了单用户数据删除和修复功能。

2、精准的查询资源预估

对每个查询的资源进行准确预估是神策分析引擎稳定运行的重要前提。神策分析引擎除了传统的基于统计信息的预估方式之外,还引入了基于查询历史的预估,在真实业务场景中,由于企业的产品使用通常存在较强的规律性,因此往往系统运行一段时间之后,基于历史的查询预估会起到关键作用,大大提升整体的准确性。

基于精准的查询资源预估结果,一方面可以获取更佳的执行计划,另外也可以更准确地进行查询资源的调度——例如让小查询进入高优先级队列快速执行。除此之外,还可以给用户更加准确的交互反馈。

3、批流一体的实时数据聚合

神策分析引擎在支持离线分析和 Ad-Hoc 查询的同时,还能从任意历史数据时间点开始进行流式聚合查询。这意味着我们可以使用同一套查询引擎和 UDF/UDAF 实现三种不同的应用场景,实现语法的一致性、性能的高效和可复用性。通过这部分能力,我们能够实现秒级时效性的高频查询,更好地满足实时监控类需求。

1e17c6afcc0935788fc4b2e6338fb9ae.png

图 实时聚合的应用示例

4、一致性物化视图

物化视图是常见的 OLAP 查询引擎优化能力,通常有两种实现方式:和基表数据一致,或者需要定期更新。神策分析引擎采用一致性物化视图,这意味着我们可以在保持数据一致性的基础上,实现常用查询性能的 10 倍提升。

5、完备的数据安全体系

为确保企业数据的最大安全性,神策分析引擎采取了多重安全措施。首先,引擎提供完整的表级别和行列级别的访问控制,以确保只有授权用户能够获取相应的数据,从而保护数据的隐私和机密性。其次,在更高安全要求的场景下,引擎还支持对所有底层存储服务启用基于 KMS(Key Management Service)的加密机制,以增强数据的加密保护,确保数据在存储过程中也始终处于加密状态,防范潜在的安全威胁。

6、通用性能优化

作为一个全流程支持 CodeGen 的 C++ 查询引擎,神策分析引擎在处理复杂查询时有着显著优势。此外,通过服务 2000+ 客户的实践,我们积累了大量优化经验,引入了诸如表达式预计算、无效 JOIN 裁剪、正则缓存、Bucket Join 等细节优化,进一步提升了在复杂业务场景下的性能表现。

特别值得一提的是,在完成了诸多指令集级别的适配工作之后,神策分析引擎能够完美支持在国产 x86 和 ARM 芯片上运行,并有良好的性能表现。

三、神策分析引擎高效赋能企业经营

基于神策分析引擎,企业得以更高效地实现看数查数、分析洞察等关键业务场景。包含旧版本在内,神策分析引擎已成功为包括泛金融、泛品牌零售、泛互联网以及泛企业各细分领域在内的 2000+ 客户的数字化经营提供了稳健的能力支撑。

以某互联网工具类客户为例,其每日新增数据量高达百亿条,日均查询数千次。在此背景下,神策分析引擎展现出了优异的性能表现:看数型查询的 P95 指标在 3 秒左右,分析型查询则在 30 秒,而原始的 SQL 查询也能达到 36 秒。类似地,某电商类客户每日新增数据百亿条,日均查询次数近万次,也在不同使用场景下达到了数秒至数十秒不等的 P95 指标。

众多诸如此的成功案例充分表现出了神策分析引擎在大规模数据处理与高频查询场景下的杰出能力,为数字化时代中企业的快速发展提供了强有力的数据支持,助力企业实时了解业务情况、准确做出决策,实现高效企业经营。

✎✎✎

更多内容

神策数据双引擎赋能数字化客户经营

神策分析 Android SDK 入选“星熠”案例

关于数据分析模型的十问十答

cc9abf467617667c758f448d0affc261.jpeg

▼ 点击“阅读原文”,立即免费体验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/835176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《向量数据库指南》——腾讯云向量数据库Tencent Cloud VectorDB产品规格

目录 节点类型 节点数量 节点规格 腾讯云向量数据库(Tencent Cloud VectorDB)采用分布式部署架构,每个节点相互通信和协调,实现数据存储与检索。客户端请求通过 Load balance 分发到各节点上。具体信息,请参见 产品架构。 节点类型 腾讯云向量数据库依据存储节点 CPU …

A02_启动测速和切换站点

一 业务功能 二 问题 三 业务流程 1 初始化网络 2 测速选站点 3 拉取站点 4 手动切换站点 四 重点代码 public class StationMeasure {private static final String TEST_STATION_URL "/test/ips";private static final String STATION_URL "/product/ips&…

鸟哥马哥共叙Linux发展

导读北京时间3月28日,由51CTO学院和人民邮电出版社信息技术分社联合举办的[开放见远]“鸟哥”大陆行Linux技术沙龙在位于北京市西三环久凌大厦的51CTO学院举行。 台湾著名Linux网站——“鸟哥的Linux私房菜”站长蔡德明,51CTO学院讲师马哥教育创始人马永…

EasyRecovery15简体中文个人版专业手机数据恢复软件

EasyRecovery15数据恢复软件是一款文件恢复软件,能够恢复内容类型非常多,包括办公文档、文件夹、电子邮件、照片、音频等一些常用文件类型都是可以进行恢复,操作非常简单,只需要将存储设备连接到电脑上,运行EasyRecove…

异常(上)概述,捕捉异常,try-catch语句的详细使用

文章目录 前言一、异常是什么?二、捕捉异常 1.自动捕捉异常2.try-catch语句捕捉异常 a.多重try-catch代码块b.异常的中断机制c.finally代码块恢复机制总结 前言 该文介绍了Java异常的概述,运行代码时,异常的捕捉,及其使用 try-cat…

QT图形视图系统 - 使用一个项目来学习QT的图形视图框架 - 始篇

文章目录 QT图形视图系统介绍开始搭建MainWindow框架设置scene的属性缩放功能的添加加上标尺 QT图形视图系统 介绍 详细的介绍可以看QT的官方助手,那里面介绍的详细且明白,需要一定的英语基础,我这里直接使用一个开源项目来介绍QGraphicsVi…

leetcode 738. 单调递增的数字

2023.8.4 这题用暴力法会超时,我就没试了,采用了个挺巧的方法,为了方便需要先将整数n转换为字符串的形式,然后从后向前遍历,当两个数字非递增时,将前一个数字--,后一个数字的位置记录在index中&…

路由的hash和history模式的区别

目录 ✅ 路由模式概述 一. 路由的hash和history模式的区别 1. hash模式 2. history模式 3. 两种模式对比 二. 如何获取页面的hash变化 ✅ 路由模式概述 单页应用是在移动互联时代诞生的,它的目标是不刷新整体页面,通过地址栏中的变化来决定内容区…

Three.js 创建网格辅助线,坐标轴辅助线,模型骨骼辅助线

three.js中的辅助线使用 1.网格辅助线(GridHelper) 2.坐标轴辅助线(AxesHelper) 3.模型骨骼辅助线(SkeletonHelper) 在上一篇 Three.js加载外部glb,fbx,gltf,obj 模型文件 的文章基础上新加入一个创建 辅助线的函数 createHel…

原型链污染例题复现

一、什么是原型链 下面我们通过这个小例子来看看。 可以看到b在实例化为test对象以后,就可以输出test类中的属性a了。这是因为在于js中的一个重要的概念:继承。而继承的整个过程就称为该类的原型链。 在javascript中,每个对象的都有一个指向他的原型(p…

CRM系统哪些功能可以个性化定制?

不同的企业有着不同的业务流程和需求,因此在选型时就需要一款可以个性化定制的CRM系统。下面说说可以个性化定制的CRM系统的功能和优势。 如何实现个性化定制? Zoho CRM支持个性化定制,您可以创建自定义功能模块、字段以及业务流程&#xf…

还在人工管理?太傻了!建筑行业高手给你支一招!

在现代科技日益发展的时代,智慧工地成为建筑行业的新兴趋势。借助先进的技术和数字化解决方案,智慧工地为建筑项目带来了前所未有的效率、安全性和可持续性。 智慧工地不仅提高了建筑施工的效率,也为管理人员提供了更好的决策依据和风险预测能…

MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图

MQTT 概述 MQTT (Message Queue Telemetry Transport) 是一个轻量级传输协议,它被设计用于轻量级的发布/订阅式消息传输,MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化。是一种简单、稳定、开放、轻量级易于实现的消息…

DLL的引入方式(DllImport的特殊引入方式)

Dll引入方式有四种: 1.就是普通的比如一个解决方案中有多个项目,将其他项目的引入到该项目中 2.就是软件自带的程序集的引入 3.就是使用dll的引入(普通的本身就是VS的dll文件) 4.就是使用dll的引入(不是属于该语言的…

网络音频终端音频编码解码终端

网络对讲终端SV-7011V 网络对讲终端SV-7011V,采用了ARM音频DSP架构,集网络对讲、网络广播、监听等功能于一身,内置麦克风、配置line out、line in、Mic in功能输出接口,适用于学校,机场,广场等场所。 产品…

解决 MySQL 删除数据后,ID 自增不连续问题

修复前 除了部分数据,导致后续新增的数据,ID 自增不连续 解决方案 执行下方 SQL 语句即可修复此问题,mbs_order为需要修复的表名 SET i0; UPDATE mbs_order SET id(i:i1); ALTER TABLE mbs_order AUTO_INCREMENT0;

NetApp 入门级全闪存系统 AFF A250:小巧而强大

NetApp 入门级全闪存系统 AFF A250:小巧而强大 作为 AFF A 系列中的入门级全闪存系统,AFF A250 不但可以简化数据管理,还能为您的所有工作负载提供令人惊叹的强劲动力,价格也平易近人。 AFF A250:您的新 IT 专家 AFF…

指向字符串常量(字符串右值)的char指针,free的时候为什么会报错?

起因是如下代码 char *p "abc"; free(p);先说结果,这里会报错,会报一个错误如下 一开始还没反应过来,只知道 “test_content” 是一个右值,这是一个指向右值的指针。 但是free的时候为什么会报错呢? 首…

HarmonyOS元服务开发实践:桌面卡片字典

一、项目说明 1.DEMO创意为卡片字典。 2.不同卡片显示不同内容:微卡、小卡、中卡、大卡,根据不同卡片特征显示同一个字的不同内容,基于用户习惯可选择喜欢的卡片。 3.万能卡片刷新:用户点击卡片刷新按钮查看新内容,同时…

NVM保姆级安装配置

nvm安装配置 1、NVM简介2、NVM安装三、NVM使用四、NVM常用命令 1、NVM简介 在项目开发过程中,使用到vue框架技术,需要安装node下载项目依赖,但经常会遇到node版本不匹配而导致无法正常下载,重新安装node却又很麻烦。为解决以上问…