How to change default value for parameter globally for redshift cluster

Viewed 647

I am using the new SUPER data type and I found that you can't access camel case fields unless you set downcase_delimited_identifier to False.

It's True by default.

I want to set it to false globally on the cluster ( i.e. persistently ).

But it seems this is not possible?

This page indicates you can use parameter groups for this purpose.

But that does not appear to be the case. There's 12 parameters set by default, and you can modify their values. But you can't add any new parameters.

I tried modifying the group using aws cli, but this didn't work either:

$ aws redshift modify-cluster-parameter-group --parameter-group-name my-redshift-parameter-group --parameters ParameterName=downcase_delimited_identifier,ParameterValue=false

An error occurred (InvalidParameterValue) when calling the ModifyClusterParameterGroup operation: Could not find parameter with name: downcase_delimited_identifier

Is it really true that you can't change a default value for a parameter for a cluster?

1 Answers

The parameters in the parameter group are cluster parameters. The parameter you are trying to set is a connection / session parameter (i.e. you type SET in during your connection). If you want to have a parameter set for every time you log in you can configure this with ALTER USER - https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html. If you want this to affect all users I believe you have to run ALTER USER for each user individually. Scripting this is fairly easy to do. Once the user has been altered the parameter will be set every time that user connects.

Related