随着数据量的爆炸性增长,现代企业在数据存储、处理与分析上面临巨大挑战。在 it 架构中,数据仓库承担着企业中关键的数据存储和分析任务,如果不能高效运作,必将导致成本飙升和决策效率低下。因此数据仓库的降本增效是企业 it 部门持续的命题。
作为面向实时数据处理的工具,olap(联机分析处理)系统能帮助企业充分挖掘数据价值、辅助决策。然而,olap 在追求高效数据分析的同时,往往难以平衡成本与效率矛盾。
快节奏的商业环境要求 olap 系统在保证数据准确性的前提下,尽可能缩短数据处理和分析的时间。但高效的数据处理往往伴随着更复杂的系统架构和更高的资源消耗,企业需要投入高昂的计算资源、服务器、存储资源等硬件成本以及大量算法优化、运维、迁移等软性成本。
企业使用一款数据仓库产品,成本项可以区分显性成本与隐性成本:
- 硬件成本:代表了部署数据仓库软件的所需的硬件成本,包括计算资源成本(cpu)与存储资源成本(磁盘、存储集群)。毫无疑问数据仓库涉及 tb 甚至 pb 级数据的存储与分析,对硬件的要求颇高。
- 性能成本:单位能效不高,导致在完成任务或处理数据时,需要配备更多的资源以弥补这一不足。一方面,在计算能效上,需要增加更多的高性能计算单元或优化现有的计算能力,以确保在合理的时间内完成复杂的计算任务,避免处理速度的滞后;另一方面在存储能效上,需要部署更大容量的存储设备以应对日益增长的数据量,同时减少能耗,提高数据存储和检索的效率。
- 运维成本:代表了运维数据仓库的人力与时间成本。
- 数据仓库作为极其复杂的软件产品,对运维人员的专业要求和精力消耗本身极高。如果在数据系统中运行多款组件,如 clickhouse、elasticsearch、greenplum... 则会让复杂性指数级增加,运维人员的技能要求也指数级增加。
- 迁移成本:代表了从旧的数据仓库或分析型数据库迁移到 bytehouse 的人力与时间成本;
- 数据仓库之前的语法,架构差异通常极大,搬迁数据难于搬家,带来了极高的替换成本。
bytehouse 是火山引擎数智平台 vedi 旗下的一款云原生数仓产品,以 clickhouse 技术路线为基础,从 2017 年内部立项开始,截止到 2022 年 3 月,bytehouse 节点总数已经达到了 18,000,最大的行为分析集群超过了 2,400 个节点,数据量超过 700pb。
bytehouse 在架构上遵循新一代云原生理念,实现了容器化、存储计算分离、多租户管理和读写分离等功能,同时支撑实时数据分析和海量数据离线分析,尤其对高吞吐、高并发、复杂查询等多种实时数据分析场景进行优化,能为用户提供极速分析体验。
bytehouse 具备存储、计算分离,高弹性扩展的特点,其计算层采用 shared-nothing 架构,存储层采用 shared-everything 架构,能更好地支持计算和存储层的水平扩展。基于 bytehouse 高性能的实时数据分析决策能力,数据从导入到分析决策仅需几秒,99% 的查询都能得到秒级保障。除了高可用的基础能力,bytehouse 还提供免托管运维服务,包括丰富的集群管理工具、全面的系统监控能力,帮助企业轻松了解业务状态,让故障排查与问题诊断变得简单。
云原生数据仓库 bytehouse 在架构、技术、生态、融合四个方面上均能带来红利,能显著地降低显性成本与隐性成本。通过引入像 bytehouse 这样“能省钱”的云原生数据库,企业能够在支持大规模数据查询的同时,有效控制硬件成本、迁移成本与运维成本的投入,提升系统性能,实现数据驱动的业务增长。
- 架构红利:bytehouse 采用独特的存算分离架构,实现了资源的高效利用和灵活扩展。这一架构解决了传统数据仓库在计算和存储资源上的紧耦合问题,使企业能够根据实际需求独立扩展计算或存储资源,从而避免了资源浪费。
- 技术红利:在计算层面,bytehouse 自研的查询优化器提升了多表查询性能,点查优化技术则提高了系统的并发性能。在存储层面,通过共享对象存储、存储分级、数据压缩等极致优化,bytehouse 进一步降低了存储成本。
- 生态红利:bytehouse 支持丰富的上下游生态,包括数据导入、加工工具、调度工具、bi 工具以及语言 driver 和开发工具等。同时,与 clickhouse、mysql 生态完全兼容,降低了用户数据迁移的门槛和额外成本。
- 融合红利:bytehouse 融合了实时查询、聚合查询、人群圈选、文本检索等各类场景,简化了企业的技术栈管理,降低了运维成本。此外,在湖仓融合方面,bytehouse 支持业界常见数据湖的外表连接方式,能实现多种外表和 bytehouse 内表的联邦查询,进一步提高了分析效率并降低了数据冗余存储和转换成本。
首先,bytehouse 支持存算分离架构,也是让 bytehouse“更省钱”的重要原因,存算分离通过更高效的资源分配和灵活的扩展方式,帮助企业在数据管理和计算任务中有效控制资源成本并提升效率。
传统的数据仓库通常使用无共享(shared-nothing)的架构,使得计算资源和存储资源是紧耦合的,因此集群时计算和存储资源的配比和容量就已经固定,无法支持二者独立扩缩容。这就意味着计算与存储必有一项存在资源浪费情况。
例如,当业务不需要太多计算资源,但存储的数据量激增,也需要新购大量服务器;另一些情况下,一些集群的存储资源冗余,但 cpu 利用率很高,用户的查询体验差;且上述两种情况无法共享 cpu 与存储资源,结果就是资源成倍浪费。
同时,传统的架构面对计算资源高峰低谷,比如例如早上查询业务高峰期,夜间 etl 任务高峰期,只能通过生硬的混合部署方式来应对;这种方式不够灵活,同时也可能会发生夜晚 etl 任务未完成,影响上午业务的情况,从而导致连环影响。
正是基于上述痛点,bytehouse 研发了存算分离的云原生新架构。
计算和存储分离架构
如上图所示,计算节点(vw)与数据存储(data storage)是隔离的。从计算节点的角度来看,他们将看到一个全局共享的数据池,即数据存储层。这意味着该池中的所有数据都可以跨所有计算资源共享。
采用这种存算分离架构架构具有三大优势:
- 灵活的伸缩能力,因为计算资源和存储是分离的,它们可以根据需求,对计算或存储资源独立扩展。
- 无尽的可扩展性。 由于数据是在存储层中共享的,理论上可以横向扩展以利用尽可能多的计算资源。
- 对于集群管理者来说更加友好,因为他们不需要担心数据一致性、数据副本和数据收费问题; 所有这些都可以委托给云服务提供的数据存储层来实现,如对象存储或 hdfs。
弹性策略应对多样业务场景:当您拥有多个计算组资源,每个计算组资源应对不同业务;当工作负载各不相同时,用户可以根据业务场景针对不同的计算组设置不同的策略;
bytehouse 计算组自动启停策略,帮助用户节省 ~20% 成本:当 vw 空闲超过 5 分钟时,自动启停 会自动关闭集群,vw 在关闭期间不会产生任何费用。
弹性扩展,灵活自动:根据时间,资源负载等条件进行扩容/缩容配置;减轻手动管理的负担,提升资源利用率。
节省成本:根据实际业务需求灵活调整计算资源规模,无需提前购买全部资源。