阿里妹导读:数据湖可以很好地帮助企业应对当前数据场景越来越多、数据结构越来越复杂、数据处理需求越来越多样化的问题。阿里云从2018年起就开始布局数据湖,推出了云原生数据湖分析Data Lake Analytics(DLA),从数据湖管理(帮助客户高效管理构建数据湖),Serverless Spark(提供高性价比的大规模计算),Serverless SQL(提供高性价比的在线交互式分析)三个方面帮助客户挖掘数据价值。本文分享相关技术挑战及解决方案。
一 数据湖的机遇与挑战
二 如何管理与构建数据湖?
已经在数据湖存储OSS上面的数据如何高效的构建元数据。
非OSS数据如何高效的入湖建仓。
1 海量文件元数据自动构建技术
格式丰富:包括CSV、Text、JSON、Parquet、Orc、Avro、hudi、Delta Lake等格式,其中CSV、Text又包含多种自定义的分隔符等。
文件数在百万级别:OSS的扩展性及性价比较好,用户存储在OSS的文件会是百万级别。
文件动态上传:存储在OSS上面数据文件具有动态持续上传的特性,新的文件如何快速增量修改元数据。
2 入湖建仓数据组织技术
三 云原生数据湖平台需打通云基础设施
1 资源高效供给
2 安全防护
一次密钥:每个Job任务都会去TokenServer申请临时的Token,Job失效Token会过期,如果存在攻击行为,则平台会直接让Token过期,则访问Meta等服务会被拒绝。
预防DDOS&注入攻击:所有的访问平台服务的请求,都会对接到安全防护中心,安全防护中心检测有任何攻击或者注入行为,直接关闭网络端口。
计算容器隔离:计算节点间采用阿里云自研的安全容器,容器本身可以实现VM相同的安全隔离级别。
安全白名单:用户互相之间的网络是完全隔离的。
ENI虚拟网卡:打通VPC需要配置自己账号下的安全组和虚拟交换机(VSwitch),配置之后结算节点容器会分配用户VPC对应VSwitch网段的的IP,并挂载用户的安全组。
3 高吞吐网络带宽
- 访问OSS服务是通过高吞吐的带宽服务。
- 使用ENI技术访问自持VPC,跟在自持VPC内ECS上部署计算引擎访问自持VPC内数据一样,带宽同样是VPC内网带宽。
四 Serverless Spark服务的技术挑战
1 Spark访问OSS优化
社区版本的问题
Spark OSS访问优化
2 多租户UI服务
HistoryServer的痛点
DLA多租户SparkUI
五 Serverless SQL服务的技术挑战
全内存计算带来的极致速度。
支持完整SQL语义带来的强大表达力。
易用的插件机制使得我们可以对任何数据源进行关联查询。
强大的社区使得我们使用之后没有后顾之忧。
一个用户如果提交大量大查询将可能占用集群所有资源,导致其它用户无法使用。
单Coordinator使得整个服务的可用性无法得到保证。
1 多租户隔离技术
全局调度层面:即使一个租户使用了过多的计算力资源也不会及时被惩罚,只有新查询会被Block。
Worker调度层面:所有租户的Split是在同一个队列里面进行调度,一个租户如果有过多Split会影响其它租户。
2 Multi-Coordinator技术
可用性隐患: 一旦Coordinator宕机、整个集群将不可用达5到10分钟。
无法实现无缝升级,升级过程中影响所有用户的查询使用。
六 云原生数据湖端到端最佳实践
提供统一开放的Meta服务对OSS数据进行管理,支持库表权限。
利用元数据爬取功能,可以一键创建OSS上的元数据信息,轻松自动识别CSV/JSON/Parquet等格式,建立好库表信息,方便后续计算引擎使用。
一键将RDS/PolarDB/MongoDB等数据库的数据同步到OSS存储当中,搭建冷热数据分层的业务架构,对多源海量数据进行数据洞察分析。
支持流式构建Hudi格式,满足T+10分钟的延迟要求,极大提升分析的端到端的延迟。
Serverless化SQL分析,帮助您即开即用数据湖。用户无需购买任何资源,即可运行标准的SQL语法查询数据。
支持对数据湖存储OSS Cache加速,提升10倍的性能。
支持RDS、PolarDB、ADB、MongoDB数据十种数据源的分析。
对比传统的Presto、Impala方案提升10x的性价比提升。
Serverless化Spark计算,帮助您自主玩转数据湖。用户无需购买任何资源,即可使用云原生的Spark服务,支持OSS 数PB的数据清洗、机器学习、用户可编程,玩转数据湖。
每分钟可弹出500个节点参与计算。
对比传统的自建Spark方案提升3x的性价比提升。