【2023云栖】刘一鸣:Data+AI时代大数据平台建设的思考与发布

简介: 本文根据2023云栖大会演讲实录整理而成,演讲信息如下:

演讲人:刘一鸣 | 阿里云自研大数据产品负责人

演讲主题:Data+AI时代大数据平台应该如何建设

今天分享的主题是Data+AI时代大数据平台应该如何建设,这个话题既是对我们过去一年工作的反思和总结,同时也是希望通过这个反思和总结,不管大家是否使用阿里云的平台和技术,在未来大数据平台的选型、运维、创新上都可以有一些启发,同时也会思考未来大数据人的角色、工作方式是否有一些新的变化。

阿里云大数据的核心是两款分布式计算引擎,在ODPS(Open Data Processing Platform)品牌之下,今天的分享也会更多围绕ODPS的两个核心引擎来讲(面向批量数据加工和海量存储的MaxCompute、面向实时数仓以及交互式分析场景的Hologres)。下面进入正题,希望跟大家分享我们过去做平台时候的反思,什么能力是关键能力,以及今年我们做了哪些能力的提升。

在这里插入图片描述

降本能力:灵活的付费模式驱动大数据成本的显著下降

降本能力是每个大数据平台的核心能力,特别是作为公共云上的服务方,我们不希望大家使用云上的大数据平台是一个成本的黑洞,越用越贵,每年老板说钱花哪里去还说不清楚,我们希望不仅给用户提供一个成本费用说得清楚用得明白的平台,也希望给用户提供一个通过正确使用产品可以不断降低单位拥有成本的平台。降本从不意味着要使用更便宜的规格,更少的资源,这会潜在牺牲平台的服务质量,不是正确的降本姿势,低价往往质量缺少保障,最后会收获更低质量的服务,更低质量的研发投入,最后导致平台无法维系。

合理的降本方式首先是选择合适的采购策略、付费策略,选择一个合适的技术。以MaxCompute为例,平台提供多种付费方式,从比较经典的预付费或者叫包年包月,到用得最多的后付费或者叫按量付费的模型。预付费对预算控制更精确,费用提前说清楚,但资源使用受限制,无法满足临时性需求,也会产生闲置资源的空闲浪费。按量付费模型根据实际业务规模产生费用,无需提前做容量规划,但实际费用容易超出预算控制。现在我们希望把两种模式做一些结合。

我们看到大部分数据加工作业都具备一定的时间规律,夜间往往高峰期,早上上班看到计算结果,白天相对水位是低峰期,这里可以利用MaxCompute的分时弹性能力,日常低水位运行,高峰期弹性出来额外资源。分时弹性去年上线的,今年通过对库存管理的优化,实现库存效率上的提升,在9月20日开始MaxCompute弹性部分的CU单价直接降低50% 。如果一天有8h作业跑不满的情况,采用分时作业的方式一定是降本的,希望每个用户可以根据大家实际使用场景去选择分时策略。

原理类似ECS上的Spot Instance,MaxCompute今年推出了闲时作业,也通常叫做SpotJob,定价直接是按量付费定价的三分之一,闲时作业是把大数据集群的闲置资源服务出来,不一定保障每天运行的时候都能得到一样的资源,执行一样快,在集群繁忙时会有更多的作业等待时间,但对于延时不敏感的作业,如历史数据的导入、日常开发调试作业的场景,通过使用闲时作业可以有效降本66%。

在这里插入图片描述

分时弹性既能满足弹性,也能满足预算的管理,那么该怎么设置是最优的?MaxCompute发布了成本优化器,帮助用户分析过去30天所有作业的资源分布特征,展示出高峰期和低谷期,给出弹性策略应该怎么设计的建议。在弹性的基础上,我们给作业增加了一个关键的约束条件叫基线,基线之前的作业需要足够的资源保障,让结果准时计算出来,基线之后的作业可以跑慢一些,更节省资源和费用,这样就区分了作业的优先级和重要性。绝大部分用户使用成本优化器之后,通常有20%以上成本降低,建议大家可以尽快采用起来。

接下来我们谈谈存储如何降本。数据在实际使用时会分特征,有些数据是高频访问,数据的重要性有可能更高,有些数据是低频访问数据,一个月就读取一两次,有的数据是审计要求,不可以删除,一年不一定访问一次。数据有价值分配,那么我们的数据成本是否也应该有分层设计呢?当然。MaxCompute为不同访问特征,不同价值数据提供不同的存储能力,分层存储提供了分层的单价。通过分层存储的方式可以看到一些低频访问的数据,长期访问的数据成本可以降到以前的三分之一

计算和存储可以通过平台的使用策略来节省成本,其实还可以通过存储技术的创新实现进一步的降本。JSON是互联网上使用非常广泛的数据结构,半结构化,查询灵活,存储也方便,Schema可以随时调整,但过去JSON如果用字符串去存储的时候,哪怕仅仅访问一个字节,也需要把几兆字节全部解析出来,对计算和IO都是极大的浪费。另一种方案是JSON数据落库前,提前进行JSON结构的打宽,需要大量的加工作业,也是对计算资源的浪费。

如何有效提升JSON数据类型的存储和访问效率成为大数据平台的关键能力,今年包括MaxCompute和Hologres,都提供JSON原生化的管理能力,包括元数据支持和存储列式压缩,把半结构化作为一级处理类型来支持,在用户实践中,绝大部分用户的JSON存储成本会降到以前的五分之一,而且查询会变得更快

轻运维能力:Serverless变革大数据运维模式

云上大数据平台,应该提供运维足够简单易用,把脏活累活帮助使用者运维掉,帮助大数据工程师实现角色升级,从过去相对被动每天考虑系统平台的稳定性、扩展性、资源如何分配、备份、容灾、升级、修bug这些脏活累活中解脱出来,转变成数据的分析师,变成AI专家,变成领域专家,而不是做重复的运维工作。

我们认为Serverless架构是解决运维问题的关键,那么如何做Serverless架构呢?从大数据架构上讲,通常我们分三种:1.Shared-Nothing架构,存算一体。通过节点之间的横向扩展,实现计算力和存储能力的提升。2.Shared-Everything,计算存储全部解耦开来,所有的资源都可以共享。3. Shared-Data,Data部分是共享,计算部分隔离开来,提供更好的隔离能力。每个技术会选择不同架构。

MaxCompute选择Shared-Everything,对平台侧的隔离技术实现要求很高,对运维侧、调度侧要求更高,所有计算资源、存储资源是共享在统一的公共集群里。Hologres选择Shared-Data架构,这个系统需要更多考虑在线服务场景下资源的隔离和稳定性,所以不同系统选择不同架构。

这个架构背后我们会把整个集群当做一个统一的计算资源来管理。对用户来说最大价值是,不仅是使用成本的降低,不需要提前做容量规划,更重要的是,不需要处理复杂的升级运维,让用户可以实现零停机的方式实现版本的迭代,这都是Serverless架构创造的价值,平台侧希望把脏活累活,包括升级、备份、灾备、弹性这些事情通过架构的方式把它解决,这也是Serverless背后核心的理念。

大家过去讲Serverless更多讲资源上省钱,只为使用的资源付费,而我相信Serverless更多是把运维方式转变,让工程师更聚焦到价值的创造上。

在这里插入图片描述

Hologres在Serverless架构上一直演进,今年提出了弹性计算组的概念,这个计算组概念背后是共享数据,共享接入层,但在计算节点上做了资源切分,当不同业务团队使用同一份数据的时候,每个团队可以为自己的使用场景去弹性分配资源,同时保障数据的一致性,支持实时写入,实时查询,这是在Hologres上做的创新。

开放能力:湖仓一体与开放性

在谈到大数据平台的开放性时,更多讲Open Storage + Open Format,今天阿里的大数据平台希望做到更多一层。云计算对技术的开放性要求会更高,一方面云厂商不希望自己变成绑架用户的角色,MaxCompute也不希望大家使用之后就被绑架在平台上,不可以切换。另一方面云平台上不同技术之间交互的强度、密度是远大于线下的,技术之间需要分钟级部署,分钟级打通,用户对技术的交互性要求很高,我们希望把开放性做得很彻底,我们不希望把创新只放在自己手里,我们希望把创新交还给用户

首先,阿里云的大数据完全拥抱Open Storage + Open Format,提供了湖仓一体的解决方案,为用户提供接近原生的元数据管理和数据读写体验。对于什么是湖仓一体,行业内有两个思路,一个是在湖上长出一个仓,把湖变成仓。典型特点是把湖上的数据结构提供更好的更新能力,接近数据库的开发体验。另一个方式从仓的管理能力拓展外表能力,实现湖上半结构化、非结构化数据以元数据方式管理起来,相当于仓去管理湖,这也是湖仓一体的形态。MaxCompute是第二种形态,用仓去管湖,把存在OSS上的Hudi格式、Delta Lake等格式,包括今年阿里自己创新的Paimon格式,都可以在MaxCompute和Hologres中作为外表直接访问。同时也做了一些创新,把OSS上的非结构化文件定义为抽象的目录表,这样在数仓里可以用更加精细化的安全管控方式去做授权,哪些用户可以访问哪些文件,怎么访问,包括审计都可以记录下来。

湖仓一体最关键是元数据的管理,数据不管存在仓上、湖上,需要有一个统一的视图可以看到所有的元数据,数据被谁定义,数据怎么解析,这是湖仓一体核心的概念,而并不是一定是一个系统还是两个系统。

在这里插入图片描述

MaxCompute今年在开放性上有很大的变化。大家过去认为仓的理念是数据计算都在这儿,但我们今天希望把MaxCompute存储作为独立的产品形态对外提供服务,把Storage这一层提供产品化的能力,提供Storage API,支持高吞吐、高性能的原生IO接口。不管使用机器学习的PAI平台还是使用Spark、Presto,都可以像MaxCompute原生的SQL引擎一样去访问仓里的数据,我们希望把自研大数据平台的数据开放出去,支持用户使用第三方引擎持续创新。

智能优化能力:AI加持的智能数仓

过去做优化的时候很依赖于DBA同学对一个数仓技术原理的理解,在云的时代,用户把数据托管到云平台上,云平台就有很大责任帮助用户做好优化这件事。我们希望从过去基于经验的运维向智能化运维前进。

比如MaxCompute通过物化视图把公共的SQL计算子集推荐出来,实现资源的复用,这是一种空间换时间非常有效的方法。经过一年多时间的迭代,在推荐效率上已经做了很大的改进,绝大部分推荐出来的物化视图质量都是很高,可以做到成本的节省和效率上的提升。

大数据成为AI的基础设施

今年AI很热,很多了不起的创新,但其实AI的创新中,大数据也扮演了关键的基础设施角色。同时我们也希望用了云上大数据平台的用户,不需要再做那些低效繁重的运维工作,而是更多做一些AI上的场景和应用创新。我们也提出了大数据AI一体化,事实上大数据AI是各有分工,大数据为AI提供数据的支撑,这包括大数据平台要做好规模数据的处理,提供分布式计算框架,提供科学计算的一站式开发环境,其次机器学习平台也会为大数据平台提供优化的算法、优化的模型。

在这里插入图片描述

在过去SQL的基础上,我们认为Python也应该成为MaxCompute平台的一级开发语言。MaxCompute全新发布,One Env+One Data+One Code,这背后核心就是提供一个Python的运行环境,一个Notebook的交互式开发体验,让有SQL基础的同学,有Python经验的同学,需要利用Python Library进行数据处理的场景,可以在统一的开发环境下,实现高效率的开发和调试,实现Python和coMaxCompute数据的原生打通。

全面升级DataFrame能力,发布分布式计算框架MaxFrame,100%兼容Pandas等数据处理接口,通过一行代码即可将原生Pandas自动转为MaxFrame分布式计算,打通数据管理、大规模数据分析、处理到ML开发全流程,打破大数据及AI开发使用边界,大大提高开发效率。

最后讲下向量数据库,Hologres内置达摩院向量引擎Proxima,支持高性能、实时化的向量检索服务。使用SQL接口可以访问向量数据,在原有交互式分析场景下帮助大家更好使用AI场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/152052.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

本地mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

背景介绍: MySQL版本5.7,系统Win7,启动mysql服务时提示如下 解决方案 【会删除库中数据及mysql注册信息】: 1、删除原服务MySQL57 C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld --remove MySQL572、清空data 清空…

HackTheBox-Starting Point--Tier 2---Archetype

文章目录 一 Archetype测试过程1.1 打点1.2 权限获取1.3 权限提升二 题目 一 Archetype测试过程 1.1 打点 1.端口扫描 nmap -sV -sC 10.129.192.2522.枚举SMB共享 smbclient -N -L \\\\10.129.192.252\\查看backups,并发现 prod.dtsConfig 文件,在 pr…

android初集成flutter,遇到的问题

环境 studio版本:2022.1.1 flutter版本:2.8.0 电脑:mac flutter项目总是报错,编译不过 以 Resources Root 加载 记得设置dart:主工程和flutter项目都需要设置,否则不出现手机链接 下面这个样子就是好了&…

Django模型层

模型层 与数据库相关的,用于定义数据模型和数据库表结构。 在Django应用程序中,模型层是数据库和应用程序之间的接口,它负责处理所有与数据库相关的操作,例如创建、读取、更新和删除记录。Django的模型层还提供了一些高级功能 首…

【嵌入式项目应用】__单片机STM32有什么好的裸机程序架构思路推荐?

目录 前言 没设计好程序架构,根本做不稳定。 按照我的思维,我会这样去设计程序: 那这样的好处是什么? (* ̄︶ ̄)创作不易!期待你们的 点赞、收藏和评论喔。 前言 在我刚出来的时候&#x…

Linux_在命令行中以树状结构显示目录_tree

1、安装tree命令 使用tree命令,可以在命令行中以树状结构显示目录,当你想知道一个路径下文件的结构时十分方便,还有别的选项功能,下面会介绍其中的一些,完整的介绍Linux命令 - tree—LZL在线工具。 sudo apt updates…

python对数据的处理合集——字典、列表...

1.两个列表的数据对比 ①list2包含了list1,求出list2多余的值 #codingutf-8list1[1,3,5] list2[1,3,5,7,9,11] list[] for i in list2:if i not in list1:list.append(i) print(list)②求出两个列共同的值 ③两个列表合并 #第一种: list1 [1, 2, 3] list2 [4, …

pyclipper和ClipperLib操作多边型

目录 1. 等距离缩放多边形 1.1 python 1.2 c 1. 等距离缩放多边形 1.1 python 环境配置pip install opencv-python opencv-contrib-python pip install pyclipper pip install numpy import cv2 import numpy as np import pyclipperdef equidistant_zoom_contour(contour…

YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进【NO.77】引入百度最新提出RT-DETR模型中AIFI模块

前言 作为当前先进的深度学习目标检测算法YOLOv8,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv8的如何改进进行详细的介绍&…

openbabel包的安装

今天在安装openbabel的时候,使用pip / 通过源码的方式进行安装openbabel,但是都并没有什么用,直接使用: conda install openbabel 就openbabel3.1.1成功了

Authorization为啥必须要以Bearer开头

最近在公司使用JWT,对请求头信息中的Authorization必须要以Bearer开头有一些疑问,查了一下文档,知道了: Authorization: Bearer your_access_tokenBearer代表Authorization头定义的schema ,除了Bearer,还有…

2760. 最长奇偶子数组 : 抽丝剥茧,图解双指针做法正确性

题目描述 这是 LeetCode 上的 「2698. 求一个整数的惩罚数」 ,难度为 「简单」。 Tag : 「双指针」、「滑动窗口」 给你一个下标从 开始的整数数组 nums 和一个整数 threshold。 请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 ( ) 且满足以下条件的 最长子…

【汇编】mov和add指令、确定物理地址的方法、内存分段表示法

文章目录 前言一、学习汇编指令——用中学1.1 汇编指令分析汇编输出分析 二、确定物理地址的方法2.1 什么叫做物理地址2.2 8086中的物理地址2.3 8086CPU给出物理地址的方法2.4 “段地址16偏移地址物理地址”的本质含义 三、内存分段表示法3.1 用分段的方式管理内存3.2 同一段内…

基于SSM的实验室仪器设备管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

【数据结构高阶】二叉搜索树

接下来我们来开始使用C来详细讲解数据结构的一些高阶的知识点 本期讲解的是二叉搜索树,对于初阶二叉树有所遗忘的同学可以看到这里: 【精选】【数据结构初阶】链式二叉树的解析及一些基本操作 讲解二叉搜索树主要是为了后面的map和set做铺垫&#xff…

HTML易忽略的角落【目录】

目前已有文章 **** 篇 本专栏是汇集了一些HTML常常被遗忘的知识,这里算是温故而知新,往往这些零碎的知识点,在你开发中能起到炸惊效果。我们每个人都没有过目不忘,过久不忘的本事,就让这一点点知识慢慢渗透你的脑海。 …

【Spring】超详细讲解AOP(面向切面编程)

文章目录 1. 前言2. 什么是AOP3. AOP快速入门4. AOP的核心概念5. 切点表达式6. 切点函数7. 通知8. 总结 1. 前言 本文围绕AOP进行讲解,AOP可以做什么,涉及到了哪些注解,以及各个注解运行的时机,以及Around相较于其它注解有什么不同,并且如果要执行目标方法需要怎么做 2. 什么…

群晖7.2版本通过Container Manager安装xiaoya-alist

小雅Alist,可以说是Alist应用中挂载阿里云最完美的成功案例。 一、下载镜像 注册表中下载镜像 Container Manager应该是7.2版本才改名,就是以前的docker。 打开【Container Manager】-【注册表】-【搜索框】搜索 xiaoya 内容区域,搜出的…

新零售系统平台解决方案 线上线下小程序怎么做

新零售线上线下解决方案是将传统零售业务与互联网科技相结合,通过数字化、智能化手段提升零售业务效率和用户体验的解决方案,它既有提供消费者线下体验,强调“稳”,又有互联网线上的“快”。 线上线下小程序可以通过一体化的进销存…

ubuntu20.04安装cv2

查看ubuntu的版本 cat /etc/lsb-release DISTRIB_IDUbuntu DISTRIB_RELEASE20.04 DISTRIB_CODENAMEfocal DISTRIB_DESCRIPTION"Ubuntu 20.04.3 LTS"更改镜像源 cp /etc/apt/sources.list /etc/apt/sources.list.bak cat > /etc/apt/sources.listdeb http://mirr…