2026-02-08 13:21:34
在上一篇文章中,我们初步探讨了存算分离湖仓一体架构的基本概念及其优势。本文将继续深入分析这一架构,重点介绍星环科技Inceptor和Apache Delta Lake这两个关键技术。
星环科技Inceptor概述
星环科技Inceptor是一个分布式的关系型分析引擎,自2013年开始研发,主要用于ODS(Operational Data Store,操作型数据存储)、数据湖以及其他结构化数据的分析型业务场景。Inceptor支持绝大部分ANSI 92、99、2003 SQL标准,兼容传统关系型数据库方言,如Oracle、IBM DB2、Teradata等,并且支持存储过程。
技术特点
分布式事务机制:
Inceptor基于HDFS(Hadoop Distributed File System)开发了分布式事务机制,以支撑部分数据仓库的业务场景。
采用MVCC(Multi-Version Concurrency Control,多版本并发控制)机制,每次提交的数据更新不直接对数据文件进行改写,而是增加一个相应的新版本,实现并发update和delete操作。
读取数据时,将所有文件数据读入内存,并在内存中对多个文件中的同一个数据按照事务顺序和可见性进行合并(Merge on Read机制)。
并发控制与事务隔离:
开发了一个独立的Lock Manager来管理分布式事务的产生与可见性判断,锁的粒度包括Database、Table和Partition三个层次,减少锁冲突。
支持Read uncommitted、Read committed、Repeatable reads、Serializable和Serializable Snapshot五种隔离级别。
提供了悲观和乐观两类可序列化隔离级别:基于严格的两阶段锁的串行化隔离级别(S2PL Based Serializable Isolation)和基于快照的序列化隔离级别(Serializable Snapshot Isolation)。
性能优化:
通过优化SQL执行计划、向量化计算等技术提升SQL性能。
引入快照机制和Serializable Snapshot的隔离级别,解决读写冲突问题,提高并发性能。
应用场景
Inceptor在数据仓库的场景下成熟度较高,被金融业大量采用。但由于其设计上不是为了机器学习的场景,因此没有提供直接给机器学习框架使用的数据API层,也没有单独设计面向实时数据写入的架构,不能有效支持流批一体的架构。不过,星环科技在分布式数据库ArgoDB中解决了流批一体的需求问题。
Inceptor总体架构图

概述
Delta Lake是Databricks开发的一个开源存储层,旨在提供数据湖的ACID(Atomicity, Consistency, Isolation, Durability,即原子性、一致性、隔离性、持久性)事务支持。它完善了文件存储,提供严格的数据库schema机制,并研发了一套基于MVCC的多版本事务机制,以进一步提供数据库的ACID语义,支持高并发的update和delete的SQL操作。
技术特点
ACID事务支持:
提供严格的数据库schema机制,支持基于MVCC的多版本事务机制。
实现数据库的ACID语义,支持高并发的update和delete操作。
开放的数据格式:
基于开放的数据格式(如Parquet),可以直接操作HDFS,也让其他计算引擎可以访问相关的数据,提高生态兼容性。
灵活的数据API:
提供DataFrame API,支持Python、R等编程语言接口。
强化了对Spark MLlib、SparkR、Pandas等机器学习框架的整合,支持机器学习和AI训练任务。
流批一体架构:
与Spark Structured Streaming深入整合,delta table可以作为Streaming的数据源和目标表。
保证Exactly-Once语义,提供流批一体的参考架构设计。
应用场景
Delta Lake设计的核心是为了更好地在一个存储上同时支持实时计算和离线计算。它结合了Spark的计算能力和Delta Lake的存储能力,可以实现完全基于Databricks存算技术的数据架构,支持BI统计分析、实时分析以及机器学习任务。此外,Delta Lake基于开放的数据存储格式,也可以对接其他的计算引擎如Presto做交互式分析。
Delta Lake流批一体架构图

星环科技Inceptor:是最早开始探索在数据湖上提供数据仓库能力的产品之一,并且在2016年即完成产品的规模化上生产,产品成熟度较高。尤其在分布式事务实现的完备性上有明显优势,但设计上不是为了机器学习的场景,也没有单独设计面向实时数据写入的架构。
Apache Delta Lake:强调的是结合Spark形成的流批一体的数据架构以及对机器学习类应用的原生API级别的支持。虽然开源相对受限,部分功能需要依赖Databricks File System以及Engine,但在性能上具有普遍性,适用于多种业务场景。
随着各个项目逐步完成了初始设计目标,他们都在进一步扩大适用场景,推动着湖仓一体架构的快速迭代。在选择具体的湖仓一体架构方案时,企业需要根据自身的业务需求、技术栈以及未来发展方向进行综合考虑。