여러 coordinator를 사용하는 Virtual Warehouse에서 ODBC 연결·후속 요청이 실패한다.
원본은 HTTPAuthCookies 변경 후 해결됐다. 공식 문서는 active-active coordinator 세션 라우팅에 impala.session.id가 필요함을 설명한다. 모든 HTTP 401의 원인이 쿠키인 것은 아니다.
실제 사용하는 ODBC DSN에 impala.session.id를 포함한 HTTPAuthCookies를 설정하고 새 연결로 검증한다.
확인 수준: 원본에서 해결 확인 · 실행 절차 보강
적용 조건: <...>와 예시 DB·테이블·경로·수치는 실제 확인값으로 바꾼다. 명령과 메뉴는 참고 문서를 바탕으로 보강한 예시이며 대상 시스템에서 실행하지 않았다. 버전·원인에 따른 분기와 남은 확인 사항은 아래에 명시한다.
odbc.ini의 해당 DSN, Windows는 애플리케이션과 같은 비트수의 ODBC Data Sources → System/User DSN → 해당 Impala DSN → Configure에서 HTTP 인증 쿠키 항목을 설정한다. UI에 없으면 드라이버가 지원하는 연결 문자열 속성으로 추가한다.HTTPAuthCookies=impala.auth,JSESSIONID,KNOXSESSIONID,impala.session.id
from contextlib import closing
import pyodbc
with closing(pyodbc.connect(
'DSN=<configured-dsn>;HTTPAuthCookies=impala.auth,JSESSIONID,KNOXSESSIONID,impala.session.id',
autocommit=True,
)) as conn:
with closing(conn.cursor()) as cur:
print(cur.execute('SELECT 1').fetchone())
JSESSIONID이다. 같은 요청에서 인증 자체가 거절되면 계정·토큰 만료를 별도로 확인한다. 서버 인증서 검증을 끄는 조치로 대체하지 않는다.여러 번 새 연결을 만들고 같은 세션에서 연속 SELECT를 수행해 401·Invalid session id 재발 여부를 확인한다.