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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
全局流量管理 GTM,标准版 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,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
30天前
|
人工智能 关系型数据库 MySQL
AnalyticDB MySQL版:云原生离在线一体化数据仓库支持实时业务决策
AnalyticDB MySQL版是阿里云推出的云原生离在线一体化数据仓库,支持实时业务决策。产品定位为兼具数据库应用性和大数据处理能力的数仓,适用于大规模数据分析场景。核心技术包括混合负载、异构加速、智能弹性与硬件优化及AI集成,支持流批一体架构和物化视图等功能,帮助用户实现高效、低成本的数据处理与分析。通过存算分离和智能调度,AnalyticDB MySQL可在复杂查询和突发流量下提供卓越性能,并结合AI技术提升数据价值挖掘能力。
53 16
|
3月前
|
监控 数据挖掘 OLAP
深入解析:AnalyticDB中的高级查询优化与性能调优
【10月更文挑战第22天】 AnalyticDB(ADB)是阿里云推出的一款实时OLAP数据库服务,它能够处理大规模的数据分析任务,提供亚秒级的查询响应时间。对于已经熟悉AnalyticDB基本操作的用户来说,如何通过查询优化和性能调优来提高数据处理效率,是进一步提升系统性能的关键。本文将从个人的角度出发,结合实际经验,深入探讨AnalyticDB中的高级查询优化与性能调优技巧。
208 4
|
3月前
|
存储 SQL 缓存
AnalyticDB 实时数仓架构解析
AnalyticDB 是阿里云自研的 OLAP 数据库,广泛应用于行为分析、数据报表、金融风控等应用场景,可支持 100 trillion 行记录、10PB 量级的数据规模,亚秒级完成交互式分析查询。本文是对 《 AnalyticDB: Real-time OLAP Database System at Alibaba Cloud 》的学习总结。
91 1
|
4月前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
325 1
|
7月前
|
数据采集 运维 Cloud Native
Flink+Paimon在阿里云大数据云原生运维数仓的实践
构建实时云原生运维数仓以提升大数据集群的运维能力,采用 Flink+Paimon 方案,解决资源审计、拓扑及趋势分析需求。
18566 54
Flink+Paimon在阿里云大数据云原生运维数仓的实践
|
7月前
|
存储 数据挖掘 BI
数据仓库深度解析与实时数仓应用案例探析
随着数据量的不断增长和数据应用的广泛深入,数据治理和隐私保护将成为数据仓库建设的重要议题。企业需要建立完善的数据治理体系,确保数据的准确性、一致性和完整性;同时加强隐私保护机制建设,确保敏感数据的安全性和合规性。
758 55
|
6月前
|
分布式计算 安全 OLAP
7倍性能提升|阿里云AnalyticDB Spark向量化能力解析
AnalyticDB Spark如何通过向量化引擎提升性能?
|
6月前
|
SQL 关系型数据库 MySQL
实时数仓 Hologres操作报错合集之Flink CTAS Source(Mysql) 表字段从可空改为非空的原因是什么
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
6月前
|
消息中间件 存储 大数据
大数据-数据仓库-实时数仓架构分析
大数据-数据仓库-实时数仓架构分析
233 1
|
6月前
|
存储 SQL 人工智能
AnalyticDB for MySQL:AI时代实时数据分析的最佳选择
阿里云云原生数据仓库AnalyticDB MySQL(ADB-M)与被OpenAI收购的实时分析数据库Rockset对比,两者在架构设计上有诸多相似点,例如存算分离、实时写入等,但ADB-M在多个方面展现出了更为成熟和先进的特性。ADB-M支持更丰富的弹性能力、强一致实时数据读写、全面的索引类型、高吞吐写入、完备的DML和Online DDL操作、智能的数据生命周期管理。在向量检索与分析上,ADB-M提供更高检索精度。ADB-M设计原理包括分布式表、基于Raft协议的同步层、支持DML和DDL的引擎层、高性能低成本的持久化层,这些共同确保了ADB-M在AI时代作为实时数据仓库的高性能与高性价比

热门文章

最新文章