COS 数据湖最佳实践:基于 Serverless 架构的入湖方案
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 入湖方案优势
- 简单易用,依托 Serverless 计算,数据入湖将提供一键入湖创建,通过可视化界面操作即可完成全部入湖逻辑创建。
- 高效,每个入湖模块都是单独运行、单独部署、单独伸缩。提供更加高效的入湖模块逻辑管理。
- 稳定可靠,云函数模块在发生可用区故障时,能自动地选择其他可用区的基础设施来运行,免除单可用区运行的故障风险。由事件触发的工作负载可以使用云函数来实现,利用不同云服务满足不同的业务场景和业务需求,使得数据湖架构更加健壮。
- 降低开销,函数在未执行时不产生任何费用,所以对一些无需常驻的业务进程来说,开销将大幅降低。函数执行时按请求数和计算资源的运行时间收费,相比于自建集群部署入湖,价格优势明显。
- 云原生,Serverless 提供更加云原生的入湖解决方案,所有资源云上部署,云上使用,更加便捷高效。
- 可定制,用户可通过模版快速创建通用入湖场景,也可根据自己的业务对数据流进行定制化的 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 架构的入湖方案的更多相关文章
- ElasticSearch——数据建模最佳实践
如何建模 mapping 设计非常重要,需要从两个维度进行考虑: 功能:搜索.排序.聚合 性能:存储的开锁.内存的开销.搜索的性能 mapping 注意事项: 加入新字段很容易(必要时需要 updat ...
- 轻松构建基于 Serverless 架构的弹性高可用音视频处理系统
前言 随着计算机技术和 Internet 的日新月异,视频点播技术因其良好的人机交互性和流媒体传输技术倍受教育.娱乐等行业青睐,而在当前, 云计算平台厂商的产品线不断成熟完善, 如果想要搭建视频点播类 ...
- Bulk Load-HBase数据导入最佳实践
一.概述 HBase本身提供了非常多种数据导入的方式,通常有两种经常使用方式: 1.使用HBase提供的TableOutputFormat,原理是通过一个Mapreduce作业将数据导入HBase 2 ...
- 基于AgileEAS.NET企业应用平台实现基于SOA架构的应用整合方案-开篇
开篇 系统架构的文章,准备在这段时间好好的梳理和整理一下,然后发布基于AgileEAS.NET平台之上的企业级应用架构实践,结合具体的案例来说明AgileEAS.NET平 台之上如何进行系统的逻辑架构 ...
- 高德最佳实践:Serverless 规模化落地有哪些价值?
作者 | 何以然(以燃) 导读:曾经看上去很美.一直被观望的 Serverless,现已逐渐进入落地的阶段.今年的"十一出行节",高德在核心业务规模化落地 Serverless,由 ...
- 教你轻松构建基于 Serverless 架构的小程序
前言 自 2017 年第一批小程序上线以来,越来越多的移动端应用以小程序的形式呈现.小程序触手可及.用完即走的优点,大大降低了用户的使用负担,也使小程序得到了广泛的传播.在阿里巴巴,小程序也被广泛地应 ...
- ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践
写在前面 :从提出需求到完美的解决问题,实现过程是曲折的. 需求:在前(web client)后(Restful Service)端完全解耦的模式框架下,webclient需要请求 Service 返 ...
- Android最佳实践之SystemBar状态栏全版本适配方案
前言 自从MD设计规范出来后,关于系统状态栏的适配越受到关注,因为MD在5.0以后把系统状态栏的颜色改为可由开发者配置的,而在5.0之前则无法指定状态栏的颜色,所以这篇就说说使用Toolbar对系统状 ...
- AWS 架构最佳实践概述(十一)
AWS 架构最佳实践 AWS合理架构的框架支柱 安全性 - 保护并监控系统 能够保护信息.系统和资产 通过风险评估和缓解策略 可靠性 - 从故障中恢复并减少中断 从基础设施或服务故障中恢复 动态获取计 ...
随机推荐
- InfluxDB、Grafana等开源软件的监控后门
在使用手机APP的过程中,用户信息会不知不觉的被APP悄无声息的收集到云端,然后进行各种用户行为分析以及智能推荐,这是众所周知但秘而不宣的事. 在使用开源软件时,也存在悄悄收集用户使用信息,并且上报到 ...
- 第21 章 : Kubernetes 存储架构及插件使用
Kubernetes 存储架构及插件使用 本文将主要分享以下三方面的内容: Kubernetes 存储体系架构: Flexvolume 介绍及使用: CSI 介绍及使用. Kubernetes 存储体 ...
- 用python连接数据库模拟用户登录
使用pycharm下载pymysql库,在终端输入命令: pip install mysql 使用pycharm写登入操作前需要在数据库内添加一些数据,比如用户名和密码 create database ...
- 树结构系列(三):B树、B+树
树结构系列(三):B树.B+树 文章首发于「陈树义」公众号及个人博客 shuyi.tech,欢迎访问更多有趣有价值的文章. 文章首发于「陈树义」公众号及个人博客 shuyi.tech 平衡二叉树的查找 ...
- mvel 配合正则表达式实现文本替换
mvel 依赖 <dependency> <groupId>org.mvel</groupId> <artifactId>mvel2</artif ...
- 2020 OO 第二单元总结
只要跑得够快即使从头关到尾你也喜欢吗? 一.设计策略 1.1 总体策略概述 在多线程的协同和同步控制方面,我三次作业都是采用生产者/消费者模式(还憨憨地在内部分了customer.producer.t ...
- (Collection, List, 泛型)JAVA集合框架一
Java集合框架部分细节总结一 Collection List 有序,有下标,元素可重复 Set 无序,无下标,元素不可重复 以上为Collection接口 以ArrayList为实现类实现遍历:增强 ...
- [Skill]从零掌握正则表达式
前言 无论你是出于什么原因需要掌握正则表达式(诸如爬虫.文本检索.后端服务开发或Linux脚本),如果之前从没接触过正则表达式(比如我)很容易在如山般的公式中迷失,以至于你在项目写的正则表达式很可能会 ...
- Oracle-buffer cache过小导致SQL执行时间长
一.问题:客户反馈在生产库和测试库执行相同SQL,测试库执行比生产库慢一倍 问题摆在这里,需要进行分析? 啥??? 版本11.2.0.4,都是单实例,主机系统硬件配置差不多. 二.对比SQL的执行效率 ...
- day-10 xctf-cgpwn2
xctf-cgpwn2 题目传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5 ...