Amazon Redshift 参数组 - Amazon Redshift

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_nameparameter_value,以修改相应参数的值。如果您想同时修改多个参数,请使用空格将每个参数和值集合彼此分隔开来。

aws redshift modify-cluster-parameter-group --parameter-group-name parameter_group_name --parameters ParameterName=parameter_name,ParameterValue=parameter_value

示例

下面的示例显示了如何配置 myclusterparametergroup 参数组的 statement_timeoutenable_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

您可以使用控制台管理参数组。有关更多信息,请参阅使用控制台管理参数组