前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开箱即用,腾讯数据湖计算为海量数据分析赋能

开箱即用,腾讯数据湖计算为海量数据分析赋能

作者头像
腾讯大数据
发布2021-05-13 15:10:08
1.4K0
发布2021-05-13 15:10:08
举报

导读 / Introduction

数据湖解决了海量异构数据的入湖和存储需求。通过对海量数据的分析挖掘,提升对数据的洞察,助力数字化决策,进而促进业务发展,是每个企业构建数据湖的根本目的所在。随着业务迭代的不断加速,企业对数据时效性和数据分析敏捷性提出了更高的要求。为此,腾讯云推出了数据湖计算(Data Lake Compute,DLC)。DLC采用存储和计算分离的架构,结合腾讯云对象存储COS和弹性容器服务EKS,打造了一个开箱即用、弹性扩展、按量付费的交互式分析服务。

图1 DLC架构图

高性能——

基于Presto引擎

DLC

如图1所示,DLC计算能力基于Presto引擎搭建。Presto是Facebook开源的一款分布式OLAP引擎,它天然就是存储计算分离的架构,Presto负责计算部分,存储部分则由数据源自身提供。这种架构带来的好处,首先是资源配置更加灵活,存储和计算部分可以各自选择合适的机型部署,当存储资源不足或者计算资源不足时它们又能够独立地进行扩容,其次可以分别针对计算和存储进行性能或成本上的极致优化。

Presto是一个高性能、分布式的SQL执行框架。它采用MPP架构,通过常驻的协调节点快速响应用户的查询请求、生成执行计划、分发子任务到工作节点,工作节点采用全内存流水线式的计算模式对数据分片进行并行处理。相比而言,hive和spark调度和执行计算任务需要启动新的JVM进程,中间数据落盘导致数据处理过程中需要进行大量的磁盘IO,因此Presto在查询速度上具备明显的优势,特别适合交互式分析场景,三者多表关联查询性能对比如图2所示。

图2 TPC-DS 100G多表关联查询性能对比

Presto真正做到了"SQL on anything"。基于connector机制,Presto实现了对数据源元数据的注册、查询以及对数据的读取、写入操作,不同数据源对于Presto来说就是不同的Connector。它本身已经通过插件化的方式实现了丰富的数据源Connector,如Hive Connector、Kafka Connector、ElasticSearch Connector、 MySQL Connector等,同时用户也可以定制化开发Connector插件以支持更多的数据源。基于这些Connector实现,利用Presto不仅可以对某个数据源进行查询,也可以同时对多个数据源进行关联分析,这是presto最引人瞩目的特性。

高性价比——

弹性无服务器架构、按量付费

DLC

用户自建Presto集群往往会面临“两高”挑战:

  1. 技术门槛高。使用开源版本的Presto,首先要仔细研究文档,然后选择合适的机型部署,并对Presto的各项参数进行配置调优,才能搭建起一套可以正常工作的集群,运行过程中遇到各种性能问题也得从头研究解决。搭建集群只是迈出了第一步,构建一个完整易用的分析平台,还包括与权限管理系统、BI系统、开发环境集成适配。对于云上部署的用户,出于成本优化的需求,对集群进行动态扩缩容还需要开发一套集群管理的程序。对于开源版本的Presto不支持的数据源,实现一个可靠的Connector也是一件富有挑战性的工作。
  2. 使用和维护成本高。如图3所示,大数据作业往往存在周期性的高峰和低谷,如果按照高峰期需求配置计算资源,在低谷期资源就得不到充分利用,反之,高峰期资源不足,导致数据不能按时产出。本地物理机部署的方式根本无法快速的应对这种灵活的资源需求。对于云上用户,即使可以分时段配置不同的资源数量,adhoc分析和backfill任务这种不确定的计算需求依然不能被很好地满足,这种情况通常只能通过临时扩容来解决,但往往扩容后就“忘”了,计算资源没有得到及时释放,资源空闲导致的成本浪费占比高。

为此,DLC采用了Serverless的服务形态,用户开箱即用,无需关心底层的计算资源,只要按查询时实际的数据扫描量付费,同时省掉了维护的负担。

图3 典型的大数据计算负载

同时DLC基于腾讯云自身的技术优势,为用户提供极具性价比的计算服务。DLC计算资源调度完全基于腾讯云弹性容器服务EKS。弹性容器服务是一种全托管的Kubernetes服务,通过腾讯云自研的轻量虚拟化技术保证更快的资源创建效率,结合DLC定制的镜像预热功能,可以在几秒内创建一个新的Presto集群,当集群空闲时也可以在几秒内删除集群。这种灵活高效的资源使用方式真正做到了按需使用,极大地降低了用户成本。

安全高可用——

租户隔离、故障隔离

DLC

数据安全通常是企业上云时的一大顾虑。DLC作为公共的计算服务,在网络和计算资源层面做到了租户间完全隔离,全面保障用户的数据安全。如图4所示,DLC为每个租户创建专属的计算资源,并且部署在独立的VPC。当用户需要访问自身VPC下的数据源时,DLC通过VPC Peering打通用户专属计算资源所在的VPC和用户数据所在的VPC。基于计算资源的独立性和VPC之间网络的隔离性实现租户的隔离,保障用户数据安全。

图4 网络架构图

DLC基于用户的查询请求动态地为用户创建或分配Presto集群,并通过心跳机制实时监测集群的负载和健康状态,基于负载均衡的算法将用户的查询请求分配到低负载的集群。一旦发现故障集群立即隔离,当预测到算力不足时,动态扩容以补充算力,保障计算服务的高可用性。

易用性提升——

租一站式服务、动态数据源管理、

兼容Hive

DLC

DLC在接入层集成了腾讯漂移计算引擎Supersql SQL的解析和转换能力,支持标准的ANSI SQL语法,同时兼容Hive DDL语法。DLC通过解析SQL识别和拦截危险的操作,如修改线上业务数据库,避免对用户数据和服务造成破坏。DLC利用统一元数据服务提供的元数据信息对SQL涉及的库、表、列进行验证,同时结合统一安全中心的权限管理功能,对用户的数据权限进行校验,为用户提供一站式的服务。

Presto支持多数据源联邦分析,但是开源版本的Presto只能通过文件的方式静态配置数据源,数据源修改后必须重启Presto集群才能生效,在生产环境使用起来非常不便。为此,DLC开发了动态数据源管理功能,扩展了Presto数据源加载方式,用户通过控制台配置数据源,无须重启服务或者Presto集群,即刻生效。

Presto对数据类型的要求比较严格,比如在Hive中常见的数字与字符串进行比较的查询语句,Presto会直接抛类型不一致的错误,而Hive可以执行是因为Hive支持字符串类型到数字类型的隐式转换,为此DLC扩展了Presto的隐式类型转换规则,兼容Hive的转换规则,同时DLC扩展了Presto的UDF,支持了部分常用的Hive UDF,方便习惯Hive的用户迁移到DLC。

总结与展望

DLC

腾讯云数据湖计算DLC基于Presto和弹性容器服务EKS构建了敏捷高效的数据湖分析与计算服务。该服务采用无服务器架构设计,用户无需关注底层架构或维护计算资源,使用标准 SQL 即可完成多种数据源的联合计算分析。DLC作为腾讯云数据湖体系架构的重要组成部分,还在持续的迭代和打磨,未来计划在以下方面进一步完善:

  • 支持更多云上数据源的联合分析。
  • 文件缓存优化,提升查询性能。
  • 支持Iceberg表格式,通过提升Scan Planning速度和高效的filtering加速查询。
  • 引入Spark引擎,支持ETL、s机器学习等更加丰富的应用场景。

往期精选

- 标题图来源:Pexels -

扫码关注 | 即刻了解腾讯大数据技术动态

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
私有网络
私有网络(Virtual Private Cloud,VPC)是基于腾讯云构建的专属云上网络空间,为您在腾讯云上的资源提供网络服务,不同私有网络间完全逻辑隔离。作为您在云上的专属网络空间,您可以通过软件定义网络的方式管理您的私有网络 VPC,实现 IP 地址、子网、路由表、网络 ACL 、流日志等功能的配置管理。私有网络还支持多种方式连接 Internet,如弹性 IP 、NAT 网关等。同时,您也可以通过 VPN 连接或专线接入连通腾讯云与您本地的数据中心,灵活构建混合云。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档