如何构建现代本地部署数据湖仓(避免供应商锁定)

发布日期:2026-06-29 10:02:14   浏览量 :7
发布日期:2026-06-29 10:02:14  
7

构建现代分析平台通常与一件事紧密相关:迁移到云端。

但是,当运营现实、预算限制或严格的合规性要求需要百分之百的本地部署解决方案时,会发生什么?

直到最近,维护本地数据湖意味着在两条痛苦的道路之间做出选择:

与笨重且过时的哈多普集群搏斗。

为专有软件支付高昂的许可费用。

如今,局面已彻底改变。

开源生态系统已经发展到这样一个阶段:你可以构建一个健壮、高性能且完全解耦的数据湖仓,运行在裸金属服务器上。

没有专有技术。没有高昂的费用。也绝对没有供应商锁定。

在本文中,我将详细解析我们用于构建尖端内部数据湖仓的架构、技术栈和治理模型。

技术栈:构建“开源版 databricks ”
为了确保模块化和可扩展性,我们应用了现代数据架构的基本原则:计算与存储分离。

我们的技术栈 assembled 使用了当前开源生态系统提供的最佳组件:

存储:米尼奥
我们用米尼奥取代了哈多普分布式文件系统和亚马逊网络服务简单存储服务。它提供与简单存储服务应用程序接口的完全兼容性,但在本地运行。安装在带有 XFS 文件系统的非易失性内存快速硬盘上,它保证了重型分析工作负载所需的极高输入/输出吞吐量。

表格式:阿帕奇冰山
冰山是我们数据湖仓的核心。它将关系数据库的功能直接带入数据湖,例如原子性、一致性、隔离性和持久性事务、轻松的架构演进以及时光旅行(允许我们查询过去特定时间点的数据确切状态)。

元数据目录:内西项目
内西充当我们的冰山目录。其杀手级功能是为数据提供类似吉特的体验——允许在数据层面进行分支、提交和打标签。

结构化查询语言引擎:特里诺
对于计算层,我们使用特里诺(前身为普雷斯托 SQL)。它是一个闪电般快速的分布式查询引擎。除了查询我们的数据湖仓外,特里诺还具有查询联合连接器。这使我们能够在单个查询中将数据湖仓数据与运营数据库(微软 SQL 服务器、我的 SQL)直接连接,避免不必要的数据复制。

摄入与转换:dlt 和 dbt 核心
为了从源中提取数据,我们使用 Python 库 dlt(数据加载工具),这使得构建弹性管道变得轻而易举。对于转换和建模,我们依赖行业标准 dbt 核心,将结构化查询语言代码转化为包含版本控制、测试和文档的软件工程管道。

基础设施:裸金属与容器
为了在关键位置提取最大性能,我们将基础设施分布在两个不同的服务器上:

  1. 核心服务器(裸金属):
    这是承担繁重任务的地方。米尼奥、内西和特里诺等服务原生运行在乌班图服务器 24.04 上,通过系统守护进程进行管理。我们故意在这一层不使用多克,以避免任何虚拟化网络开销或磁盘输入/输出瓶颈。我们确保结构化查询语言引擎和存储以硬件允许的绝对最高速度进行通信。

  2. 支持服务器(多克):
    在辅助服务器上,我们通过多克以容器化方式运行整个支持生态系统。这里是以下工具的家园:

达格斯特:我们的数据管道编排器。

格拉法纳和普罗米修斯:用于监控服务器健康指标。

云海狸:我们用于结构化查询语言探索的网页界面。

奖章架构与去中心化治理
数据湖仓最大的挑战不是技术

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据