数据湖( Data Lake )概念自 2011 年被推出后,其概念定位、架构设计和相关技术都得到了飞速发展和众多实践,数据湖也从单一数据存储池概念演进为包括 ETL 分析、数据转换及数据处理的下一代基础数据平台。
如果需要给数据湖下一个定义,可以定义为:数据湖是一个企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖是一种存储架构,本质上讲是存储,所以通常情况下会用最经典的对象存储,比如用腾讯云对象存储 COS 当数据湖的地基。
数据湖从企业的多个数据源获取原始数据,并且针对不同的目的,同一份原始数据还可能有多种满足特定内部模型格式的数据副本。因此,数据湖中被处理的数据可能是任意类型的信息,从结构化数据到完全非结构化数据。
那么,企业如何从各个数据源构建数据管道,如何将各种数据数据稳定可靠的存入数据湖存储是非常重要的一环。
这篇文章就数据湖的入湖管道为大家详细解答关于 COS 数据湖结合 Serverless 架构的入湖方案。
为了更好的理解如何构建数据湖,我们可以先了解下数据湖背景下的数据生命周期。
上述生命周期也可称为数据在数据湖中的多个不同阶段。每个阶段所需的数据和分析方法也有所不同。数据处理其实有批量( batch )和流式计算( real - time )两种方式。这里定制化内容会比较多,例如,希望存储数据使用 SQL 查询访问数据,则上游选择对接必须支持 SQL 接口,如果希望直接在 Kafka 拉数据那下游数据获取则需要 kafka consumer 来拉数据。
传统数据湖架构分入湖与出湖两部分,在上图链路中以数据存储为轴心,数据获取与数据处理其实是入湖部分,数据分析和数据投递其实算是数据出湖部分。
总结来看,整体数据湖链路中定制化程度最高,使用成本及代价最大的其实是数据入湖部分(指数据获取和入湖前的数据处理)。这块内容往往也是实现的数据湖架构比较核心的数据连接。有没有更好的方案来实现对这块的数据链路打通其实是数据湖好不好用的关键节点。
COS + Serverless 架构湖整体能力点及方案如下图所示,相关解决方案覆盖数据入湖,数据出湖,数据处理三大能力点,通过 Serverless 化封装为数据入湖,数据出湖提供更多能力拓展。
下面以数据湖入湖方案为突破点,为大家详细介绍基于 Serverless 架构下的 COS 数据湖解决方案。
COS + Serverless 架构下的入湖方案其实是 batch 方案,通过云原生的函数触发器或 Cron/APIGW 拉起数据调用,通过函数捕获并记录批次数据信息,在函数内闭环相关的结构转换和数据格式转换,数据压缩等能力。
然后调用 Put Bucket 接口对拉取的数据进行上传,相关架构及处理流程如下图所示:
当前 COS + Serverless 入湖方案已集成在 COS 控制台的应用集成目录中,可直接访问 https://console.cloud.tencent.com/cos5/application 进行相关能力配置。
以 Ckafka 消息备份为例,点选配置备份规则 > 添加函数,即可进入相关配置页:
完成配置后可直接在控制台管理相关函数内容:
总的来说,基于 Serverless 架构下的 COS 数据湖方案易用性更高、成本更低,同时通过 Serverless 架构实现数据湖构建方案相对自建集群管理难度更小、数据流转单一、服务治理简单、监控易查询。