核心概念
| 阐明
|
Project(项目)
| 项目是MaxCompute的根本构造单元,类似于传统数据库的Database或Schema的概念
|
Table(表)
| 表是MaxCompute的数据存储单元
|
Partition(分区)
| 分区Partition是指一张表下,根据分区字段对数据存储进行分别。如果表有分区,每个分区对应表下的一个目次,数据是分别存储在差别的分区目次下
|
View(视图)
| 视图是在表之上创建的虚拟表,它的布局和内容都来自表。如果想保留查询效果,但不想创建表占用存储,可以通过视图实现
|
User(用户)
| MaxCompute支持通过阿里云账号、RAM用户或RAM脚色访问MaxCompute
|
Role(脚色)
| 脚色是MaxCompute安全功能中的概念,可以理解为拥有雷同权限的用户的聚集
|
Resource(资源)
| 资源是MaxCompute中特有的概念。当您使用MaxCompute的自界说函数(UDF)或MapReduce功能时,必要依靠资源来完成
|
Function(函数)
| MaxCompute提供函数功能,包罗内建函数和UDF
|
Instance(实例)
| 即实际运行作业的一个具体实例,类同Hadoop中Job的概念
|
Networklink(网络毗连)
| 当使用外部表、UDF或湖仓一体功能时,MaxCompute默认未创建与外网或VPC网络间的网络毗连,必要开通网络毗连
|
主要区别
| 问题征象
| 解决方法
|
应用场景
| 不支持事务(不支持Commit和Rollback,不保举使用INSERT INTO)。
| 发起代码具备幂等性,支持重新实行。保举您使用INSERT OVERWRITE写数据。
|
不支持索引和主键约束。
| 无。
|
部分字段不支持默认值或默认函数。
| 如果字段有默认值,您可以在数据写入时自行赋值。MaxCompute支持在创建表时,对BIGINT、DOUBLE、BOOLEAN和STRING范例的字段添加默认值。
|
不支持自增字段。
| 无。
|
表分区
| 单表最多支持6万个分区。超过6万个分区会报错。
| 选择合适的分区列,减少分区数。
|
一次查询输入的分区不能超过1万个,否则会报错。如果是2级分区且查询时只根据2级分区进行过滤,总的分区数大于1万也可能导致报错。
| 解决方法请拜见实行INSERT INTO或INSERT OVERWRITE操纵时,报错a single instance cannot output data to more than 10000 partitions,如何解决?。
|
精度
| DOUBLE范例存在精度问题。
| 不发起直接使用等于号(=)关联两个DOUBLE字段。发起将两个数相减,如果差距小于一个预设的值,则以为两个数是雷同的。例如ABS(a1-a2)<0.000000001。
|
固然MaxCompute支持高精度范例DECIMAL,但是有更高精度的要求。
| 如果有更高的精度要求,您可以先把数据存储为STRING范例,然后使用UDF实现对应的盘算。
|
数据范例转换
| 出现各种预期外的错误,代码维护问题。
| 如果有2个差别的字段范例必要实行JOIN操纵,发起您先转换字段范例再实行JOIN操纵。
|
日期范例和字符串的隐式转换。
| 如果在必要传入日期范例的函数中传入一个字符串,字符串和日期范例根据yyyy-mm-dd hh:mi:ss格式进行转换。
|