阿里云-AnalyticDB【分析型数据库】总结介绍

一、背景

随着企业IT和互联网系统的发展,产生了越来越多的数据。数据量的积累带来了质的飞跃,使得数据应用从业务系统的一部分演变得愈发独立。物流、交通、新零售等越来越多的行业需要通过OLAP做到精细化运营,从而调控生产规则、运营效率、企业决策等。

在业务系统中,我们通常使用的是OLTP数据存储,例如MySQL,PostgreSQL等。上述关系数据库系统擅长事务处理,能够很好的支持频繁数据插入和修改。一旦需要计算的数据量过大,例如数千万甚至数十亿条,或者需要进行非常复杂的计算,此时OLTP数据库系统便力不从心了。这个时候,我们便需要OLAP系统来进行处理。

分析型数据库MySQL版是云端托管的PB级高并发实时数据仓库,是专注于服务OLAP领域的数据仓库。在数据存储模型上,采用关系模型进行数据存储,可以使用SQL进行自由灵活的计算分析,无需预先建模。利用云端的无缝伸缩能力,分析型数据库MySQL版在处理百亿条甚至更多量级的数据时真正实现毫秒级计算。

分析型数据库MySQL版支持通过SQL来构建关系型数据仓库。具有管理简单、节点数量伸缩方便、灵活升降实例规格等特点,而且支持丰富的可视化工具以及ETL软件,极大的降低了企业建设数据化的门槛。

分析型数据库MySQL版为精细化运营而生,实时洞现数据价值,持续推进企业数据化变革转型。

关于OLAP和OLTP请访问我的另一篇博客 数据的两种处理方式 OLAP、OLTP

二、AnalyticDB能干啥?

阿里云分析型数据库是一项在云中提供的实时在线分析 (OLAP) 托管数据库服务,可处理海量数据。作为一项快速灵活的数据库服务,分析型数据库从云中提供数据分析服务,它兼容 MySQL 协议,包括元数据信息。

阿里云分析型数据库是一个基于云的数据库解决方案,它能实现实时处理海量数据,并可帮助实现基于数据分析的业务转型。快速查询响应时间让您能够以毫秒级的时间计算十亿级的数据。分析型数据库比标准数据库的可扩展性更高 - 非常适合为项目、报告和高级分析部署业务分析、大数据云解决方案。

阿里云分析型数据库可以轻松地将它与您的应用集成以便快速分析大量数据,凭借其高级分析和数据挖掘解决方案、内建的安全性和优化的查询处理,阿里云分析型数据库可助您轻松实现复杂的业务目标。

三、ADB的优势是啥?

3.1、高计算能力

3.1.1、高级功能

兼容 SQL 以提供多维度分析、数据透视和数据筛选

支持标准 SQL 的数据定义、操作和控制。例如 DDL、DML 和 DCL。

支持 JOIN、HAVING、DISTINCT 等函数。

执行对任意字段的组合查询。

支持常规的聚合函数以及个性化的分段、抽样等统计函数。

3.1.2、快速导出

支持快速转储功能,可将海量数据快速转储到云上的另一系统中。

提供每秒超过 100 万行的高速转储。

3.2、高性能

数十亿字节的数据多维度透视。

支持毫秒级的多个大表关联计算。

使用全自动功能为每一列数据建立最合适的索引格式。

计算引擎对用户查询进行智能优化,以增强性能并降低成本。

3.3、可用性保障

凭借数据多副本存储和动态资源管理机制提供了高可用性和冗余。

3.4、安全可靠

实施权限管理机制以确保数据安全性。

利用公钥/私钥机制增强数据安全性。

3.5、易用性

3.5.1、兼容 MySQL

全面兼容 MySQL 协议(包括数据元素信息)。

天生具备与商业分析工具、应用的兼容性。

自带对快速访问各种类型的数据来源的支持。

降低了业务系统和商业软件的接入成本。

3.5.2、简单易用

提供易用的图形化管理控制台和完善的文档与手册,并提供快速开始指南。

采用灵活的计费方式,您只需为实际使用的资源付费。

3.6、特色功能

可使用地理 LBI 功能圈选地理坐标数据,无需空间索引。

内建的动态分段、快速聚合等多种函数方便了 OLAP 基于服务器的应用的开发。

四、如何使用ADB?

1、购买(选择你需要的)...

2、连接ADB

2.1、通过代码连接

2.2、阿里的控制台(提供连接地址和端口)

2.3、一些客户端(DataGrip或者Navicat之类的)

3、创建表组

命名规则:

表组名以字母开头,字母或数字结尾(不能以下划线结尾);可包含字母、数字或下划线(_),长度不超过64个字符;

表组名中不能包含双下划线(__)。

同一个数据库中,表组名唯一。

4、创建表(命名和表组名的规则类似)

5、加载数据

6、使用数据(增删改查之类的)

概念介绍:

1、ECU:弹性计算单元(Elastic compute units 简写ECU)是AnalyticDB用来衡量实例计算能力的元单位。一个数据库由若干个同一类型的ECU节点组成,例如数据库A,可能由4个C8组成,或者6个S2N组成,每个ECU节点配备有固定的磁盘和内存资源。

2、表组:表组是一系列可发生关联的数据表的集合,AnalyticDB为了管理相关联的数据表,引入了表组的概念。表组类似于传统数据库schema的概念,AnalyticDB表组分为两类:

维度表组(系统自带):自带维度概念的表,可以放到维度表组下。

普通表组: 一般会把需要关联的普通表放在相同普通表组中,建议这个表组中的所有普通表的一级分区数一致,join性能会有很大提升。

3、表: 在表组之下是表的概念,AnalyticDB提供两种类型的表:

维度表: 带有维度概念的表,又称为复制表。默认每个ECU节点放置一份全量的维度表数据,所以维度表可以和任何普通表进行关联。由于维度表会消耗更多的存储资源,所以维度表的数据量大小有限制,一般要求维度表单表不超过5000万行。

普通表: 普通表就是分区表,为充分利用分布式系统的查询能力而设计的一种表。普通表默认是指一级分区表,如果有增量数据导入需求,可以创建二级分区表。

4、分区: 普通表才有分区的概念,AnalyticDB支持两级分区策略:一级分区采用hash算法,单表数据量在60亿以内,我们推荐您使用一级分区,通常一级分区已足够。二级分区采用list算法,二级分区部分见最佳实践章节。

5、主键: AnalyticDB的的表必须包含主键字段,通过主键进行记录的唯一性判断。主键由业务id、一级分区键组成,有些情况业务id与一级分区相同。对于记录量特别大的表,从存储空间和insert性能考虑,一定要减少主键的字段数。

支持的数据类型介绍:

boolean布尔类型,值只能是0或1。取值0的逻辑意义为假,取值1的逻辑意义为真,存储字节数1比特位。

tinyint微整数类型,取值范围-128到127,存储字节数1字节。

smallint整数类型,取值范围-32768到32767,存储字节数2字节。

int整数类型,取值范围-2147483648到2147483647,存储字节数4字节。

bigint大整数类型,取值范围-9223372036854775808到9223372036854775807,存储字节数8字节。

float单精度浮点数,取值范围-3.402823466E+38到-1.175494351E-38, 0, 1.175494351E-38到 3.402823466E+38,IEEE标准,存储字节数4字节。

double双精度浮点数,取值范围-1.7976931348623157E+308到-2.2250738585072014E-308, 0, 2.2250738585072014E-308 到 1.7976931348623157E+308,IEEE标准,存储字节数8字节。。

varchar变长字符串类型。varchar长度不得超过16KB,否则可能会出现字段为null。可以设置该列去掉索引或者设置为全文索引。去掉索引后建议该列不要在查询中进行筛选和计算。

date日期类型,取值范围'1000-01-01' 到 '9999-12-31',支持的数据格式为 'YYYY-MM-DD',存储字节数为4字节。

time 时间类型,取值范围'00:00:00' 到 '23:59:59',支持的数据格式为'HH:MM:SS',存储字节数为4字节。

timestamp时间戳类型, 取值范围'1970-01-01 00:00:01'UTC到 '2038-01-19 03:14:07' UTC,支持的的数据格式为'YYYY-MM-DD HH:MM:SS',存储字节数为4字节。

语法介绍:

1、ADB全面兼容MySQL和SQL2003,所以很多语法都是和MySQL类似的。

2 、 注 意 : A B D

相关推荐
Karoku06635 分钟前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
小技与小术2 小时前
数据库表设计范式
数据库·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验九 触发器
数据库·sql·mysql·oracle·实验报告
Loganer2 小时前
MongoDB分片集群搭建
数据库·mongodb
LKID体2 小时前
Python操作neo4j库py2neo使用之创建和查询(二)
数据库·python·neo4j
刘大浪2 小时前
后端数据增删改查基于Springboot+mybatis mysql 时间根据当时时间自动填充,数据库连接查询不一致,mysql数据库连接不好用
数据库·spring boot·mybatis
一只爱撸猫的程序猿2 小时前
简单实现一个系统升级过程中的数据平滑迁移的场景实例
数据库·spring boot·程序员
无敌岩雀2 小时前
MySQL中的索引
数据库·mysql
a_安徒生3 小时前
linux安装TDengine
linux·数据库·tdengine