Amazon Redshift
管理指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

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 console 不会显示每个参数的 source。您必须使用 Amazon Redshift API、AWS CLI 或其中一个 AWS 软件开发工具包才能查看 source

对于您创建的参数组,您可以随时修改参数值,也可以将所有参数值重置为默认值。您还可以将其他参数组与某个群集相关联。如果您修改的参数值所在的参数组已经与某个群集相关联,或您要将其他参数组与该群集相关联,那么您可能需要重新启动该群集,这样更新的参数值才能生效。如果该群集发生故障并由 Amazon Redshift 重新启动,那么系统将在此时应用您所做的更改。有关更多信息,请参阅 WLM 动态属性和静态属性

默认参数值

您可以通过下面的表格一目了然地了解默认的参数值,并借助提供的相应链接详细了解每个参数。下面显示的是 redshift-1.0 参数组系列的默认值。

参数名称 更多信息

analyze_threshold_percent

10

Amazon Redshift Database Developer Guide 中的 analyze_threshold_percent

datestyle

ISO、MDY

Amazon Redshift Database Developer Guide 中的 datestyle

enable_user_activity_logging

false

本指南中的数据库审计日志记录

extra_float_digits

0

Amazon Redshift Database Developer Guide 中的 extra_float_digits

query_group

默认

Amazon Redshift Database Developer Guide 中的 query_group

require_ssl

false

本指南中的配置连接的安全选项

search_path

$user、public

Amazon Redshift Database Developer Guide 中的 search_path

statement_timeout

0

Amazon Redshift Database Developer Guide 中的 statement_timeout

wlm_json_configuration

[{"query_concurrency":5}]

本指南中的配置工作负载管理

use_fips_ssl

false

仅在您的系统需要与 FIPS 兼容时才启用与 FIPS 兼容的 SSL 模式。

注意

max_cursor_result_set_size 参数已被弃用。有关游标结果集大小的更多信息,请参阅 Amazon Redshift Database Developer Guide 中的游标约束

您可以使用数据库中的 SET 命令临时覆盖参数。SET 命令仅覆盖当前会话持续时间内的参数。除了上表中列出的参数之外,您还可以通过在数据库中设置 wlm_query_slot_count 来临时调整槽位计数。wlm_query_slot_count 参数不适用于参数组中的配置。有关调整槽位计数的更多信息,请参阅 Amazon Redshift Database Developer Guide 中的 wlm_query_slot_count。有关临时覆盖其他参数的更多信息,请参阅 Amazon Redshift Database Developer Guide 中的修改服务器配置

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

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

示例

下面的示例显示了如何配置 statement_timeout 参数组的 enable_user_activity_loggingmyclusterparametergroup 参数。

注意

为了便于阅读,该示例分为多行显示出来;但在实际的 AWS CLI 中,该示例显示为一行。

Copy
aws redshift modify-cluster-parameter-group --parameter-group-name myclusterparametergroup --parameters ParameterName=statement_timeout,ParameterValue=20000 ParameterName=enable_user_activity_logging,ParameterValue=true