Redshift:更改服务器配置或保持更改所有会话

问题描述 投票:0回答:1

这次我可以问一下是否有更改服务器配置而不重新创建Redshift实例..?

我知道我们可以在当前会话中通过set命令更改服务器配置,但我们希望将它们保留在所有用户会话中,特别是BI会话。

- Redshift服务器配置

name                           current_setting     new_setting
-------------------------------------------------------------------
datestyle                       SQL, YMD          ISO, YMD
timezone                           utc            Asia/Tokyo
describe_field_name_in_uppercase   off            on

如果在没有重新创建的情况下无法更改默认设置,我只是想知道Redshift可以有任何替代方式,如SQL Server的登录触发器,它可以允许用一些特殊的程序启动用户会话,如下所示;

-- ex. SQL Server Logon Trigger sample

CREATE TRIGGER [open_key_trigger_test_xxxx]
ON ALL SERVER
FOR LOGON
AS
BEGIN
begin try
IF ORIGINAL_LOGIN()= 'XXXX'
begin
-- certificate key open for encode/decode until the session end.
exec TEST_DWH.dbo.OpenKeys;   
end
end try
begin catch
print ERROR_Message()
rollback;
end catch
END;

如果可能的话,我们想在每个用户会话开始时执行set命令'set datestyle to'ISO,YMD''。

或任何值得推荐的方式将非常感激。

最好的祝福。

amazon-redshift
1个回答
1
投票

无需重新创建群集。如果您想要更改整个群集的这些设置而不仅仅是会话,那么您可以通过AWS控制台中的modifying the cluster Parameter Group(或者如果您更喜欢使用Redshift API)来执行此操作。

只需添加或修改所需参数并重新启动群集,新设置即可生效。

请注意,对于时区设置,由于群集时区始终为UTC,因此无法将其设置为参数组的一部分。但是你可以set a default timezone for each database user,要做到这一点,你需要使用ALTER USER .. SET TIMEZONE ..语法。

© www.soinside.com 2019 - 2024. All rights reserved.