Greenplum 是知名开源数据仓库项目,曾是大数据分析领域的明星产品,在全球范围内尤其是在国内市场上有着重要的地位。今年 6 月, Greenplum 的 GitHub 仓库突然被改为归档模式,访问权限也修改为只读,用户将失去对源代码的访问权,意味着项目重回闭源,这对于依赖开源代码进行定制和优化的企业来说,是一个沉重的打击。此外,闭源还可能导致技术支持和社区活跃度下降,这对于需要持续迭代和优化的数据库产品来说,是一个不小的挑战。
技术依赖与迁移成本: 长期以来,国内许多企业和开发者依赖于 Greenplum 的开源特性。闭源后,这些用户需要寻找替代方案,这不仅增加了迁移成本,也带来了技术适配的挑战。
市场竞争格局变化: Greenplum 的闭源可能会改变国内数据仓库市场的竞争格局。一些依赖 Greenplum 的供应商可能会受到冲击,而那些拥有自主技术栈的供应商则有机会获得更多的市场份额。
生态系统影响: Greenplum 的闭源可能会影响其生态系统的稳定性。开发者和合作伙伴可能会寻找新的平台,这可能会导致生态系统的碎片化。
替代方案
在 Greenplum 闭源背景下,国内数据仓库供应商迎来了重要机遇,特别是以 Databend 为代表的新一代云原生数据仓库方案,拥有高性能、弹性扩缩容和存算分离等特性。对于考虑替代 Greenplum 的用户来说,Databend 是一个值得探索的替代方案。通过利用其开源和云原生等特点,用户可以在更优的成本下获得高效的数据分析和处理能力。
- 技术创新驱动
随着 Greenplum 的闭源,国内数据仓库市场对于开源替代方案的需求将进一步加大。Databend 作为云原生、基于 Rust 开发的数据仓库,提供了面向未来的数据存储和分析模式,具备高弹性、高并发、实时分析等优势,能够更好地满足企业对现代化数仓架构的需求。通过加强技术创新,Databend 可以为曾经依赖 Greenplum 的用户,提供更符合新兴技术趋势的数仓产品。
- 拥抱云计算和 对象存储
Greenplum 在传统的数据仓库市场有其积累,但其在云原生方面并不占据优势。Databend 在设计时便充分考虑了云计算和对象存储的应用场景,具备云原生的弹性扩展、按需付费和自动化运维等特性,能够更好地与云计算基础设施集成,适应现代企业对大规模、实时数据分析的需求。
- 开源生态的壮大
在 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,能够凭借其灵活的架构和技术优势,帮助用户完成架构演进。