우리는 많은 필터 (차량 연도, 모델, 제조사, 드라이버 이름 등)를 가지고 있습니다. 선택한 모든 필터는 5 ~ 15 초 사이에 실행되는 5-10 개의 SQL 쿼리를 생성합니다. 사용자가 필터를 매우 빠르게 표시한다고 가정 해 봅시다. 즉, 일부 드라이버를 선택하고 다음 차량을 선택하고 일부 데이터 범위를 15 초 이내에 사용자가 서버에 도달하여 SQL 쿼리를 실행하는 수십 개의 AJAX 요청을 보내고 데이터베이스가 막히거나, 점점 더 많은 쿼리를 얻고 각 실행에는 더 오래 걸립니다.AJAX 요청이 중단되었을 때 Redshift에서 SQL 쿼리를 중지하는 대신
AJAX 요청이 중단 될 때 쿼리를 중지시키는 해결책에 대해 생각했지만 쉬운 해결책은 아닙니다. AJAX 요청이 중단 될 때 쿼리를 중지하는 것보다 더 쉽고 간편한 솔루션이 있습니까?
분석 데이터에는 Redshift를 사용하고 사용자 데이터에는 PostgreSQL 등을 사용합니다. 우리는 결과를 캐시하는 고급 캐시를 사용합니다. Redshift는 dc2.large 인스턴스의 노드 수가 16 이고 WLM 구성에서 15 개의 동시 쿼리 을 설정했습니다 (쿼리는 대기열에 들어 가지 않습니다). 테이블, sortkeys 및 distkey에 대한 인코딩이 있습니다. 우리는 수십 개의 테이블을 가지고 있지만, 하나의 테이블에 약 300M의 레코드와 ~ 70 컬럼을 가진 모든 트랜잭션이 큰 입니다. AWS 콘솔의 Redshift Performance 탭에서 리더 노드가 과중한로드 중에 99-100 % 및 다른 노드에서 약 10-30 % 작동 함을 알 수 있습니다.
redshift 클러스터 및 쿼리 방법을 최적화해야합니다. 그 질문은 stackoverflow의 범위를 벗어난 것으로 생각합니다. 유능하고 숙련 된 적색 변속 전문가와의 상세한 분석과 일주일의 작업이 필요하기 때문입니다. "선택한 모든 필터가 5 ~ 15 초 사이에 실행되는 5 ~ 10 개의 SQL 쿼리를 생성합니다"라고 말하면 사용자가 적색 시프트로 잘못 접근 한 것일 수 있음을 나타냅니다. 당신이 그 쿼리에 대해 정교하게 설명하고 싶다면 어떻게 보이는지, 테이블에 얼마나 많은 데이터가 있는지, 우리가 도울 수 있습니다. –
감사합니다. 방금 게시물을 편집하고 추가 정보를 추가했습니다. – opax
opax, 오래 걸리는 검색어의 예를 보여주세요. 얼마나 걸리는지 함께? –