阿里云的云数据库PetaData是一款高性能、可扩展的大数据存储解决方案,专为处理海量数据而设计。在使用PetaData时,需要注意其对数据库操作的特定限制和特性。本手册主要介绍了如何创建和管理表,以及对DDL(Data Definition Language)的支持情况。
1. **DDL语法支持**:
- PetaData的DDL只支持与表和索引相关的操作,如创建、修改和删除表及索引。
- DDL操作必须通过PetaData的Web管理控制台执行,不能直接通过客户端执行,且在执行DDL期间,事务隔离级别被设置为“读未提交”。
- 不支持的操作包括:在现有列之前或之后添加列、使用`TRUNCATE TABLE`命令清空表(需通过API接口执行)、表空间、分区表、存储过程、用户自定义函数、触发器和事件,以及游标。
2. **表定义**:
- 表名最大长度为64字节,仅支持英文、数字和下划线,并避免使用系统保留关键字,如有必要需使用反引号包裹。
- 列名同样有限制,最大64字节,且遵循相同命名规则。
- 最多支持512个列,一行数据的最大长度不超过16MB。
- 对于保留关键字,如`TRUNCATE`、`BEGIN`等,需要使用反引号来引用它们。
3. **数据类型**:
- PetaData支持的数据类型包括:SMALLINT、INTEGER、BIGINT、DECIMAL、FLOAT、DOUBLE、BOOLEAN、CHAR、VARCHAR、DATE、TIME、DATETIME、TIMESTAMP和TEXT。
4. **列属性和约束**:
- 列可以设置默认值(`DEFAULT`)和注释(`COMMENT`),注释不能包含非英文字符。
- 支持NOT NULL和NULL约束,以及UNIQUE和PRIMARY KEY约束。若指定`AUTO_INCREMENT`,该列必须是BIGINT类型,并会自动成为主键。对于用户插入的值,需要确保唯一性,否则可能导致分区上的冲突。
5. **表约束**:
- 每个表必须有一个主键,可以由一个或多个列组成,以防止数据导入时的重复。
6. **表属性**:
- 存储引擎目前支持InnoDB和TokuDB,但具体默认引擎可能因产品形态不同而变化,不推荐用户指定存储引擎。
- 可设置表的字符集,但仅支持如utf8、gbk等常用字符集,不支持超宽字符集如utf8mb4,用户需确保在所有场景下使用相同的字符集以避免混乱。
7. **字符集限制**:
- 自定义字符集不被支持,且在进行如`ORDER BY`、`GROUP BY`等操作,以及`COUNT`、`SUM`等聚合函数时,字符集的选择尤为重要,需要保持一致性。
综上,PetaData是一个强大的云数据库解决方案,但在使用时需注意其特定的语法限制和功能特性,特别是对于DDL操作、数据类型选择、表结构设计以及字符集的使用。在设计和管理大数据表时,这些限制和特点应作为重要的考虑因素。