揭秘数据湖治理:资源管理与血缘关系清晰化的双重策略

文摘   2024-11-08 18:02   北京  
本文节选自数据湖技术成熟度曲线发布会圆桌整理文档,本圆桌由快手、前腾讯、平安产险等公司的专家参与讨论。
数据湖技术成熟度曲线下载

靳国卫(主持人):无论是湖仓还是湖,还是仓,最终目标都是解决业务问题。在这个过程中,我们会建设大量的数据资产。当数据资产达到一定规模后,就需要进行治理。
关于治理,我的理解是:数据湖主要为数据仓库提供了基于列的更新能力,在日常工作中,运维和治理的关注点也从表的粒度转变为列的粒度。以前我们写一张Hive表只需执行一个insert overwrite任务就可以完成。现在,通过协作模式和宽表模式的演进,数据模型中可能会有多个任务同时写入。如唐老师提到的,删除列和增加列会对数据产生影响。那么,大家如何看待这种基于血缘的数据治理,从表级到列级的转变对业务的影响,以及需要注意哪些点?请唐老师先来分享一下。

唐浪飞:好的。从数据治理的角度出发,首先关注的一个方向是资源管理。在治理过程中,我们需要特别重视非结构化或半结构化数据,这类数据在现代项目中占据了很大的比重,尤其是在AI快速发展的今天,非结构化数据的比例显著增加。

在我们的项目中,很多图片、文本或视频数据其实是可以丢弃或过期的,因此我们需要有相应的治理机制。通过湖仓的模式,我们将非结构化数据和结构化数据统一管理,这在传统数据仓库中是很难做到的。正如张静老师之前提到的,统一管理table schema,能够帮助我们更好地处理这部分数据。

其次,张静老师也提到,传统数据库主要处理关系型结构化数据,而在离线数据仓库中,链路往往较长且冗余。通过数据湖,我们能更清晰地看到每个字段的血缘关系,并为其建立索引。这将有助于数据口径的治理和数据内容的修复。

综上所述,我认为数据治理中,资源管理和血缘关系的清晰化是两个重要方向。这不仅有助于提高数据质量,也为后续的业务决策提供了可靠依据。

靳国卫(主持人):感谢唐老师的分享。接下来,邵老师请您谈谈对数据湖治理的一些想法。

邵赛赛:治理主要分为两个方面。首先,就像刚才提到的,我们需要对数据资产进行管理,也就是从人的角度出发,治理过程应当包括对列级或表级数据资产生命周期变化的跟踪,这种管理有助于确保数据的质量和一致性。

其次,我认为数据湖的治理还有一个特殊之处,就是系统级或技术级的数据治理。这一点在传统的数据仓库或Hive表中并不明显,数据湖需要处理更多的优化任务。
腾讯内部构建了一套强大的自动优化系统,可以对Iceberg表进行智能优化,例如小文件合并,系统可以根据数据的增量变化进行自动优化,而不是依赖于固定的时间周期。这种方式可以更加高效地利用数据资源,实现更好的合并效果。此外,我们会统计一些指标,进行查询优化。例如,如果发现某些字段的查询频率较高,就会考虑为这些字段建立索引或进行预排序。对于某些具有特征的数据文件,我们会优化统计值。整套体系不仅能够收集查询模式,还能与Iceberg表联动,让查询过程更加流畅。对于用户而言,他们无需关心表中有多少个文件或其布局如何,只需通过普通SQL查询便能获得更好的性能。

总之,这套自动化体系对数据湖治理至关重要。许多公司都在构建类似的系统。如果缺乏这样的体系,数据湖(如Iceberg、Hudi)将面临许多小文件问题,这会影响写入频率并进而影响读取性能。因此,我们的治理工作更多在于系统优化方面。
由上面讨论得知,数据湖的数据治理,有非常多先进的思想和技术点。DataFun重磅推出数据湖实战工作坊,对于数据湖如何进行数据治理,有详细的讲解,欢迎大家扫码咨询

DataFunSummit
DataFun社区旗下账号,专注于分享大数据、人工智能领域行业峰会信息和嘉宾演讲内容,定期提供资料合集下载。
 最新文章