从探索到赋能:微众银行携手 StarRocks重塑数据分析 林俊锋 微众银行大数据工程师,StarRocks平台负责人 微众银行大数据平台套件 •一站式、全连通、金融级的数据应用开发管理套件 •独特中间件层设计,简化整体架构,提升连通性、复用性、可扩展性和治理管控能力 •解耦上层应用程序和底层引擎,简化新组件引入,降低开发运维成本 WeDataSphere–开源开放 •累计试用中/上生产公司达700+家,社区微信+QQ群用户总数达5000+人 •用户覆盖电信、金融、互联网、制造、零售、教育等各行各业,典型用户如电信天翼云、平安保险、交通银行、Boss直聘、蔚来汽车、华中科技大学国家高性能计算中心等 •政府用户案例含深圳市金融局&银监局、交通部信息中心、航天八院等 01 02 03 04 OLAP选型与StarRocks引入过程StarRocks在行内业务场景的落地 StarRocks在行内大数据生态的应用未来规划方向与展望 01OLAP选型与StarRocks引入过程 背景与痛点 当前行内业务方有用户画像、人群圈选、BI交互看板、用户行为分析等大数据量场景的分析需求。业务方使用行内现有的计算引擎在上述分析场景下存在如下痛点问题:1.BI交互看板在大数据量下的计算速度缓慢。 2.对较长历史周期的用户行为数据分析效率低下。 3.运营分析中查询频次较高的热数据无法使用预聚合提速。 4.查询无法同时满足高灵活性、大数据量、多维度、高时效性等多样化要求。 基于以上痛点,在现有的计算引擎下无法满足大数据量级下秒级响应速度和数据时效性的要求,因此需要引入新的高性能的OLAP计算引擎StarRocks来填补此处空白。 StarRocks引擎引入计划 2023.06 OLAP产品选型 2023.12 2024.06 下一步 行内大面积推广使用,覆盖科技侧和业务侧的多业务场景,助力用户提效 各厂商方案对比,综合考虑选择 镜舟科技,进入行内测试阶段 验收阶段,基于RBAC的用户权限 管控体系对接,生产试用阶段 先进架构演进,降本增效 7 1 2 6 3 4 5 2023.08 制定POC测试计划以及报价给四个厂商 2024.04 资源评估,特性收集,进入采购阶段 2024下半年 多部门推广使用,涉及存款和贷款等多部门使用 为什么选择StarRocks 集群性能 执行计划 存算分离 国产化 Catalog 语法兼容性 物化视图 数据模型 权限管理体系数据审计 数据与存储 集群管理 湖仓一体 权限与安全 数据同步 数据更新 数据存储 数据结构 离线与实时同步 线性扩展 Hivecatalog 完整Update语法数据倾斜 OLAP函数与压缩算法 SQL分析优化私有化部署服务器适配 替代Trino加速查询指标开发 RBAC权限体系审计日志 TrinoVSStarRocks 查询HIVE外表场景下StarRocks和Trino的性能对比 对比项 STARROCKS TRINO 查询性能 使用行内用户案例的SQL对比测试结果见如下表格,StarRocks在查hive外表单表查询和交叉查询场景下的平均速度是Trino的3.35倍,优势较明显 在跨多种类型数据源联邦查询场景下有特别优势 存储模式 作为列存数据库自身可以存储数据,且有多种性能优化手段,如表模型选择、建索引、物化视图、分区分桶策略等 纯计算引擎,自身不存储数据,数据依赖从外部数据源获取,优化手段比较有限,可通过SQL优化、内存参数调整等手段优化 语法 兼容MySQL语法和协议,并兼容90%的Trino常用语法函数 单独语法体系,遵循ANSISQL标准,不能很好支持当前行内主流的OLAP引擎语法 引擎 单表查询(输出汇总数据) 交叉查询(输出汇总数据) 100万 1000万 1亿 10亿 100亿 100万 1000万 1亿 10亿 100亿 Trino 1.67秒 2.67秒 5.67秒 27.67秒 92秒 3秒 4.67秒 5.67秒 31.33秒 242秒 StarRocks 1.48秒 1.1秒 4.74秒 3.05秒 14.34秒 0.99秒 1.89秒 3.1秒 11.85秒 74.02 秒 StarRocks相比Trino速率提升 12.8% 142% 19.6% 807% 541% 203% 147% 82.9% 164% 227% 平均速率提升:235% •StarRocks在数据存储、湖仓一体化建设和运维功能方面相比Trino更贴近行内的使用场景,提供更丰富的OLAP能力,对开发和运维效率有提升 •行内用户主要使用场景为查询HIVE外表,Trino切换至StarRocks对用户的日常查数效率会有很大提升,且支持主流JDBC协议,用户语法切换难度小 集群部署架构 Vip/Nginx IDC1 Clustermanager StarRocks——FE (Follower) StarRocks——FE (Leader) StarRocks——FE (Follower) StarRocks—Manager MetricReport StarRocks——BEStarRocks——BE (tag:IDC1)(tag:IDC1) StarRocks——BEStarRocks——BE (tag:IDC2)(tag:IDC2) StarRocks——BEStarRocks——BE (tag:IDC3)(tag:IDC3) Prometheus FailOverGroup IDC1 StarRocks——FE (Follower) IDC2 StarRocks——FE (Leader) IDC3 StarRocks——FE (Follower) StarRocks——BEStarRocks——BE (tag:IDC1)(tag:IDC1) StarRocks——BEStarRocks——BE (tag:IDC2)(tag:IDC2) StarRocks——BEStarRocks——BE (tag:IDC3)(tag:IDC3) IDC2 IDC3 主集群 •实现同城跨IDC高可用:支持对不同IDC内的BE节点配置不同的tag,数据副本将根据tag均衡分布到3个IDC内的BE节点 •集群稳定性:通过为BE节点添加机架标签,通过机架感知策略确保数据在相同机架节点下的均匀分布,提高数据访问的可靠性。对于同部门下的不同业务组,也通过TAG标签来实现资源隔离,通过事先预审避免资源和性能的相互影响,确保集群稳定性 •负载均衡:使用VIP/Nginx作为负载均衡,单个FE节点不可用时不会影响到上游应用 备集群 •集群管理与监控:使用Manager用于集群管理、异常定位与日志查看等日常运维,将集群各指标信息上报到Prometheus用于日常监控 01StarRocks在行内业务场景的落地 数据源 StarRocks在WDS的应用落地全景图 报表分析 看板展示实时大屏 可视化分析 数据传输数据存储计算中间件业务应用业务场景 TDSQL ElasticSearch HIVE Exchangis数据同步平台 Flink StarRocks Linkis 行为分析 客户画像 留存分析 转化分析 风控分析风险计算 信用评估 贷后管理 •将StarRocks结合行内多个大数据工具支持多个业务场景使用 •满足5+部门的10+应用场景选择接入StarRocks引擎 •对接批量同步与实时同步工具,满足行内系统对接方式与分析计算方式 信贷存款核心个人直通企业金融消费金融 风控 •支持接入StarRocks时的事前评估、事中协调与事后审计的完备申请与审批流程 Exchangis数据同步支持StarRocks 同环境业务系统 业务A 业务B …… HTTP/RPC 跨环境业务系统 业务A 业务B …… HTTP/RPC Exchangis是微众银行自研的轻量级、高性能的数据交换平台,支持对多种结构化和非结构化的异构数据源之间进行数据传输,目前维护了开源版和行内版的多个版本(Github地址:https://github.com/WeBankFinTech/Exchangis) Exchangis Source数据源层 Sink数据源层 HIVE数据源 SR数据源 MySQL数据源 其他异构数据源 其他异构数据源 Read Schedule MetricReport Write 引擎层 多引擎 限流 资源分配字段映射类型转换 自定义配 置 进度展示指标统计 引擎资源分配 限速资源分配 任务参数定义 项目权限管理 多数据源管理 集群管理 •数据源与引擎抽象:屏蔽各数据源的差异性,支持StarRocks与多种数据源的互导 •跨集群导数:集群管理与跨集群、跨环境和跨网络的数据导数能力,满足用户的跨集群用数需求,屏蔽了复杂网络环境的影响 •导数方式多样化:针对不同用户群体的用法,兼顾科技侧与业务侧用户 •过程可控制:通过StreamLoad方式写入内表,并支持字段映射、模式选择、部分列更新、压缩算法、批量大小和脏数据阈值等配置 •权限管理:允许同时隔离使用多份用户凭证或变量,实现跨集群同步场景下用户权限操作和数据共享 01StarRocks在行内大数据生态的应用 Linkis支持对接StarRocks •集成对StarRocks数据源管理能力,支持集群信息管理、连接信息管理 •支持JDBC方式使用StarRocks数据源,并支持Catalog预指定、超时管理等功能 •支持数据源的版本管理、发布、回滚和过期等功能 •在多个类型的工作流节点中支持使用数据源 DSSScriptis支持StarRocks进行数据分析 •脚本开发:提供了丰富的IDE能力,用户可在IDE中编辑SQL语句,支持对接多种类型脚本。实时查看运行过程,并在结果区中查看结果数据集,以及查看日志的功能 •工作空间管理:支持树型目录结构的文件管理模式,支持多部门、多用户对自定义的数据开发脚本文件的管理 •用户函数管理:提供UDF函数管理模块,支持用户自定义上传脚本,丰富了更多SQL使用场景 •HIVE数据库管理:支持对Hive库表的查询和管理,丰富了StarRocks对Hivecatalog的使用场景 •实时进度管理:实时展示SQL运行进度与日志信息 Copilot赋能StarRocks辅助编程 •自然语言辅助编程:提升编程效率,使用户能更专注于业务逻辑上 •作业故障优化:结合大模型知识库对异常进行定位,并结合知识库给出解决方案 •SQL语法转换:支持用户从其他引擎如Hive或Spark迁移到StarRocks进行数据分析 •指标预定义:根据预先录入的知识库,支持根据指标信息给出对应的SQL DSS工作流支持StarRocks相关数据工作流 •多个节点支持了StarRocks相关数据开发,并支持网状顺序执行,如使用datax导数节点作为工作流节点之一,为后续的工作流节点提供数据基础;使用jdbc节点进行数据分析,为后续的报表提供数据结果 •支持以拖拉拽的形式开发工作流,并具有版本管理、节点调试、自定义资源和配置、导入导出和节点调度等功能 •支持多人协同编辑开发同一个工作流,并通过用户锁来控制并发 01未来规划方向与展望 1、完善StarRocks在行内大数据生态的应用 接入行内数据质量管理服务Qualitis:支持对SR中的数据根据规则定义、质量任务配置以及质量结果可视化,对生产重要数据进行质量检视 接入大数据平台元数据中间件DataShapis:对SR元数据进行管理,支持用户从元数据视角、产品视角查看元数据,并支持元数据之间的关联分析,提供完整的血缘关系行内推广使用:通过将实时采集数据与离线数据相结合,能够覆盖行内更多场景,如风险控制、客户画像、市场预测分析等 2、部署架构