Vertica Database Designer

我们知道,在vertica中,数据是存储在projections中的,针对每个projection,我们可以指定包含那些列,列的编码压缩方式,排序方式,分布方式等。而vertica在执行查询操作时,会根据优化器找到一个或多个针对该查询的最好的projections。综上所述,我们可以通过设计projections来达到优化数据库的查询性能的目的。
设计在vertica中被解释为:A design is a physical storage plan that optimizes query performance.

您可以通过多种方式创建设计:

  • 使用Database Designer,这是一种推荐设计以获得最佳性能的工具。
  • 手动创建设计
  • 使用Database Designer创建初始设计,然后手动修改它。

Database Designer可以帮助您最大限度地减少花在手动数据库调优上的时间。您还可以使用Database Designer以增量方式重新设计数据库,因为工作负载等需求会随着时间的推移而变化。

提示: Vertica 建议您首先使用Database Designer中的Comprehensive设置全局优化数据库。
如果综合设计的性能不足,您可以使用增量设计和手动设计自定义projections。
关于Database Designer

Vertica Database Designer使用复杂的策略创建一种设计,可在高效使用磁盘空间的同时为即席查询和特定查询提供出色的性能。

在设计过程中,Database Designer会分析逻辑架构定义,示例数据和示例查询,并以您自动或手动部署的SQL脚本的形式创建物理架构(projections)。该脚本创建了一组最小的超级投影以确保K-safety。

在大多数情况下,Database Designer创建的projections在物理约束内提供出色的查询性能,同时有效地使用磁盘空间。

创建database Designer的方法

有三种方法可以使用 Database Designer 创建设计:

  • 从管理控制台 (Management Console) 中打开数据库并选择窗口底部的设计(Design) 页面。有两种设计方法,分别是向导设计和手动设计。
  • 以编程方式运行 Database Designer 。 要以编程方式运行Database Designer,您必须是DBADMIN或已被授予DBDUSER 角色并已启用该角色。
    3.从管理工具 (Administration Tools) 菜单中,选择配置菜单 (Configuration Menu)运行 Database Designer (Run Database Designer)。您必须是DBADMIN用户才能从管理工具 (Administration Tools) 中运行Database Designer。
Database Designer的设计步骤

设计步骤如下:
1.创建表并导入部分数据(推荐10G左右),数据量太小,可能优化不够,导致设计的不准确,数据量太大,又会太耗时。
2.选择输入参数,进行Database Designer设计。
3.可以选择创建完成后就进行部署,或者选择创建完成后不进行自动部署,导出设计结果,(可以进行修改后)进行手动部署。

设计流程图如下:
在这里插入图片描述

Database Designer的输入选项
输入选项

主要输入参数/选项(以使用管理控制台为例)
0.设计名称:输入一个可用的设计名称。
1.设计类型:全面设计或增量设计。
2.优化目标:优化查询,优化加载,查询和加载的平衡。
3.包含示例数据的表或schema。
4.选择K-safety值及分析关联模式。
4.要设计的查询sql文件。
5.是否对projections进行分段。
6.是否进行统计信息分析。
7.是否在设计完成后进行自动部署。

输入选项说明
设计类型

对于数据库的初次设计,建议进行全面设计。后续测试过程中,如果想更好的优化数据库性能,可以针对某个或某些sql进行增量设计。
全面设计将为指定架构中的所有表创建一个初始设计或替换设计。
在创建全面Database Designer设计时,也可以为 Database Designer 提供您计划使用的具有代表性的查询,以便Database Designer 可以优化这些查询的设计。如果您未提供任何查询,Database Designer 会创建一个超级投影常规优化方案,该方案可最大限度减少存储并且不包含任何查询特定的投影。
增量设计会创建一个包含更多投影的增强设计。如果需要,可以专门针对您提供的查询对这些投影进行优化。当您具有要优化的一个或多个查询时, 可以创建一个增量设计。

优化目标

在这里插入图片描述
3种:以优化加载为目标,同时最大限度减小数据库大小;以优化查询性能为目标;以平衡加载和查询未目标。

示例数据

若要帮助Database Designer 创建一个有效的设计,请将具有代表性的数据加载到表中,然后再开始设计流程。当您将数据加载到表时,Vertica 会创建一个未经过优化的超级投影, 这样 Database Designer 便拥有了一些有待优化的投影。如果某个表不包含任何数据, Database Designer 将无法优化该表。
建议表的数据量为10G左右,数据量太大运行时间会较长,数据量太小则不会对设计进行优化。若表不包含任何数据,设计将忽略该表。

K-safety值及分析关联模式

K-Safety值确定您希望数据库设计者创建的伙伴投影的数量。该值一般设定为数据库的K-safety值。
分析关联模式确定Database Designer在创建设计时是否分析并考虑列关联,有以下选项:
忽略:创建设计时,忽略指定表中的任何列关联。
考虑现有:在创建设计时考虑表中的现有关联。如果将模式设置为1,并且没有现有关联,则Database Designer不会考虑相关性。
分析缺失:分析先前未执行相关性分析的表的列关联。创建设计时,请考虑所有列关联(新的和现有的)。
全部分析:分析表中的所有列关联,并在创建设计时考虑它们。即使表存在相关性,也要重新分析表的相关性。

查询文件

该输入对于全面设计是可选的,对于增量设计是必须的。

查询文件最多可包含100 个查询。可为每个查询分配一个权重,用以指示它的相对重要性, 以便 Database Designer 能够在创建设计时确定查询的优先级。

在通过admintools进行设计时,需要输入查询文件所在路径。在通过MC进行设计时,可以在查询存储库中进行选择(查询存储库包括最近运行的sql,耗时长的sql等选项),或者通过upload的方式上传查询文件。

分段投影(projections)

在使用MC进行设计时,可以指定在设计中使用未分段的投影,若未指定,默认使用分段的投影。
当部署到多个节点群集时,Database Designer建议将分段的超级投影用于大表, 并建议将复制的超级投影用于小表。

统计信息分析

默认情况下,将设计表的统计信息添加到设计时,Database Designer 会分析这些信息。 此选项可选,但 Vertica建议您分析统计信息,因为准确的统计信息可帮助 Database Designer 优化压缩和查询性能。

是否进行自动部署

可以选择设计完成后自动部署,或者在设计完成后进行手动部署。
使用MC方式进行设计时,若选择自动部署,将无法查看设计生成的projections语句。

输出内容

针对不同的设计方法,输出内容也不一致。对于使用admintools进行的设计,有以下输出:
假设创建的设计名称为sql_dbd
1.一个设计脚本,名称为sql_dbd_query_design.sql。该脚本以满足优化目标以及在整个群集中均匀分布数据的方式为设计创建projections。
2.一个部署脚本,名称为sql_dbd_deploy.sql。该脚本为设计创建和刷新projections。为了获得全面的设计,部署脚本包含一些用于删除非优化projections的命令。部署脚本包括完整的设计脚本。
3.一个备份脚本,名称为catalog_dump.sql。该脚本包含一些 SQL 语句,用于部署在部署前存在于系统上的设计。如果您需要还原到部署前的设计, 此文件非常有用。
4.一个设计参数文档,名称为sql_dbd_params.txt。包含你在创建设计过程中选择或输入的参数。
5.一个设计名称文档,名称为design_config_name.txt。包含你创建的设计名称,即sql_dbd。
6.设计日志,名称为designer.log。

通过控制台进行设计

可参考官方文档中的 Running Database Designer with Management Console 小节。

向导设计(Wizard)

可按照自己的需求,以及前面介绍的输入参数进行选择,若不选择自动部署,最终会得到一个类似下图的提交设计界面:
在这里插入图片描述
点击Submit Design后,会进行设计,如下界面:
在这里插入图片描述
设计完后后,可点击Export Design将设计结果导出:
在这里插入图片描述
部署设计
在这里插入图片描述
部署成功
在这里插入图片描述
当然,若不想查看设计结果,可以在提交设计前选择自动部署。

手动设计

在创建design时,选择manual选项。将会出现下图界面。
在这里插入图片描述
通过对General,Tables,Queries等选项的设定,可以用来创建Database Designer。
步骤1 对General里的项进行设置,并点击save进行保存。
在这里插入图片描述
步骤二 进入tables,选择add tables添加需要的表。
在这里插入图片描述
步骤三 通过Query Repository来选择历史查询SQL,或者通过upload来上传SQL文件。
在这里插入图片描述
最后点击build design来运行执行build。
在这里插入图片描述
可选择设计后立刻进行部署或者手动进行部署。

通过Admintools进行自动优化设计

可参考 https://www.cnblogs.com/masked/p/8134248.html
或vertica官方文档中的 Run Database Designer with Administration Tools 小节内容。

删除设计

创建并部署设计完成后,数据库中会产生一些新的projections以及针对该设计的一些系统视图。可通过点击控制台界面的Delete Design来删除一个设计。

参考:
vertica官方文档9.1.x—>Administrator’s Guide—>Configuring the Database–>Creating a Database Design
具体链接为:
https://www.vertica.com/docs/9.1.x/HTML/index.htm#Authoring/AdministratorsGuide/ConfiguringTheDB/PhysicalSchema/DesigningAPhysicalSchema.htm%3FTocPath%3DAdministrator’s%20Guide|Configuring%20the%20Database|Creating%20a%20Database%20Design|_____0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值