사용자가 실행한 SELECT보다 훨씬 많은 GET_CATALOGS가 발생하고 coordinator에 부하가 누적된다.
한 원본은 Python의 명시적 종료 처리로 해결됐다. 관련 케이스는 ODBC 오류 이후 과도한 metadata 호출을 조사한 기록이며 특정 driver 결함 수정 버전은 확인되지 않았다.
성공·예외 경로 모두에서 cursor와 connection을 명시적으로 닫고 재시도 횟수를 제한한다.
확인 수준: 원본에서 해결 확인 · 실행 절차 보강
적용 조건: <...>와 예시 DB·테이블·경로·수치는 실제 확인값으로 바꾼다. 명령과 메뉴는 참고 문서를 바탕으로 보강한 예시이며 대상 시스템에서 실행하지 않았다. 버전·원인에 따른 분기와 남은 확인 사항은 아래에 명시한다.
with pyodbc.connect(...) 자체가 연결 close를 보장한다고 가정하지 않는다.from contextlib import closing
import pyodbc
def run_probe():
with closing(pyodbc.connect('DSN=<configured-dsn>', autocommit=True)) as conn:
with closing(conn.cursor()) as cur:
cur.execute('SELECT 1')
return cur.fetchone()
No such file이 재현된다면 데이터 교체와 metadata 갱신이 완료된 다음 읽기를 재개한다. 일반 HDFS 파일 변경은 외부 파일 변경 후 Impala가 File Not Found 또는 이전 데이터를 조회하는 증상을 참고하고 Iceberg 파일을 수동 교체하지 않는다.정상 성공과 의도한 오류를 각각 재현해 client 종료 후 GET_CATALOGS가 계속 증가하지 않는지 확인한다.