申万宏源基于 StarRocks 构建实时数仓

作者 :申万宏源证券 实时数仓项目组

小编导读:

申万宏源证券有限公司是由新中国第一家股份制证券公司——申银万国证券股份有限公司与国内资本市场第一家上市证券公司——宏源证券股份有限公司,于 2015 年 1 月 16 日合并组建而成,是国家主权财富基金——中国投资有限责任公司的直管企业。

申万宏源证券有限公司发挥着“投资控股集团+证券子公司”的双层架构优势,为企业集团、个人投资者、专业机构投资者、金融同业机构及政府客户提供以资本市场为核心的全产业链综合金融服务。

当前,证券行业对数据的时效性、多样性和灵活性提出了更高的要求,为了解决实时数仓的挑战,申万宏源于 2023 年引入 StarRocks 对实时数仓整体架构进行了新的设计,目前基于 StarRocks 构建的实时数仓已经在申万宏源的财富管理类、投资研究类和风险管理类等多个场景中得到应用。

背景与挑战

在数字化转型背景下,证券行业面临着许多机遇,金融科技的业务范围和业务管理能力升级,创新和应用能力也在业务中不断深化。

随着实时报表、实时大屏、实时营销和实时风控等场景深入,证券行业对数据的时效性、多样性和灵活性提出了更高的要求,客户与证券公司、投资与市场运行的每个触点都需要被数字化、实时化,这一进程的推动也给技术层带来了挑战。

alt

数据挑战

随着交易系统的引入,证券行业已经完全数字化,数据量达到了 PB 级别,数据实时写入吞吐量高,且对于查询延时敏感。

同时证券行业拥有大量基于不同技术栈的业务系统,涉及结构化、半结构化和非结构化的多源异构数据,数据处理过程复杂。另外,数据分析过程是累积的、批量的,数据处理过程则是流式的,需要进行统一重构。

业务挑战

鉴于近期市场结构性行情中波段较短的特征,要求运营从策划到开发上线,要在有效时间内交付,这对于敏捷研发的要求是极高的。业务方出于对时效性、准确性及性价比的考量,传统数仓往往采用 T+1 的模式处理数据,无法满足数据实时性的要求。

为了应对这些挑战,需要实时或准实时数据技术予以支撑。申万宏源证券对以实时为中心的技术架构提出诉求,旨在建设数据端到端低延迟、高效率、快速响应、实时跟进、对源系统无侵扰为目的的实时数仓。

实时数仓技术探索

为了解决实时数仓的挑战,申万宏源经历了复杂的实时数仓技术探索过程。在选择实时数仓技术架构时,证券机构不光要考虑开源可控,也要考虑是否有商业厂商做技术支撑。

alt

2021 年起,团队开始密切关注 StarRocks 技术栈。StarRocks 有着领先的技术实力,例如流批一体(可以融合实时和离线的数据)、部分列更新能力、丰富的数据模型、物化视图、高性能和更高并发的能力,同时,也有商业化公司镜舟科技,作为厂商提供长期企业级技术服务。经过深入调研,在完成了 PoC 后,最终购买引入了基于 StarRocks 开发的企业版产品镜舟数据库。

alt

引入 StarRocks 后,申万宏源对整体架构进行新的设计。对于大部分数据的处理速度要求不高的数据全部使用 StarRocks 来处理。对于对数据延迟要求极高的一小部分场景则不让数据落地,通过 Flink 来实时处理,直接送到下游系统。

与传统数仓不同,实时数仓往往会设计较多分层。在实际操作中,申万宏源更倾向于只设立一层物理层。这样,所有历史数据在进入后都可以在这里沉淀,并且得益于这种沉淀,上层的应用不再是一次性的,而是可以复用的,这完全符合实时数仓的理念,在物理层之上封装逻辑视图,让业务面向逻辑视图进行数据分析和应用开发,实现数据驱动业务的基础。

典型应用场景实践

目前,基于 StarRocks 构建的实时数仓,在申万宏源的财富管理类、投资研究类和风险管理类等多个场景中得到应用。

金融商城理财产品断点购买召回服务

在金融商城中,理财产品的断点购买召回是一个常见的运营场景。在引入 StarRocks 之前,申万宏源需要将业务系统的数据采集到 Impala 中,处理完成后再加载到 HBase 中,同时也需要将实时链路的数据导入 HBase。然而,HBase 以键值对查询的形式存在,其查询分析的灵活性有限。

alt

基于 StarRocks 的强大性能,申万宏源实现了非常高效的查询响应,对下游服务提供秒级响应。对于有购买行为但是没有交易委托数据的意向客户,业务端可以快速获取数据并及时响应,第一时间对客户进行召回,客户购买的转化率高达 20%左右。

私募基金购买行为全流程数据监控

金融市场瞬息万变,滞后一秒都可能带来天差地别的结果。由于证券自身的业务特点以及外部监管“零容忍”等,让金融市场需要更实时的信息系统,来确保信息的准确度和及时性。

alt

业务上遇到的查询挑战在于全链路、各环节数据都存放在不同的表中,查询复杂度高。例如,私募基金涉及风险偏好、风险承受能力等多表关联的丰富数据。StarRocks 提供了非常优秀的查询性能,相较之前的产品查询性能提高了 5 倍以上。在 StarRocks 的加持下,业务分析人员可以轻松地实现快速、准确查询,为精准判断市场趋势提供有力支持。

全域赋能实时数据集市

在证券公司的 MPP+Hadoop 体系中,包含了数据仓库、数据中台和若干数据集市,其中:资管业务、固收业务、金创业务、风控业务等不同业务都有其独立的数据集市。

alt

当分析师对投资交易类数据进行分析时,往往需要借助实时的行情数据。对于机构的中后台部门的风险管理报表或者监管报表应用场景,可以接受秒级延迟。引入 StarRocks 库后,通过与数据集市的融合,行情数据得以沉淀,为投资交易类的数据分析提供支持。

资管产品图谱及风险传导模型

近几年来,资产管理已成为券商的重点业务,也是营收增长的主要驱动力。

在进行资产产品管控过程中,需要接入和处理舆情数据,来及时对上下游资产的价格或估值作出评估。例如,某地区受到大规模自然灾害导致农作物减产,从而引起价格上涨,而以此为原材料的投资标可能也会受到影响,形成风险传导。

alt

这类业务场景的特点是并发不高但逻辑复杂,过去申万宏源使用 Hive 和知识图谱来处理,而现在可以在不需要进行预计算情况下,直接使用 StarRocks 通过多表关联来实时查询。

结语

随着互联网时代高速发展,申万宏源紧跟市场变化作出前沿思考,与StarRocks 和镜舟科技一起,共同探索和建设出更加统一、高性能的数据生态,实现申万宏源内部分析场景和面向消费服务场景的融合,申万宏源通过数据架构优化升级,为多个业务场景的运营和应用带来显著提速,赋能业务高效增长和发展。

本文由 mdnice 多平台发布

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

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

相关文章

设计模式_装饰器模式_Decorator

生活案例 咖啡厅 咖啡定制案例 在咖啡厅中,有多种不同类型的咖啡,客户在预定了咖啡之后,还可以选择添加不同的调料来调整咖啡的口味,当客户点了咖啡添加了不同的调料,咖啡的价格需要做出相应的改变。 要求&#xff…

机器学习_常见算法比较模型效果(LR、KNN、SVM、NB、DT、RF、XGB、LGB、CAT)

文章目录 KNNSVM朴素贝叶斯决策树随机森林 KNN “近朱者赤,近墨者黑”可以说是 KNN 的工作原理。 整个计算过程分为三步: 计算待分类物体与其他物体之间的距离;统计距离最近的 K 个邻居;对于 K 个最近的邻居,它们属于…

Qt编写linux系统onvif工具(支持预览/云台/预置位/录像等)

一、功能特点 广播搜索设备,支持IPC和NVR,依次返回。可选择不同的网卡IP进行对应网段设备的搜索。依次获取Onvif地址、Media地址、Profile文件、Rtsp地址。可对指定的Profile获取视频流Rtsp地址,比如主码流地址、子码流地址。可对每个设备设…

单元测试——题目十二

目录 题目要求: 定义类 测试类 题目要求: 根据下列流程图编写程序实现相应处理,执行j=10*x-y返回文字“j1=:”和计算值,执行j=(x-y)*(10⁵%7)返回文字“j2=:”和计算值,执行j=y*log(x+10)返回文字“j3=:”和计算值。 编写程序代码,使用JUnit框架编写测试类对编写的…

idea中使用带provide修饰的依赖,导致ClassNotFound

1、provide修饰的依赖作用: 编译时起作用,而运行及打包时不起作用。程序打包到Linux上运行时,若Linux上也有这些依赖,为了在Linux上运行时避免依赖冲突,可以使用provide修饰,使依赖不打包进入jar中 2、可能…

Map集合(二)

HashMap HashMap集合的底层原理 HashMap跟HashSet的底层原理是一模一样的,都是基于哈希表实现的。 实际上:原来学的Set集合的底层就是基于Map实现的,只是Set集合中的元素只要键数据,不要值数据而已。 哈希表 哈希表是一种增删…

Python Flask与APScheduler构建简易任务监控

1. Flask Web Flask诞生于2010年,是用Python语言,基于Werkzeug工具箱编写的轻量级、灵活的Web开发框架,非常适合初学者或小型到中型的 Web 项目。 Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展…

代码随想录算法训练营31期day4,力扣24+19+02.07+142

24,动指针 class Solution { public:ListNode* swapPairs(ListNode* head) {//建立虚拟头结点auto dummynew ListNode(-1);dummy->nexthead;for(auto pdummy;p->next&&p->next->next;){auto ap->next;auto ba->next;p->nextb;a->n…

tee漏洞学习-翻译-1:从任何上下文中获取 TrustZone 内核中的任意代码执行

原文:http://bits-please.blogspot.com/2015/03/getting-arbitrary-code-execution-in.html 目标是什么? 这将是一系列博客文章,详细介绍我发现的一系列漏洞,这些漏洞将使我们能够将任何用户的权限提升到所有用户的最高权限 - 在…

POLYGON Military - Low Poly 3D Art by Synty

这是一个非常全面的资产包,可满足您的所有军事需求。一个绝对庞大的低多边形资产包,用于构建您的梦想游戏! 模块化部分易于以各种组合方式拼接在一起。 此包中包含 1500 多个详细的预制件。 主要特征 - 完全模块化武器系统 - 超级可定制的角色 -沙漠主题建筑和环境 - 建筑物…

day16打卡

day16打卡 104. 二叉树的最大深度 递归法时间复杂度:O(N),空间复杂度:O(N) class Solution { public:int maxDepth(TreeNode* root) {if(root nullptr) return 0;return 1 max(maxDepth(root->left), maxDepth(root->right));} };…

springboot-mybatis项目

一、后端开发环境搭建 1、File->New->Projet 2选择 Spring Initializr ,然后选择默认的 url 点击next 3勾选Spring Web、SQL模板,next 4点击finish,搭建完成 二 数据库 1 新建数据库 2 执行sql建表 SET NAMES utf8mb4; SET FOREIGN…

C语言练习题110例(十)

91.杨辉三角 题目描述: KK知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他 解答。杨辉三角,本质上是二项式(ab)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1&…

安利一款抢票软件堪称“业界良心”,全网好评!

马上就到了春运了,有不少网友反映12306买票太难了。 有粉丝在后台留言问有没有抢票软件? 知名公司开发的抢票软件,需要助力、需要用钱买加速包,这对于需要白嫖的朋友来说无疑是“雪上加霜”! 这里从解决实际问题的角度…

[漏洞复现]Redis 沙盒逃逸漏洞(CVE-2022-0543)

一、漏洞情况分析 Redis 存在代码注入漏洞,攻击者可利用该漏洞远程执行代码。 二、漏洞复现 春秋云境.com 进入靶场 开始复现 三、漏洞处置建议 把靶场关了,跟漏洞说“白白吧

星环科技基于第五代英特尔®至强®可扩展处理器的分布式向量数据库解决方案重磅发布

12月15日,2023 英特尔新品发布会暨 AI 技术创新派对上,星环科技基于第五代英特尔至强可扩展处理器的Transwarp Hippo分布式向量数据库解决方案重磅发布。该方案利用第五代英特尔至强可扩展处理器带来的强大算力,实现了约 2 倍的代际性能提升&…

如何在外远程访问家中本地威联通QNAP NAS

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 前言 购入威联通NAS后,很多用户对于如何在外在公网环境下的远程访问威联通NAS…

【Python爬虫入门到精通】小白也能看懂的知识要点与学习路线

文章目录 1. 写在前面2. 爬虫行业情况3. 学习路线 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋友可以关…

记一次 .NET某工控自动化系统 崩溃分析

一:背景 1. 讲故事 前些天微信上有位朋友找到我,说他的程序偶发崩溃,分析了个把星期也没找到问题,耗费了不少人力物力,让我能不能帮他看一下,给我申请了经费,哈哈,遇到这样的朋友就…

Python之数据可视化基础

目录 一 JSON数据格式转换 二 pyecharts模块 三 Pyecharts入门 四 数据可视化之疫情折线图 一 JSON数据格式转换 什么是JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它以易于阅读和编写的方式来表示结构化数据。JSO…