01 前言

数据湖(Data Lake)概念自2011年被推出后,其概念定位、架构设计和相关技术都得到了飞速发展和众多实践,数据湖也从单一数据存储池概念演进为包括 ETL 分析、数据转换及数据处理的下一代基础数据平台。

如果需要给数据湖下一个定义,可以定义为:数据湖是一个企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖是一种存储架构,本质上讲是存储,所以通常情况下会用最经典的对象存储,比如用腾讯云对象存储 COS 当数据湖的地基。

数据湖从企业的多个数据源获取原始数据,并且针对不同的目的,同一份原始数据还可能有多种满足特定内部模型格式的数据副本。因此,数据湖中被处理的数据可能是任意类型的信息,从结构化数据到完全非结构化数据。

那么,企业如何从各个数据源构建数据管道,如何将各种数据数据稳定可靠的存入数据湖存储是非常重要的一环。

这篇文章就数据湖的入湖管道为大家详细解答关于 COS 数据湖结合 Serverless 架构的入湖方案。

02 数据湖数据链路分析

为了更好的理解如何构建数据湖,我们可以先了解下数据湖背景下的数据生命周期。

上述生命周期也可称为数据在数据湖中的多个不同阶段。每个阶段所需的数据和分析方法也有所不同。数据处理其实有批量(batch)和流式计算(real - time)两种方式。这里定制化内容会比较多,例如,希望存储数据使用 SQL 查询访问数据,则上游选择对接必须支持 SQL 接口,如果希望直接在 Kafka 拉数据那下游数据获取则需要 kafka consumer 来拉数据。

传统数据湖架构分入湖与出湖两部分,在上图链路中以数据存储为轴心,数据获取与数据处理其实是入湖部分,数据分析和数据投递其实算是数据出湖部分。

  • 入湖部分是整个数据湖架构的数据源头入口,由于数据湖的高便捷可扩展等特性,它需要接入各种数据,包括数据库中的表(关系型或者非关系型)、各种格式的文件(csv、json、文档等)、数据流、ETL工具(Kafka、Logstash、DataX 等)转换后的数据、应用 API 获取的数据(如日志等);
  • 出湖部分指的是数据湖的数据接入和数据搜索部分,更偏向数据湖应用。这里场景比较广泛,可以通过各类外部计算引擎,来提供丰富的计算模式支持,比如基于 SQL 的交互式批处理能力;通过 EMR 来提供各类基于 Spark 的计算能力,包括 Spark 能提供的流计算能力和机器学习能力。

总结来看,整体数据湖链路中定制化程度最高,使用成本及代价最大的其实是数据入湖部分(指数据获取和入湖前的数据处理)。这块内容往往也是实现的数据湖架构比较核心的数据连接。有没有更好的方案来实现对这块的数据链路打通其实是数据湖好不好用的关键节点。

03 COS + Serverless 数据湖入湖解决方案

COS + Serverless 架构湖整体能力点及方案如下图所示,相关解决方案覆盖数据入湖,数据出湖,数据处理三大能力点,通过 Serverless 化封装为数据入湖,数据出湖提供更多能力拓展。

下面以数据湖入湖方案为突破点,为大家详细介绍基于 Serverless 架构下的 COS 数据湖解决方案。

04 COS + Serverless 入湖技术架构

COS + Serverless  架构下的入湖方案其实是 batch 方案,通过云原生的函数触发器或 Cron/APIGW 拉起数据调用,通过函数捕获并记录批次数据信息,在函数内闭环相关的结构转换和数据格式转换,数据压缩等能力。

然后调用 Put Bucket 接口对拉取的数据进行上传,相关架构及处理流程如下图所示:

05 COS + Serverless 入湖方案优势

  1. 简单易用,依托 Serverless 计算,数据入湖将提供一键入湖创建,通过可视化界面操作即可完成全部入湖逻辑创建。
  2. 高效,每个入湖模块都是单独运行、单独部署、单独伸缩。提供更加高效的入湖模块逻辑管理。
  3. 稳定可靠,云函数模块在发生可用区故障时,能自动地选择其他可用区的基础设施来运行,免除单可用区运行的故障风险。由事件触发的工作负载可以使用云函数来实现,利用不同云服务满足不同的业务场景和业务需求,使得数据湖架构更加健壮。
  4. 降低开销,函数在未执行时不产生任何费用,所以对一些无需常驻的业务进程来说,开销将大幅降低。函数执行时按请求数和计算资源的运行时间收费,相比于自建集群部署入湖,价格优势明显。
  5. 云原生,Serverless 提供更加云原生的入湖解决方案,所有资源云上部署,云上使用,更加便捷高效。
  6. 可定制,用户可通过模版快速创建通用入湖场景,也可根据自己的业务对数据流进行定制化的 ETL 处理,更方便灵活。

06 COS + Serverless  入湖方案使用

当前 COS + Serverless  入湖方案已集成在 COS 控制台的应用集成目录中,可直接访问 https://console.cloud.tencent.com/cos5/application 进行相关能力配置。

以 Ckafka 消息备份为例,点选配置备份规则 > 添加函数,即可进入相关配置页:

完成配置后可直接在控制台管理相关函数内容:

07 数据湖方案总结

总的来说,基于 Serverless 架构下的 COS 数据湖方案易用性更高、成本更低,同时通过 Serverless 架构实现数据湖构建方案相对自建集群管理难度更小、数据流转单一、服务治理简单、监控易查询。

后续,COS 和 Serverless 团队同学会继续深耕 Batch 架构,也会持续探索关于 Real-Time  框架的更多可能,敬请期待。

COS 数据湖最佳实践:基于 Serverless 架构的入湖方案的更多相关文章

  1. ElasticSearch——数据建模最佳实践

    如何建模 mapping 设计非常重要,需要从两个维度进行考虑: 功能:搜索.排序.聚合 性能:存储的开锁.内存的开销.搜索的性能 mapping 注意事项: 加入新字段很容易(必要时需要 updat ...

  2. 轻松构建基于 Serverless 架构的弹性高可用音视频处理系统

    前言 随着计算机技术和 Internet 的日新月异,视频点播技术因其良好的人机交互性和流媒体传输技术倍受教育.娱乐等行业青睐,而在当前, 云计算平台厂商的产品线不断成熟完善, 如果想要搭建视频点播类 ...

  3. Bulk Load-HBase数据导入最佳实践

    一.概述 HBase本身提供了非常多种数据导入的方式,通常有两种经常使用方式: 1.使用HBase提供的TableOutputFormat,原理是通过一个Mapreduce作业将数据导入HBase 2 ...

  4. 基于AgileEAS.NET企业应用平台实现基于SOA架构的应用整合方案-开篇

    开篇 系统架构的文章,准备在这段时间好好的梳理和整理一下,然后发布基于AgileEAS.NET平台之上的企业级应用架构实践,结合具体的案例来说明AgileEAS.NET平 台之上如何进行系统的逻辑架构 ...

  5. 高德最佳实践:Serverless 规模化落地有哪些价值?

    作者 | 何以然(以燃) 导读:曾经看上去很美.一直被观望的 Serverless,现已逐渐进入落地的阶段.今年的"十一出行节",高德在核心业务规模化落地 Serverless,由 ...

  6. 教你轻松构建基于 Serverless 架构的小程序

    前言 自 2017 年第一批小程序上线以来,越来越多的移动端应用以小程序的形式呈现.小程序触手可及.用完即走的优点,大大降低了用户的使用负担,也使小程序得到了广泛的传播.在阿里巴巴,小程序也被广泛地应 ...

  7. ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践

    写在前面 :从提出需求到完美的解决问题,实现过程是曲折的. 需求:在前(web client)后(Restful Service)端完全解耦的模式框架下,webclient需要请求 Service 返 ...

  8. Android最佳实践之SystemBar状态栏全版本适配方案

    前言 自从MD设计规范出来后,关于系统状态栏的适配越受到关注,因为MD在5.0以后把系统状态栏的颜色改为可由开发者配置的,而在5.0之前则无法指定状态栏的颜色,所以这篇就说说使用Toolbar对系统状 ...

  9. AWS 架构最佳实践概述(十一)

    AWS 架构最佳实践 AWS合理架构的框架支柱 安全性 - 保护并监控系统 能够保护信息.系统和资产 通过风险评估和缓解策略 可靠性 - 从故障中恢复并减少中断 从基础设施或服务故障中恢复 动态获取计 ...

随机推荐

  1. java例题_12 奖金问题(暴力破解)

    1 /*12 [程序 12 计算奖金] 2 题目:企业发放的奖金根据利润提成. 3 利润I低于或等于 10 万元时,奖金可提 10%: 4 利润高于 10 万元,低于 20 万元时,低于 10 万元的 ...

  2. MarkDown-简单学习

    标题 注意:首部添加1-6个"#"号来设置标题大小: 字体 1:粗体 (注意:首尾同时添加2个"*"号来设置) 2:斜体 (注意:首尾同时添加1个"* ...

  3. 获取本机外网ip

    获取内网ip ifconfig eth0 | grep 'inet'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $2}' 获取公网ip ifc ...

  4. JDK8中新日期时间API

    它们面临的问题是:可变性:像日期和时间这样的类应该是不可变的.偏移性:Date中的年份是从1900开始的,而月份都从0开始.格式化:格式化只对Date有用,Calendar则不行.此外,它们也不是线程 ...

  5. 「HTML+CSS」--自定义加载动画【016】

    前言 Hello!小伙伴! 首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 哈哈 自我介绍一下 昵称:海轰 标签:程序猿一只|C++选手|学生 简介:因C语言结识编程,随后转入计算机 ...

  6. 认识Git并了解Git的基本知识

    目录 认识Git 版本控制 版本控制的发展史 安装Git Git的核心概念 Git的使用原理 Git的工作流程 Git的基本流程 Git与SVN的区别 Git的基本使用 初始化Git 创建一个Git仓 ...

  7. misdirection靶机work_through

    web打点 nmap扫描 Nmap scan report for 192.168.218.135 Host is up (0.000014s latency). Not shown: 65531 c ...

  8. LinqToObject和LinqToSql的区别

    抓住五一假期尾巴和小伙伴们一起分享这两者的区别.大家在日常编码的过程当中肯定也注意过或者使用过.但是二者其实存在本质的区别 1.什么是LinqToObject呢? LINQ to Objects指直接 ...

  9. 【策略模式】策略模式结合Spring实战Demo

    策略模式 策略模式用于解决判断分支过多的问题,使代码变得简洁和优雅, 策略模式在多种方式在项目中落地,下面举例说明通过指定不同类型的订单使用策略模式执行不同的业务逻辑 文章参考自公众号:石杉的架构笔记 ...

  10. UVA11300分金币

    题意:      圆桌旁作者n个人,每个人都有一定数量的金币,他们每次可以给相邻的人一枚金币(可以给多次),问所有人金币数都相同的话最少要给多少次金币.思路:       这个题目感觉很好,首先我们可 ...