开发者学堂课程【数据仓库 ACP 认证课程:【视频】云原生数据仓库 AnalyticDB MySQL 版 _解析与实践1】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/928/detail/14623
【视频】云原生数据仓库 AnalyticDB MySQL 版 _解析与实践1
(2)权限与数据安全∶用户
用户账号和认证︰
账号格式:ALIYUN$user_account@aliyun.com
认证需要使用AcclessKey
用户类型:
.OWNER:数据库拥有者,开通云原生数据仓库服务,并创建数据
用户∶被授权的数据库用户,由OWNER添加,无需开通云原生数据仓库服务
RAM子账号︰
支持RAM(阿里云访问控制)子账号登录和使用云原生数据仓库
主账号可建多个子账号,通过授予授权策略,使子账号在一定条件下可以访问云原生数据仓库
子账号访问云原生数据仓库的MySQL协议端时需要使用其的Access Key ID/Secret作为用户名和密码
(3)权限与数据安全∶权限模型
AnalyticDB for MySQL集群支持如下粒度的权限控制:集群、数据库、表、列、行级(基于视图)。
|
DB |
T |
Col |
Comments |
SELECT |
√ |
√ |
√ |
查询数据 |
INSERT...SELECT...FR OM... |
√ |
√ |
√ |
执行Insert.Select权限 |
UPDATE |
√ |
√ |
√ |
执行Update权限 |
TRUNCATE TABLE |
√ |
√ |
× |
执行Drop权限 |
SHOW |
√ |
√ |
× |
列出数据库、表、视图内部对象(Global、Database )、列出表内部对象 (Table[View] ) |
ALTER |
√ |
√ |
× |
修改表/视图/数据库定义 |
DROP |
√ |
√ |
× |
删除数据库、表或分区(Global、Database )、删除表或分区(Table[Group]) |
CREATE |
√ |
√ |
× |
创建数据库(Global )、创建表/表分区/视图(Database ) |
INSERT |
√ |
√ |
√ |
执行Insert的权限 |
DELETE |
√ |
√ |
√ |
执行Delete的权限 |
ALL[PRIVILEGES] |
√ |
√ |
√ |
以上所有权限 |
(4)权限与数据安全:SQL审计
SQL审计功能可以实时记录数据库DML和DDL操作信息,并提供数据库操作信息的检索功能,提高云原生数据仓库AnalyticDB MySQL版的安全性。
SQL审计日志
记录对数据库执行的所有操作。通过审计日志记录,您可以对数据库进行故障分析、行为分析、安全审计等操作。
搜索
可以按照数据库、客户端IP、执行耗时、执行状态等进行多维度检索,并支持导出搜索结果。
ADB为表的每个字段智能构建索引,目前支持五种类型∶字符串类的 Invert 索引、 bitmap.索引、数值类的KDTree索引、JSON索引和向量索引;不同类型的索引可以实现列级索引多种条件(交、并、差)任意组合,查询时无需建组合索引,通过Index CBO智能动态筛选索引下推,通过谓词计算层进行流式渐进多路归并输出
倒排索引∶分区表的所有列(适用Bitmap索引的列除外)都建了倒排索引,key为排序的列值,value为对应的RowID list,所以对于任何列进行FILTER(WHERE key=value)或者JOIN查询都非常高效。
Bitmap索引∶对于值重复率高的列,建立Bitmap索引。
KDTree索引∶为了加速范围查询,对于类型为数字的列同时建立了KDTree索引。
(1)行列混存的块索引
(2)块索引即块的元数据信息︰
分区元数据︰分区总行数,单个block中的列行数等信息;
列元数据∶列值类型、整列的MAX/MIN值,NULL值数目,直方图信息等,便于加速查询;
列Block元数据︰该列的MAX/MIN/SUM
总条目数(COUNT)等信息,便于加速查询。
说明∶复杂类型数据(json , vector )存储采用统一大小的块组织存储,按顺序存,采用稀疏索引查询
4.数据存储冷热分离
(1)冷热数据分层
AnalyticDB可以按表粒度、表的二级分区粒度独立选择冷、热存储介质,AnalyticDB数据写入时,数据会首先进入热空间SSD上,当热存储数据积累到一定程度或者用户指定的冷表策略时会自动调度后台的Build任务,把数据迁移到冷存储空间。
冷数据指的是访问频次较低的数据,采用低价的HDD存储,满足存储空间的需求。
热数据指的是访问频次较高的数据,采用SSD存储,满足高性能访问的需求。
可以执行CREATE TABLE语句指定表的冷热存储策略为︰全热存储(数据全部存储在SSD )、全冷存储(数据全部存储在HDD )、冷热混合存储(指定一定数量的分区存储在SSD,其余数据存储在HDD )。
创建表可以指定存储策,等于 Hot、Cold、Mixed代表不同的热数据,冷数据来混存,在混存时候需要指定热分区的个数,指定热分区个数为3,新来 的数据放入热分区中,继续放入会增多,其中一个会转HDD中存储
冷热分层
高性价比,完全按量付费
冷热策略轻松定义
只需指定表的冷热策略即可享有冷热存储能力,无需额外购买资源
冷热分区自动迁移
异步迁移,业务无感知,不影响读写
查询和内外部接口统一
在离线一体化,数据强一致
(2)冷热数据存储诊断表
AnalyticDB MySQL版弹性模式集群版( 3.1.3.5及以上版本)支持数据的冷热分离存储,用户可以通过查表的方式查询某一张表的冷热数据存储布局情况。
查询所有表的存储状态∶
select * from information_schema.table_ usage;
查询单个表的存储状态︰
select * from information_schema.table_usage where
itable_ schema="$schema_name' and table_name='Stable name'
在表A中,数据有两个分片分布在两个不同的节点上,如果指定热分区是2,其实在每一个分片上面都满足这个热数据。分区的个数是2,但实际上热分区是p3p4p5
实际显示的hot_partition_count
大于用户定义的hot_partition_count。
5.物化视图
物化视图是数仓领域的核心特性之一。不同于逻辑视图( view ) ,物化视图( materializedview )会持久化视图的查询结果。
物化视图可用于加速分析,并能简化ETL,适用于多种场景,例如报表类业务,大屏展示需求,来自BI工具的查询等等。
创建物化试图的语法:
CREATE MATERIALIZED VIEW <mv_name>[MV DEFINITION]
[REFRESH COMPLETE [ON<DEMAND|OVERWRITE>][STARTWITH date][NEXT date]]
As
<QUERY BODY>;
#指定列建立索引,默认全部列建立索引
CREATE MATERIALIZED VIEW myview (INDEX(name),
PRIMARY KEY (id)
)DISTRIBUTED BY HASH (id)
AS
SELECT id, name, age FROM base;
#指定分区键和注释
CREATE MATERIALIZED VIEW c (name varchar(10),
value double,
KEY INDEX_ID(id)COMMENT "id",
CLUSTERED KEY INDEX(name, value),
PRIMARY KEY(id)
)
DISTRIBUTED BY hash(id)
PARTITION BY value(date_format(dat,"%Y%m%d"))
LIFECYCLE 30
COMMENT"MATERIALIZED VIEw c’
AS
SELECT * FROM base;
物化视图客户案例
使用物化视图降低客户查询延迟时间。举例生意参谋∶是阿里巴巴旗下为千万商家提供的一项重要产品服务,帮助商家及时分析店铺运营情况。尤其是在大促期间,面对突发的流量和海量的数据,数据分析尤为重要。
利用物化视图,可以大幅降低延迟时间。将每小时展示信息结果存储到物化视图中,每次查询只需要查询物化视图即可,平均每次查询时间降低至100毫秒。