你真的需要数据湖吗?
极客时间编辑部
讲述:丁婵大小:7.56M时长:05:30
数据湖是一种通常被定义为大数据架构的方法,在处理高速生成的大量数据时,数据湖提供了更容易、更灵活的选择。目前,数据湖已经成为许多大数据项目的基石。但是,数据湖真的适合你吗?日前,InfoQ 编译了 Upsolver 市场总监埃兰·利维(Eran Levy)的一篇文章,他认为应该通过四个问题,判断是否要加入数据湖的潮流中。以下是原文内容。
任何新兴技术都无法成为放之四海而皆准的解决方案,数据湖也是如此。它可能非常适合某些场景,比如处理高速生成的大量数据,如 Web、传感器或应用程序活动数据等等。但在其他情况下,使用传统的数据库体系结构才是更好的解决方案。下面,我们将通过四个问题,帮助你判断是否要加入数据湖的潮流中。
数据湖:基本定义
数据湖是一种通常被定义为大数据架构的方法,它侧重于将非结构化或半结构化数据,以其原始格式存储在一个服务于多个分析用例或服务的存储库中。存储和计算资源是解耦的,因此,数据驻留在廉价的对象存储中,各种工具和服务可以用来查询这些数据。
这一点与传统的数据库或数据仓库架构不同。在传统的架构中,计算和存储是耦合的,数据是在摄取时进行结构化的,以强制执行设置的架构。数据湖采用“立即存储,以后分析”的方法变得更容易,因为几乎不需要付出什么努力就可以将数据输入到这个湖中。但是,在分析数据时,可能会面对一些传统的数据准备挑战。
接下来,需要考虑的问题是:你的组织需要数据湖吗?我们可以从以下 4 个关键问题中找到答案。
1. 你的数据的结构是怎样的?
数据湖非常适合存储大量的非结构化和半结构化数据。将这类数据存储在数据库中需要做大量的数据准备,因为数据库是围绕结构化表构建的,而不是 JSON / XML 格式的原始事件。
如果你的大部分数据是由结构化的表格组成的,则更适合使用传统的数据库。例如,预先处理过的 CRM 记录或财务资产负债表等等。但是,如果你正在处理大量基于事件的数据,比如服务器日志或点击流,那么以原始形式存储这些数据,并根据你的用例构建特定的 ETL 流可能会更容易一些。
2. 你的 ETL 过程有多复杂?
ETL(extract-transform-load)通常是实际使用数据的前提条件。在处理大数据或流数据时,由于使用 Spark/Hadoop 等代码密集型框架编写 ETL 作业的复杂性较高,它可能会成为主要的障碍。
为了最大程度地减少在 ETL 上花费的资源,可以先确定主要瓶颈发生在哪里。如果你在努力将半结构化和非结构化数据“拟合”到关系数据库中时很费劲,那么是时候考虑转换到数据湖了。不过,在创建从湖中到将用于分析、机器学习的各种目标服务的 ETL 流时,你可能仍然会遇到很多挑战。在这种情况下,你需要使用一个数据湖 ETL 工具来自动化这些过程。
3. 数据保留是个问题吗?
由于数据库将存储与计算结合在一起,在数据库中存储非常大的数据量就变得非常昂贵,这就会产生很多数据保留方面的问题。为了控制成本,要么删除数据中的某些字段,要么限制保存历史数据的时间。
如果你在寻找为了分析而保留数据,和为了控制成本而删除数据之间的平衡点,那么,你可以采用数据湖解决方案。因为围绕廉价对象存储构建的数据湖体系结构,可以使你能够保留 TB 甚至 PB 级的历史数据,并且不需要花大价钱。
4. 你的用例是可预测的还是实验性的?
如果你只是试图建立一个报告,只针对定期更新的表运行一组预先确定的查询,那么,数据仓库可能会是一个很好的解决方案,你可以使用 SQL 和可用的数据仓库,以及业务智能工具,简单地实现此类解决方案。
但是,对于更多的实验性用例,比如机器学习和预测分析等,很难提前知道你需要什么数据以及如何查询这些数据。在这种情况下,数据仓库的效率可能会非常低,因为预定义的模式将限制你研究数据的能力。所以这个时候,数据湖会是更好的选择。
当你的数据达到一定的规模和复杂度时,数据湖无疑是最佳选择。如果你也不确定是否要使用数据湖的话,不妨用上面四个问题来检验一下。
以上就是今天的内容,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 郭行知数据湖以对象存储作为底层存储。当业务难以删除历史数据,必须保留全量数据以待分析的情况下,使用数据湖将极大降低成本。归属地:北京
收起评论