Amazon Redshift 参数组
概述
在 Amazon Redshift 中,您可以将参数组与创建的每个集群相关联。参数组是一组适用于您在集群中创建的所有数据库的参数。这些参数可用于配置数据库设置,例如查询超时和日期样式。
关于参数组
每个参数组都拥有几个可用于配置数据库设置的参数。可用参数列表取决于参数组所属的参数组系列。参数组系列是参数组中的参数所适用的 Amazon Redshift 引擎版本。参数组系列名称的格式为 redshift-
,其中 version
version
是引擎版本。例如,最新的引擎版本为 redshift-1.0
。
Amazon Redshift 为每个参数组系列提供一个默认的参数组。默认参数组中的每个参数都有预设值,并且无法修改。默认参数组名称的格式为 default.
,其中 parameter_group_family
parameter_group_family
是参数组所属引擎的版本。例如,redshift-1.0
版本的默认参数组的名称为 default.redshift-1.0
。
注意
目前,redshift-1.0
是 Amazon Redshift 引擎的唯一版本。因此,default.redshift-1.0
是唯一的默认参数组。
如果您想要使用与默认参数组不同的参数值,则必须创建自定义参数组,然后将其与您的集群相关联。最初,自定义参数组中的参数值与默认参数组中的参数值相同。由于值由 Amazon Redshift 预先设置,因此所有参数的初始 source
均为 engine-default
。在您更改参数值之后,source
将变为 user
,表明默认值被修改为现在的值。
注意
Amazon Redshift 控制台不会显示每个参数的 source
。您必须使用Amazon Redshift API、AWS CLI、或其中一个 AWS 开发工具包才能查看 source
。
对于您创建的参数组,您可以随时修改参数值,也可以将所有参数值重置为默认值。您还可以将其他参数组与某个集群相关联。在某些情况下,您可以修改与集群关联的参数组中的参数值,或者将其他参数组与集群关联。在这些情况下,您可能需要重新启动集群以使更新后的参数值生效。如果该集群发生故障并由 Amazon Redshift 重新启动,那么系统将在此时应用您所做的更改。如果集群在维护期间重启,则无法应用更改。有关更多信息,请参阅 WLM 动态和静态属性。
默认参数值
您可以通过下面的表一目了然地了解默认的参数值,并借助提供的相应链接详细了解每个参数。下面显示的是 redshift-1.0
参数组系列的默认值。
参数名称 | 值 | 更多信息 |
---|---|---|
auto_analyze |
true |
《Amazon Redshift 数据库开发人员指南》中的 auto_analyze |
auto_mv |
true |
《Amazon Redshift 数据库开发人员指南》中的自动实体化视图 |
datestyle |
ISO、MDY |
《Amazon Redshift 数据库开发人员指南》中的 datestyle |
enable_case_sensitive_identifier |
false |
《Amazon Redshift 数据库开发人员指南》中的 enable_case_sensitive_identifier |
enable_user_activity_logging |
false |
本指南中的数据库审计日志记录 |
extra_float_digits |
0 |
《Amazon Redshift 数据库开发人员指南》中的 extra_float_digits |
max_concurrency_scaling_clusters |
1 |
《Amazon Redshift 数据库开发人员指南》中的 max_concurrency_scaling_clusters |
query_group |
默认值 |
《Amazon Redshift 数据库开发人员指南》中的 query_group |
require_ssl |
false |
本指南中的配置连接的安全选项 |
search_path |
$user、public |
《Amazon Redshift 数据库开发人员指南》中的 search_path |
statement_timeout |
0 |
《Amazon Redshift 数据库开发人员指南》中的 statement_timeout |
wlm_json_configuration |
[{"auto_wlm":true}] |
本指南中的配置工作负载管理 |
use_fips_ssl |
false |
仅在您的系统需要与 FIPS 兼容时才启用与 FIPS 兼容的 SSL 模式。 |
注意
max_cursor_result_set_size
参数已弃用。有关游标结果集大小的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的游标约束。
您可以使用数据库中的 SET
命令临时覆盖参数。SET
命令仅覆盖当前会话持续时间内的参数。除了上表中列出的参数之外,您还可以通过在数据库中设置 wlm_query_slot_count
来临时调整槽位计数。wlm_query_slot_count
参数不适用于参数组中的配置。有关调整槽数的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 wlm_query_slot_count。有关临时覆盖其他参数的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的修改服务器配置。
使用 AWS CLI 配置参数值
要使用 AWS CLI 配置 Amazon Redshift 参数,您可以对特定的参数组使用 modify-cluster-parameter-group
命令。您可以在 parameter-group-name
中指定要修改的参数组。您可以使用 parameters
参数(针对 modify-cluster-parameter-group
命令)指定希望在参数组中修改的每个参数的名称/值对。
注意
这些是使用 AWS CLI 配置 wlm_json_configuration
参数时需要考虑的一些特殊注意事项。此部分中的示例适用于除 wlm_json_configuration
之外的所有参数。有关使用 AWS CLI 配置 wlm_json_configuration
的更多信息,请参阅配置工作负载管理。
修改参数值之后,您必须重新启动与修改后的参数组相关联的所有集群。当系统正在应用值时,集群状态将针对 ParameterApplyStatus
显示 applying
;当应用了这些值之后,该状态则变为 pending-reboot
。重新启动之后,您集群中的数据库便开始使用新的参数值。有关重新启动集群的更多信息,请参阅重新引导集群。
注意
wlm_json_configuration
参数中包含一些动态属性,您无需重新启动相关联的集群即可应用更改。有关动态属性和静态属性的更多信息,请参阅 WLM 动态和静态属性。
语法
下面的语法显示了如何使用 modify-cluster-parameter-group
命令配置参数。您可以指定 parameter_group_name
,并使用实际参数来替换 parameter_name
和 parameter_value
,以修改相应参数的值。如果您想同时修改多个参数,请使用空格将每个参数和值集合彼此分隔开来。
aws redshift modify-cluster-parameter-group --parameter-group-name
parameter_group_name
--parameters ParameterName=parameter_name
,ParameterValue=parameter_value
示例
下面的示例显示了如何配置 myclusterparametergroup
参数组的 statement_timeout
和 enable_user_activity_logging
参数。
注意
为了便于阅读,该示例分为多行显示出来;但在实际的 AWS CLI 中,该示例显示为一行。
aws redshift modify-cluster-parameter-group --parameter-group-name myclusterparametergroup --parameters ParameterName=statement_timeout,ParameterValue=20000 ParameterName=enable_user_activity_logging,ParameterValue=true
您可以使用控制台管理参数组。有关更多信息,请参阅 使用控制台管理参数组。