这次我可以问一下是否有更改服务器配置而不重新创建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''。
或任何值得推荐的方式将非常感激。
最好的祝福。
无需重新创建群集。如果您想要更改整个群集的这些设置而不仅仅是会话,那么您可以通过AWS控制台中的modifying the cluster Parameter Group(或者如果您更喜欢使用Redshift API)来执行此操作。
只需添加或修改所需参数并重新启动群集,新设置即可生效。
请注意,对于时区设置,由于群集时区始终为UTC,因此无法将其设置为参数组的一部分。但是你可以set a default timezone for each database user,要做到这一点,你需要使用ALTER USER .. SET TIMEZONE ..语法。