从 Greenplum 到 Databend,数据仓库的开源新选择

Greenplum 是知名开源数据仓库项目,曾是大数据分析领域的明星产品,在全球范围内尤其是在国内市场上有着重要的地位。今年 6 月, Greenplum 的 GitHub 仓库突然被改为归档模式,访问权限也修改为只读,用户将失去对源代码的访问权,意味着项目重回闭源,这对于依赖开源代码进行定制和优化的企业来说,是一个沉重的打击。此外,闭源还可能导致技术支持和社区活跃度下降,这对于需要持续迭代和优化的数据库产品来说,是一个不小的挑战。

技术依赖与迁移成本: 长期以来,国内许多企业和开发者依赖于 Greenplum 的开源特性。闭源后,这些用户需要寻找替代方案,这不仅增加了迁移成本,也带来了技术适配的挑战。

市场竞争格局变化: Greenplum 的闭源可能会改变国内数据仓库市场的竞争格局。一些依赖 Greenplum 的供应商可能会受到冲击,而那些拥有自主技术栈的供应商则有机会获得更多的市场份额。

生态系统影响: Greenplum 的闭源可能会影响其生态系统的稳定性。开发者和合作伙伴可能会寻找新的平台,这可能会导致生态系统的碎片化。

替代方案

在 Greenplum 闭源背景下,国内数据仓库供应商迎来了重要机遇,特别是以 Databend 为代表的新一代云原生数据仓库方案,拥有高性能、弹性扩缩容和存算分离等特性。对于考虑替代 Greenplum 的用户来说,Databend 是一个值得探索的替代方案。通过利用其开源和云原生等特点,用户可以在更优的成本下获得高效的数据分析和处理能力。

  1. 技术创新驱动

随着 Greenplum 的闭源,国内数据仓库市场对于开源替代方案的需求将进一步加大。Databend 作为云原生、基于 Rust 开发的数据仓库,提供了面向未来的数据存储和分析模式,具备高弹性、高并发、实时分析等优势,能够更好地满足企业对现代化数仓架构的需求。通过加强技术创新,Databend 可以为曾经依赖 Greenplum 的用户,提供更符合新兴技术趋势的数仓产品。

  1. 拥抱云计算和 对象存储

Greenplum 在传统的数据仓库市场有其积累,但其在云原生方面并不占据优势。Databend 在设计时便充分考虑了云计算和对象存储的应用场景,具备云原生的弹性扩展、按需付费和自动化运维等特性,能够更好地与云计算基础设施集成,适应现代企业对大规模、实时数据分析的需求。

  1. 开源生态的壮大

在 Greenplum 关闭开源社区的同时,Databend 通过进一步扩大开源社区,吸引更多开发者、合作伙伴和用户参与进来,构建开放的生态体系。开源生态不仅是产品推广的重要渠道,也是推动技术快速迭代、满足多样化市场需求的有效途径。通过持续在开源社区中的投入,Databend 可以加速技术创新,吸引原本依赖 Greenplum 的用户群体。

从 Greenplum 到 Databend

万全网络科技有限公司是一家专注于 B 端电商物流供应链的公司,曾从 Greenplum 迁移到 Databend,我们可以从万全身上来观察从 Greenplum 到 Databend 的迁移流程以及对企业的具体影响。

万全网络致力于为客户提供全面的供应链解决方案,涵盖从产品采购到最终配送的全程服务。公司的服务包括但不限于:供应链管理,仓储与配送,信息技术支持。

迁移背景

万全网络在构建数据中台架构时,最初选择了 Greenplum 作为大数据应用层数据库,此平台不仅支持数据的采集、清洗、加工,还涵盖了数据对外提供服务的完整链路。数据计算同步和计算引擎都是基于 Spark 构建的,确保了平台的稳定性和高效性。在过去的几年中,它主要使用 Greenplum 作为大数据应用层数据库,该数据库主要用于支撑万全的业务线报表、大屏展示、帆软报表、SFA 运营报表等应用。然而,随着业务的发展, Greenplum 在响应时间、存储效率、物化视图导致的 IO 压力等方面逐渐暴露出局限性。

Greenplum 使用中的挑战

响应时间 延长: 用户反馈高峰时期报表响应时间过长。

存储与性能局限: CRUD 操作限制选择行存储堆表,尽管其事务吞吐能力可与 MySQL 媲美,但在存储效率低、不适合 OLAP 场景、高 IO 开销等方面存在缺陷。

物化视图 导致的 IO 压力: 物化视图 1-5 分钟一次的高频刷新导致大量磁盘 IO 操作,使得服务器的 iowait 指标常年高达 60%,导致查询延迟。

资源分配挑战: 尽管通过资源队列减少了用户间资源竞争,但存算混部的特性限制了对磁盘资源的精确控制,导致整体性能提升有限。

MVCC 机制的存储成本: 频繁更新的行由于 MVCC 机制而存储多个副本,增加存储空间需求,提高存储成本,影响查询性能。 为了保持数据库的查询性能稳定,需要定期运行维护任务,通常是根据更新频率间隔几个小时执行一次 VACUUM 操作,但是通常 VACUUM 只会对增量部分数据进行快照合并,无法完全释放表空间膨胀,还需要在每个月选择一天进行分批对表执行 full VACUUM 操作,以维持表查询性能稳定。在当前硬件资源有限的条件下,即便是进行节点扩容,也并不会带来更多的收益,而且还需要对数据进行重新分布,从收益和成本上都不是最佳选择。

万全网络期望一个既有数据湖特性、又能够高效查询的数据库,而 Databend 刚好契合需求。 在这次迁移中,万全网络选择了 Databend 数据库,经过一系列的规划、准备、 **兼容性**评估等工作,成功将业务从 Greenplum 迁移到 Databend。 这次迁移不仅减少了资源占用,提升了性能,也为未来的业务发展提供了更强大的支持。

规划和准备

万全网络在迁移过程中坚持了复用现有资源、优化现有数据架构、降低维护成本和提升架构伸缩性等原则。通过这些原则,万全网络成功将业务从 Greenplum 迁移到 Databend,不仅减少了资源占用,提升了性能,也为其未来的业务发展提供了更强大的支持。

准备工作

一开始,万全网络也是抱着"试一试"的态度试用 Databend。 但在经过实际测试和应用后,Databend 的表现远超预期,其性能并不逊色于传统的存算混合架构。 这不仅证实了万全网络选择的正确性,而且凸显了 Databend 在大数据存储领域的出色性能。

特别值得一提的是,Databend 的读写分离机制。这一机制与云原生概念紧密相连,同时符合当前数据湖发展的趋势。通过实现读写分离,万全网络成功提高了读取性能的同时降低了写入的压力。

在使用 Greenplum 时,尽管万全网络实施了资源分组和队列限制策略,但这些措施并未能有效解决资源争抢问题。为了更有效地应对此挑战,万全网络决定充分发挥 Databend 的多租户特性,将不同业务线的流量进行分割,确保每个业务线都能享有更优越的性能体验。此外,多租户机制还提供了更为灵活的权限管理方式。

增效

将 Databend 数据库部署在 Kubernetes(k8s)上,采用云原生的部署方式。 这一战略选择为万全网络的系统带来了显著优势,特别是在动态扩缩容方面。 利用 Kubernetes 的高级特性,有效缓解了流量高峰期的压力,同时降低了系统维护成本。

在数据仓库开发方面,万全网络通过降低表间依赖,显著提高了数据维护的效率。此外还实现了数据载入层的平滑迁移,优化了离线 T+1 数据的导入流程。值得注意的是,在实时数据处理上,万全网络从实时数据导入切换为微批次导入,虽然牺牲了部分时效性,但导入性能却得到了数倍的提升,极大地增强了开发团队的工作效率。

优化

在数据库迁移过程中,万全网络不仅迁移了数据库,还对原有数据架构进行了深入优化。一个关键的优化是解决了之前在Greenplum 中使用大量视图和物化视图构建准实时报表所带来的问题。

在 Greenplum 系统中,万全网络依赖视图和物化视图来构建准实时报表,这在表结构变化时导致了维护的复杂性和服务中断。 **而在 Databend 迁移后,利用其作为数据湖的能力,保存多个数据版本,采用 insert overwrite 方法配合调度平台,实现了数据的****高可用性**和稳定访问。 这一策略不仅打破了物化视图间的依赖关系,还使万全网络能够灵活应对表结构变更,最小化对用户的影响。

这种优化策略极大提高了万全网络对外服务的稳定性和连续性,同时降低了维护的复杂性。新架构的灵活性能够更有效地应对数据变更,进一步增强了系统的可维护性和可扩展性。

迁移过程

在当前快速发展的数据管理领域,有效的数据库迁移策略对保持技术先进性和业务竞争力至关重要。

在迁移的初期,万全网络明确了四项核心原则:复用现有资源、优化现有数据架构、降低维护成本,以及提升架构伸缩性。这些原则确保迁移策略既高效又可控。

经过详细的需求分析和目标设定,万全网络对 Databend 进行了深入评估,包括性能测试和压力测试,以确保其适应性和稳定性。这一阶段的成功为后续的迁移提供了坚实的基础。

数据库架构优化

新一代云原生数仓 Databend 采用了存算分离的设计理念,提高了系统的灵活性、扩展性,并优化了多租户环境下的读写分离策略,大大提升了性能、安全性和稳定性。

迁移过程的集成与优化

在数据同步方面,万全网络采用了 Flink 和 Spark 处理引擎,以应对实时与离线数据同步的需求。 万全网络优化了数据同步的流程和稳定性,并调整了任务调度策略,提高了数据同步的效率和稳定性。

查询优化和性能提升

万全网络重点优化了查询条件,采用了计算落地策略和 query cache 功能,以应对大量数据查询和数据倾斜问题。 这些措施显著提升了查询性能和响应时间。

测试与回退策略

在测试阶段,万全网络采用了分流策略,重点关注性能回归排查和优化,确保系统的稳定性和可靠性。 万全网络还制定了灵活的回退策略,以应对可能出现的系统性能问题。

迁移中的挑战与解决方案

在迁移过程中,万全网络面临并克服了多个技术挑战,包括系统表查询优化、查询节点内存问题、存储错误和 nginx 代理问题等。

迁移成果与指标

迁移完成后,万全网络在多个方面取得了显著成果:

  • 查询性能: 提升显著,用户可以更快速地获取数据;
  • 数据导入/导出速度: 销等方面存在缺陷。 显著提高,支持更高效的数据更新;
  • 存 储效率: 优化后的系统在存储资源利用上更加高效;
  • 用户体验: 由于性能的提升,用户体验得到了显著改善;
  • 成本效益: 维护时间成本降低,系统资源利用率提升 。

总结

万全网络的迁移过程包括了数据库架构优化、迁移过程的集成与优化、查询优化和性能提升、测试与回退策略以及迁移中的挑战与解决方案。迁移完成后,万全网络在查询性能、数据导入/导出速度、存储效率、用户体验和成本效益等方面取得了显著成果。

万全网络团队在 4 个月中,成功完成了整个业务系统的迁移工作,涵盖了 4 个业务线,共计近 500 张表和 600 个任务的迁移任务。万全网络的案例表明,Greenplum 的闭源虽然带来了挑战,但也为 Databend 等新兴数仓供应商提供了机遇。通过成功的迁移,万全网络不仅提升了技术,也加强了团队协作,为未来的业务发展奠定了坚实的基础。

Greenplum 的闭源为国内数据仓库领域带来了变革契机。尽管其历史积淀和技术成熟度为行业树立了标杆,但在云计算和大数据时代,开源、云原生和实时分析的需求日益强烈。国内数据仓库供应商,如 Databend,能够凭借其灵活的架构和技术优势,帮助用户完成架构演进。

相关推荐
ClkLog-开源埋点用户分析2 小时前
ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力
华为·开源·开源软件·harmonyos
funnyZpC5 小时前
quartz集群增强版🎉
java·分布式·开源·集群·定时任务
vvw&11 小时前
如何使用Netdata部署高性能的服务器监控平台
linux·运维·服务器·docker·开源·服务器监控·netdata
Goboy18 小时前
0帧起步:3分钟打造个人博客,让技术成长与职业发展齐头并进
程序员·开源·操作系统
Kagol18 小时前
🎉TinyVue v3.19.0 正式发布!Tree 组件终于支持虚拟滚动啦!UI 也升级啦,更更符合现代审美~
前端·vue.js·开源
工作不忙1 天前
关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c++语法
开发语言·c++·windows·开源·开源软件
IT规划师1 天前
开源 - Ideal库 - 常用时间转换扩展方法(一)
开源·时间转换·ideal库