ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

为什么Venice值得关注:LinkedIn开源的行星级派生数据平台完整指南

2026/8/27 16:00:18 拓冰建站 浏览量
为什么Venice值得关注:LinkedIn开源的行星级派生数据平台完整指南 为什么Venice值得关注LinkedIn开源的行星级派生数据平台完整指南【免费下载链接】veniceVenice, Derived Data Platform for Planet-Scale Workloads.项目地址: https://gitcode.com/gh_mirrors/venic/veniceVenice 是 LinkedIn 开源的派生数据平台Derived Data Platform专为行星级负载Planet-Scale Workloads设计。它用一个系统打通离线批处理、近线流式与在线服务三个世界数据从 Hadoop、Spark、Kafka 等高吞吐渠道异步写入再以低于 10 毫秒甚至亚毫秒的延迟对外提供在线读取并原生支持跨地域的 active-active 复制。对于正在搭建特征存储Feature Store或统一批流架构的工程师来说Venice 是目前开源领域少数经过 LinkedIn 超大规模生产验证的选择。一、什么是 Venice一句话理解它的定位可以把 Venice 理解为「有状态的派生数据服务层」数据不是原始数据而是由其他系统计算派生而来——比如聚合结果、机器学习特征、物化视图它横跨离线offline→ 近线nearline→ 在线online三个层面一份存储同时承接批量全量、增量推送与实时流写入对上层应用尤其是 AI 推理、实时推荐而言它就是一个「写入快、读取更快」的键值数据服务。官方文档中将其核心能力概括为五点高吞吐异步摄入、低延迟在线读取、跨地域 active-active 复制基于 CRDT 冲突消解、单地域内多集群、以及多租户弹性扩展。二、Venice 的 5 个核心亮点为什么值得你关注批流一体写入批量全量推送、增量推送、流式写入三种模式可混用Hybrid 混合存储天然适配 Lambda/Kappa 架构⚡极致读性能三种客户端可选延迟从 10ms 一路降到 1ms 甚至微秒级行星级复制跨地域 active-active 复制 CRDT 冲突自动消解全球多地写入互不冲突零停机更新数据集版本化versioned全量推送生成新版本后原子切换线上流量无感读写解耦写入用哪条链路读取端 API 完全一致业务代码无需改动即可平滑升级客户端。这也是它特别适合做Feature Store 的有状态存储层的原因——ML 训练产出灌入 Venice在线推理直接从 Venice 取特征。三、Venice 写入路径5 种数据摄入方式怎么选Venice 的写入路径覆盖不同新鲜度与规模的需求常见模式对比如下写入模式适用场景典型数据源批量推送Batch Push全量数据集替换Hadoop、Spark增量推送Incremental Push大批量追加不替换全量批任务产出流式写入Streaming Writes实时事件驱动更新Kafka、Samza、Flink写计算Write Compute部分字段更新、集合合并任意增量/流链路混合存储Hybrid Store批 流融合可配置回溯时间上述任意组合几个值得记住的机制全量推送会创建一个「future」新版本在后台加载完成后原子切换为「current」旧版本降级为「backup」——这就是零停机更新的秘密增量推送与流式写入会同时写入所有现存版本backup / current / future保证多版本一致性混合存储通过配置「回溯时间rewind time」控制流数据在新版本上重放的起点实现批流结果的自然融合。相关源码与文档入口推送任务实现在clients/venice-push-job/目录写入模式详解可见docs/user-guide/write-apis/目录下的系列文档。四、Venice 读取路径3 种客户端 CDC延迟一路压到微秒级Venice 最有意思的设计之一所有客户端共享同一套读取 APIget、batchGet、compute升级性能无需改业务代码。客户端网络跳数典型 P99 延迟状态占用Thin Client瘦客户端2 跳经 Router 10 ms无状态Fast Client快速客户端1 跳直达 Server 2 ms仅路由元数据Da Vinci Client本地缓存0 跳本地读取 1 ms有界内存 全量 SSD选择建议非常直观先跑通用 Thin Client 两跳查询集成最简单降延迟换 Fast Client感知分区直连 Server要极致上 Da Vinci Client数据本地化全内存模式下可低至 10 微秒。此外还有CDC变更数据捕获客户端以流的形式输出所有插入/更新/删除常用于构建客户端侧索引、缓存同步与 ML 特征检索。三种客户端源码分别位于clients/venice-thin-client/、clients/venice-client/Fast Client 在fastclient包与clients/da-vinci-client/目录。五、3 步快速部署用 Docker 跑起第一个 Venice 集群官方提供了开箱即用的 Docker 镜像单机环境部署只需三步详细步骤见docs/getting-started/deployments/quickstart-single-dc.md第 1 步获取项目如需要源码中的 compose 文件与示例数据git clone https://gitcode.com/gh_mirrors/venic/venice第 2 步启动集群在docker/目录下找到docker-compose-single-dc-setup.yaml执行 compose 启动命令。容器会自动拉起 Kafka、ZooKeeper、Venice Controller、Router、Server 与 Client并创建名为venice-cluster的测试集群。第 3 步建 Store → 推数据 → 查数据进入venice-client容器使用示例脚本完成闭环脚本与示例数据均在docker/venice-client/目录# 1. 用 key/value 的 Avro schema 创建 store ./create-store.sh http://venice-controller:5555 venice-cluster0 test-store \ sample-data/schema/keySchema.avsc sample-data/schema/valueSchema.avsc # 2. 批量推送 100 条示例数据 ./run-vpj.sh single-dc-configs/batch-push-job.properties # 3. 查询验证 ./fetch.sh http://venice-router:8888 test-store 1如果想体验跨数据中心 active-active 复制官方同样提供了docker/docker-compose-multi-dc-setup.yaml多 DC 编排文件。六、项目结构巡礼源码从哪里读起Venice 采用 Gradle 多模块工程主干结构对新人相当友好模块路径职责services/venice-controller/控制面集群、Store、版本管理services/venice-router/读流量入口与路由services/venice-server/存储与摄入引擎数据分片所在层clients/各客户端与推送任务thin / fast / Da Vinci / push-jobinternal/venice-common/核心公共库schema、序列化、Helix 元数据等docker/全套 Docker 镜像与单/多 DC 部署编排docs/官方文档站点源码架构、快速上手、运维手册学习路径建议先读docs/getting-started/learn-venice/architecture-overview.md建立概念再跑一遍单 DC 快速上手最后对照services/下三大服务源码理解「Controller 编排 → Server 摄入 → Router 服务」的完整链路。社区贡献规范见docs/contributing/目录。七、总结Venice 适合谁如果你满足以下任意一条值得把 Venice 加入技术雷达✅ 正在建设Feature Store需要一个承接 ML 特征的高性能在线存储✅ 受困于批流割裂想在一份存储上同时跑批量全量与实时流更新✅ 业务需要全球多地域读写又希望冲突消解交给基础设施自动完成✅ 追求读延迟从毫秒压到亚毫秒甚至微秒且不想为此重写业务代码。Venice 带来的不仅是性能数字更是一套经过 LinkedIn 行星级负载验证的「派生数据」工程范式——这正是它开源后持续受到关注的原因。【免费下载链接】veniceVenice, Derived Data Platform for Planet-Scale Workloads.项目地址: https://gitcode.com/gh_mirrors/venic/venice创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考