O erro:
psycopg2.operationalerror: SSL SYSCALL error: EOF detected
A configuração:Fluxo de ar + Desvio para o vermelho + psycopg2
Quando:as consultas demoram muito tempo de execução (mais de 300 segundos).
Um tempo limite de soquete ocorre nesta instância. O que resolve essa variante específica do erro é adicionar argumentos keepalive à string de conexão.
keepalive_kwargs = {
"keepalives": 1,
"keepalives_idle": 30,
"keepalives_interval": 5,
"keepalives_count": 5,
}
conection = psycopg2.connect(connection_string, **keepalive_kwargs)
Redshift requer um
keepalives_idle
de menos de 300. Um valor de 30 funcionou para mim, sua milhagem pode variar. Também é possível que o keepalives_idle
argumento é o único que você precisa definir - mas certifique-se de keepalives
é definido como 1. Link para documentos sobre postgres keepalives.
Link para o documento do fluxo de ar informando sobre o tempo limite de 300.