开发者社区 问答 正文

DDL如何创建和修改表组?


在第一章中,我们已经介绍了如何通过DMS界面创建和修改表组,本节中,我们详细描述如何通过DDL来创建和修改表组以及表组各属性的含义。
创建表组时,我们提交如下SQL:

  1. create tablegroup db_name.tablegroup_name options(minRedundancy=2 executeTimeout=30000);

其中db_name为数据库名称,tablegroup_name为表组名称(不能和现有表组重叠)。
options部分为可选项:minRedundancy表示该表组的副本数,默认为2,可配置为1、2、4、8。需要注意的是,如果将一个表组配置为1副本,那么这个表组中的表在数据导入时会有不可用的时间。而将表组副本数配置为4或更高,可以一定程度的增加分析型数据库的最大承受的QPS,但是数据存储费用也会相应增加。在绝大部分情况下,不推荐修改任何表组默认配置。
executeTimeout表示该表组的全局Query超时时间,默认为30000,单位毫秒。
当我们需要删除一个表组时,我们可以提交如下SQL:
  1. drop tablegroup db_name.tablegroup_name;

注意,仅允许删除没有任何表的空表组,维度表组不允许删除。
当我们需要修改表组的两个属性中的任何一个时,我们可以提交如下SQL:
  1. alter tablegroup db_name.tablegroup_name key=value;

其中key为属性名,value为新的属性值。需要注意的是,minRedundancy修改后需要下次装载数据时才会生效。

展开
收起
nicenelly 2017-10-31 11:38:15 2070 分享 版权
阿里云 AI 助理回答

您提到的内容涉及到了在分布式数据库或大数据平台中管理表组的高级操作,特别是针对副本数(minRedundancy)和查询超时时间(executeTimeout)的配置与调整。虽然您的描述没有直接指明是哪个具体的产品,但基于提供的SQL语句格式和操作逻辑,这与阿里云MaxCompute(原名ODPS)中的某些概念有所相似。MaxCompute是一个大规模数据处理和分析的服务,它支持表组等高级特性来优化数据组织和查询性能。

创建表组

在MaxCompute中,通过DDL创建表组的命令格式确实可以包含指定表组的属性,如副本数(minRedundancy)和执行超时时间(executeTimeout),以优化数据分布和查询效率。例如:

CREATE TABLEGROUP IF NOT EXISTS my_project.my_tablegroup OPTIONS (MIN_REDUNDANCY=2, EXECUTE_TIMEOUT=30000);

请注意,MaxCompute的具体语法可能与您提供的示例有细微差别,比如使用大写字母表示关键字和选项名称。

修改表组属性

修改表组属性,如调整副本数或执行超时时间,可以通过ALTER TABLEGROUP语句实现,但实际操作中,是否允许动态修改这些属性以及修改后的生效方式会依赖于具体产品的设计。在MaxCompute中,并不直接支持通过ALTER TABLEGROUP命令修改表组的属性,如副本数。通常,这样的更改可能需要更复杂的操作流程或者在产品控制台进行。

删除表组

删除空表组的操作在MaxCompute中也是通过DDL完成,确保表组内无任何表时才能执行删除操作:

DROP TABLEGROUP IF EXISTS my_project.my_tablegroup;

注意事项

  • 副本数(minRedundancy):增加副本数可以提高系统的可用性和读取性能,但会增加存储成本。在大多数系统中,这一设置影响的是数据冗余度,而非实时生效的查询参数。
  • 执行超时时间(executeTimeout):调整全局Query超时时间可以帮助避免长时间运行的查询占用过多资源,但需根据实际查询复杂度和期望响应时间合理设定。
  • 修改属性生效:如需修改表组的物理属性(如副本数),在很多系统中,这样的变更往往需要配合数据重分布操作,不会立即生效,且可能伴随一定的运维操作。

综上所述,虽然您的描述贴近于数据库管理实践,但在应用到具体产品(如阿里云MaxCompute)时,建议参考该产品的官方文档,因为不同产品在细节实现和命令语法上可能存在差异。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答