【视频】云原生数据仓库 AnalyticDB MySQL 版 _解析与实践1|学习笔记(二)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 快速学习【视频】云原生数据仓库 AnalyticDB MySQL 版 _解析与实践1

开发者学堂课程【数据仓库 ACP 认证课程【视频】云原生数据仓库 AnalyticDB MySQL 版 _解析与实践1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/928/detail/14623


【视频】云原生数据仓库 AnalyticDB MySQL 版 _解析与实践1


(2)弹性计算层∶查询执行计划

SQL:

select count(*)

from customer left join lineitem

on customer.c nationkey_= lineitem.l_partkey;

逻辑执行计划:

用户下发SQL

前端节点负责解析SQL,生成分布式执行计划,下发到计算节点和存储节点执行

执行完成后,将结果返回给前端节点

主要概念:

Stage:

为了让Query能够在多台机器上并行执行,会将执行计划拆分成多个阶段(Stage) ,每个Stage会产生多个Task进行执行

Task:

Task负责具体计算的执行,是Stage在某一个Worker或者Executor上的实例

Operator:

对应一个相对独立的计算单位,比如过滤、投影、聚合等操作,作用于输入数据,并产生输出。

执行计划:

(3)弹性计算层∶查询执行模式

image.png①Interactive 模式

场景

适合交互式查询,对响应时间有较高要求

查询Query不高,资源充足

特点

MPP pipeline方式执行,即一个查询的所有分布式执行任务会被同时调度执行

完全基于内存进行计算

大查询消耗资源多

image.png②Batch模式(E系列支持)

场景

适合ETL场景,作业执行时间长,对RT要求低

计算数据量大,计算逻辑复杂,但资源较为有限

特点

BSP方式执行,即StageByStage方式调度执行分布式任务

内存不足时自适应下盘算子状态数据

Stage之间的数据传输(Exchage/Shuffle )依赖本地磁盘+对象存储

大查询/ETL离线任务资源消耗可控

image.png(3)储存层:架构

包括针对实时任务的在线存储和针对离线任务的离线存储

(4)存储层∶高吞吐写入

玄武分析存储引擎为用户提供高可靠、高可用、高性能、低成本的企业级数据存储能力,是AnalyticDB实现高吞吐实时写入、高性能实时查询的基础支撑。

存储层的采用Raft协议,在多副本之间保证数据临时性,同时协议具有更高的这样一个可靠可用性,当我们某一个worker Group失效或者是失败的时候,可以通过多数化来保证系统的一个正常运行,增量数据是通过异步构建的方加载进入全量数据,实行冷热数据分层以及的数据的分析管理

image.png(5)存储层∶行列混合存储

玄武存储引擎支持行列混存和行存的存储格式,其中行列混存是一种以列存为基础兼顾行存的模式,类似于Hadoop中的ORC/Parquet格式。

不同的是玄武的行列混存不仅兼顾分析类的列裁剪和大吞吐扫描性能,而且结合其行对齐的能力,可以实现很好的随机查找性能,这对于任意多维索引过滤的场景也拥有出色的性能优势。

image.png数据分成 Row Group,在 Row Group 中的列是单独存储的,对于固定场所的数据,分成固定场所块以及变长块,变长块采用 Toast File进行存储

(6)存储层:自适应索引

 image.png对于不同的索引生成的结果通过联合或并列的操作形成 id 的集合,根据 id 的结合获取对应的数据


四、产品相关概念

1.数据库对象及操作

(1)数据库对象:体系结构

image.png

用户集群

一个用户实例就是一个集群

用户集群资源独享

物理库

一个用户集群系统默认初始化一个物理库

数据库

逻辑数据库,最多256个

表名空间和权限隔离

普通表,又称分布式表,需要指定分布键

维度表,又称广播表,每个节点冗余一份

分片

表被分布键拆分后的子表,又称分片( Shard )

分区

分片( Shard )可以再按某个字段划分为分区·分片列通常是时间字段,有生命周期管理功能

(2)表∶分区数据清除机制

数据清理机制︰

表元数据记录表的生命周期设置数,下面示例设LIFECYCLE 90,通过对分区的排序,超出生命周期数的分区将被清理掉,

如图所示︰

image.png从1月1日一直到3月31日正好是90个分区。那随着用户的数据添加,用户增加了一个4月1日分区,此时为91个分区,但设定了最多包含90个分区,那第一个分区也就是1月1号分区会自动清除,从而保证还是90个分区

(3)数据建模:SQL开发规范

编写和优化SQL时,需要充分考虑其分布式特性。

①SQL编写原则为追求简单

一般情况下,数据库性能会随SQL复杂度而下降。例如,单表查询(冗余设计)优于表关联查询。

②SQL优化核心方法是减少I/O

尽可能少的进行列扫描,返回最小数据量,减少I/O同时也减少内存开销。

③分布式计算,本地计算&并行计算

大数据计算情况下,本地计算时充分利用分布式多计算资源的能力,避免数据跨节点。

④高QPS,分区裁剪

业务系统要求高QPS、毫秒级RT时,表和SQL必须设计为分区裁剪模式。

去掉不必要的列

返回的列的数量直接影响性能,在编写SQL时一定要确认业务需要返回的列,不要直接使用星号(*)进行查询。索引和扫描

当SQL包含多个查询条件时,优先选择高筛选条件,其他条件可以通过扫描实现。

在SQL命令中通过条件c1=3可快速查询到少量记录(假设10000 ),单独使用time> '2010-01-01 00:00:00时返回的记录数又非常大。

错误SQL :

select * from tab1 where c1>100 and c1<1000;

正确SQL:

select col1, col2 from table_name wherec1>100 and c1<1000;

原始SQL :

select c1,c2 from tab1 where c1=3 and time>='2010-01-01 00:00:00;

建议SQL :

*+no-index=[tab1.time]*/select c1,c2 from tab1

where c1=3 and time> ='2010-01-01 00:00:00";

2.权限与数据安全

(1)权限与数据安全:账号类型

账号类型

作用范围

可进行的操作

阿里云账号

AnalyticDB for

MySQL集群

阿里云账号用于创建和管理集群,例如登录阿里云产品控制台、设置白名单、创建数据库账号、申请外网地址、按量付费转包年包月、设置可维护时间段、扩容集群、恢复新集群以及删除集群等。

RAM子账号

AnalyticDB for MySQL集群

阿里云账号授予RAM子账号一定的权限后,RAM子账号也可以在权限范围内创建和管理集群。例如登录阿里云产品控制台、设置白名单、创建数据库账号、申请外网地址、按量付费转包年包月、设置可维护时间段、扩容集群、恢复新集群以及删除集群等。

数据库账号

数据库

数据库账号在权限范围内用于对数据库进行操作,例如创建/删除数据库、连接数据库、创建/删除表、创建/删除视图等。分为普通账号和高权限账号

服务账号

AnalyticDB for MySQL集群

需要技术支持时授权AnalyticDB for MySQL集群的服务账号,技术支持人员才可以通过服务账号提供技术支持服务。

阿里云账号和 RAM是管理账号

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
4月前
|
存储 SQL 监控
数据中台架构解析:湖仓一体的实战设计
在数据量激增的数字化时代,企业面临数据分散、使用效率低等问题。数据中台作为统一管理与应用数据的核心平台,结合湖仓一体架构,打通数据壁垒,实现高效流转与分析。本文详解湖仓一体的设计与落地实践,助力企业构建统一、灵活的数据底座,驱动业务决策与创新。
|
2月前
|
存储 SQL 机器学习/深度学习
一文辨析:数据仓库、数据湖、湖仓一体
本文深入解析数据仓库、数据湖与湖仓一体的技术原理与适用场景。数据仓库结构严谨、查询高效,适合处理结构化数据;数据湖灵活开放,支持多模态数据,但治理难度高;湖仓一体融合两者优势,实现低成本存储与高效分析,适合大规模数据场景。文章结合企业实际需求,探讨如何选择合适的数据架构,并提供湖仓一体的落地迁移策略,助力企业提升数据价值。
一文辨析:数据仓库、数据湖、湖仓一体
|
7月前
|
人工智能 关系型数据库 OLAP
光云科技 X AnalyticDB:构建 AI 时代下的云原生企业级数仓
AnalyticDB承载了光云海量数据的实时在线分析,为各个业务线的商家提供了丝滑的数据服务,实时物化视图、租户资源隔离、冷热分离等企业级特性,很好的解决了SaaS场景下的业务痛点,也平衡了成本。同时也基于通义+AnalyticDB研发了企业级智能客服、智能导购等行业解决方案,借助大模型和云计算为商家赋能。
604 17
|
2月前
|
存储 机器学习/深度学习 数据采集
数据湖 vs 数据仓库:大厂为何总爱“湖仓并用”?
数据湖与数据仓库各有优劣,湖仓一体架构成为趋势。本文解析二者核心差异、适用场景及治理方案,助你选型落地。
数据湖 vs 数据仓库:大厂为何总爱“湖仓并用”?
|
5月前
|
监控 关系型数据库 MySQL
DTS实时同步进阶:MySQL到AnalyticDB毫秒级ETL管道搭建
本方案采用“Binlog解析-数据清洗-批量写入”三级流水线架构,实现MySQL到AnalyticDB的高效同步。通过状态机解析、内存格式转换与向量化写入技术,保障毫秒级延迟(P99&lt;300ms)、50万+ TPS吞吐及99.99%数据一致性,支持高并发、低延迟的数据实时处理场景。
173 10
|
6月前
|
存储 缓存 分布式计算
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术,详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划,为您提供全面的技术解读。 作者:杨关锁,北京镜舟科技研发工程师
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
|
10月前
|
人工智能 关系型数据库 MySQL
AnalyticDB MySQL版:云原生离在线一体化数据仓库支持实时业务决策
AnalyticDB MySQL版是阿里云推出的云原生离在线一体化数据仓库,支持实时业务决策。产品定位为兼具数据库应用性和大数据处理能力的数仓,适用于大规模数据分析场景。核心技术包括混合负载、异构加速、智能弹性与硬件优化及AI集成,支持流批一体架构和物化视图等功能,帮助用户实现高效、低成本的数据处理与分析。通过存算分离和智能调度,AnalyticDB MySQL可在复杂查询和突发流量下提供卓越性能,并结合AI技术提升数据价值挖掘能力。
277 16
|
监控 数据挖掘 OLAP
深入解析:AnalyticDB中的高级查询优化与性能调优
【10月更文挑战第22天】 AnalyticDB(ADB)是阿里云推出的一款实时OLAP数据库服务,它能够处理大规模的数据分析任务,提供亚秒级的查询响应时间。对于已经熟悉AnalyticDB基本操作的用户来说,如何通过查询优化和性能调优来提高数据处理效率,是进一步提升系统性能的关键。本文将从个人的角度出发,结合实际经验,深入探讨AnalyticDB中的高级查询优化与性能调优技巧。
602 4
|
存储 SQL 缓存
AnalyticDB 实时数仓架构解析
AnalyticDB 是阿里云自研的 OLAP 数据库,广泛应用于行为分析、数据报表、金融风控等应用场景,可支持 100 trillion 行记录、10PB 量级的数据规模,亚秒级完成交互式分析查询。本文是对 《 AnalyticDB: Real-time OLAP Database System at Alibaba Cloud 》的学习总结。
308 1
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
861 1