Amazon Redshift parameter groups
Overview
In Amazon Redshift, you associate a parameter group with each cluster that you create. A parameter group is a group of parameters that apply to all of the databases that you create in the cluster. These parameters configure database settings such as query timeout and date style.
About parameter groups
Each parameter group has several parameters to configure settings for the database.
The list of available parameters depends on the parameter group family to which the
parameter group belongs. The parameter group family is the version
of the Amazon Redshift engine to which the parameters in the parameter group apply. The format of
the parameter group family name is
redshift-
where
version
version
is the engine version. For example, the current
version of the engine is redshift-1.0
.
Amazon Redshift provides one default parameter group for each parameter group family. The default
parameter group has preset values for each of its parameters, and it cannot be modified.
The format of the default parameter group name is
default.
, where
parameter_group_family
parameter_group_family
is the version of the engine to
which the parameter group belongs. For example, the default parameter group for the
redshift-1.0
version is named default.redshift-1.0
.
At this time, redshift-1.0
is the only version of the Amazon Redshift engine.
Consequently, default.redshift-1.0
is the only default parameter group.
If you want to use different parameter values than the default parameter group, you
must create a custom parameter group and then associate your cluster with it. Initially,
the parameter values in a custom parameter group are the same as in the default
parameter group. The initial source
for all of the parameters is
engine-default
because the values are preset by Amazon Redshift. After you change
a parameter value, the source
changes to user
to indicate that
the value has been modified from its default value.
The Amazon Redshift console does not display the source
of each parameter. You
must use the Amazon Redshift API, the AWS CLI, or one of the AWS SDKs to view the
source
.
For parameter groups that you create, you can modify a parameter value at any time, or you can reset all parameter values to their defaults. You can also associate a different parameter group with a cluster. In some cases, you might modify parameter values in a parameter group that is already associated with a cluster or associate a different parameter group with a cluster. In these cases, you might need to restart the cluster for the updated parameter values to take effect. If the cluster fails and is restarted by Amazon Redshift, your changes are applied at that time. Changes aren't applied if your cluster is restarted during maintenance. For more information, see WLM dynamic and static properties.
Default parameter values
The following table shows the default parameter values at a glance with links to more
in-depth information about each parameter. These are the default values for the
redshift-1.0
parameter group family.
Parameter name | Value | More information |
---|---|---|
auto_analyze |
true |
auto_analyze in the Amazon Redshift Database Developer Guide |
auto_mv |
true |
Automated materialized views in the Amazon Redshift Database Developer Guide |
datestyle |
ISO, MDY |
datestyle in the Amazon Redshift Database Developer Guide |
enable_case_sensitive_identifier |
false |
enable_case_sensitive_identifier in the Amazon Redshift Database Developer Guide |
enable_user_activity_logging |
false |
Database audit logging in this guide |
extra_float_digits |
0 |
extra_float_digits in the Amazon Redshift Database Developer Guide |
max_concurrency_scaling_clusters |
1 |
max_concurrency_scaling_clusters in the Amazon Redshift Database Developer Guide |
query_group |
default |
query_group in the Amazon Redshift Database Developer Guide |
require_ssl |
false |
Configuring security options for connections in this guide |
search_path |
$user, public |
search_path in the Amazon Redshift Database Developer Guide |
statement_timeout |
0 |
statement_timeout in the Amazon Redshift Database Developer Guide |
wlm_json_configuration |
[{"auto_wlm":true}] |
Configuring workload management in this guide |
use_fips_ssl |
false |
Enable FIPS-compliant SSL mode only if your system is required to be FIPS-compliant. |
The max_cursor_result_set_size
parameter is deprecated. For more
information about cursor result set size, see Cursor constraints
in the Amazon Redshift Database Developer Guide.
You can temporarily override a parameter by using the SET
command in the
database. The SET
command overrides the parameter for the duration of your
current session only. In addition to the parameters listed in the preceding table, you
can also temporarily adjust the slot count by setting wlm_query_slot_count
in the database. The wlm_query_slot_count
parameter is not available for
configuration in parameter groups. For more information about adjusting the slot count,
see wlm_query_slot_count in
the Amazon Redshift Database Developer Guide. For more information about temporarily
overriding the other parameters, see Modifying the server
configuration in the Amazon Redshift Database Developer Guide.
Configuring parameter values using the AWS CLI
To configure Amazon Redshift parameters by using the AWS CLI, you use the
modify-cluster-parameter-group
command for a specific parameter group.
You specify the parameter group to modify in parameter-group-name
. You use
the parameters
parameter (for the
modify-cluster-parameter-group
command) to specify name/value pairs for
each parameter that you want to modify in the parameter group.
There are special considerations when configuring the
wlm_json_configuration
parameter by using the AWS CLI. The examples
in this section apply to all of the parameters except
wlm_json_configuration
. For more information about configuring
wlm_json_configuration
by using the AWS CLI, see Configuring workload management.
After you modify parameter values, you must reboot any clusters that are associated
with the modified parameter group. The cluster status displays applying
for
ParameterApplyStatus
while the values are being applied, and then
pending-reboot
after the values have been applied. After you reboot,
the databases in your cluster begin to use the new parameter values. For more information
about rebooting clusters, see Rebooting a cluster.
The wlm_json_configuration
parameter contains some properties that
are dynamic and do not require you to reboot associated clusters for the changes to
be applied. For more information about dynamic and static properties, see WLM dynamic and static
properties.
Syntax
The following syntax shows how to use the modify-cluster-parameter-group
command to configure a parameter. You specify
parameter_group_name
and replace both
parameter_name
and
parameter_value
with an actual parameter to modify and a
value for that parameter. If you want to modify more than one parameter at the same
time, separate each parameter and value set from the next with a space.
aws redshift modify-cluster-parameter-group --parameter-group-name
parameter_group_name
--parameters ParameterName=parameter_name
,ParameterValue=parameter_value
Example
The following example shows how to configure the statement_timeout
and
enable_user_activity_logging
parameters for the
myclusterparametergroup
parameter group.
For readability purposes, the example is displayed on several lines, but in the actual AWS CLI this is one line.
aws redshift modify-cluster-parameter-group --parameter-group-name myclusterparametergroup --parameters ParameterName=statement_timeout,ParameterValue=20000 ParameterName=enable_user_activity_logging,ParameterValue=true
You can manage parameter groups using the console. For more information, see Managing parameter groups using the console.