반응형
Python을 활용하면 MSSQL 쿼리 실행을 반복하거나 예약 실행(자동화)할 수 있습니다. 이 글에서는 pyodbc
와 schedule
라이브러리를 사용하여 반복 쿼리 및 자동화 작업을 구현하는 방법을 정리해봅니다. ✅
📌 1. Python에서 MSSQL 연결하기
MSSQL과 연결하려면 pyodbc
를 사용합니다.
pip install pyodbc
import pyodbc
# MSSQL 연결 설정
conn = pyodbc.connect(
'DRIVER={ODBC Driver 17 for SQL Server};'
'SERVER=서버주소;'
'DATABASE=데이터베이스명;'
'UID=아이디;'
'PWD=비밀번호'
)
cursor = conn.cursor()
✅ ODBC 드라이버가 없다면 Microsoft 공식 ODBC 드라이버를 설치하세요.
🔄 2. 쿼리 반복 실행 함수 만들기
예를 들어, 매 1분마다 데이터를 조회하려면 아래처럼 작성합니다.
def run_query():
query = "SELECT COUNT(*) FROM Sales WHERE SaleDate = CONVERT(DATE, GETDATE())"
cursor.execute(query)
result = cursor.fetchone()
print("오늘 판매 건수:", result[0])
⏰ 3. 일정 주기로 실행 (자동 반복)
schedule
라이브러리를 활용하면 특정 시간 간격으로 작업을 반복할 수 있습니다.
pip install schedule
import schedule
import time
# 1분마다 쿼리 실행
schedule.every(1).minutes.do(run_query)
while True:
schedule.run_pending()
time.sleep(1)
💡 기타 실행 옵션:
schedule.every().day.at("10:30").do(run_query) # 매일 오전 10시 30분
schedule.every().hour.do(run_query) # 매 시간마다
schedule.every(5).seconds.do(run_query) # 5초마다
📤 4. 실행 결과를 파일로 저장하기 (선택 사항)
from datetime import datetime
def run_query():
query = "SELECT COUNT(*) FROM Sales WHERE SaleDate = CONVERT(DATE, GETDATE())"
cursor.execute(query)
result = cursor.fetchone()
# 로그 파일에 저장
with open("query_log.txt", "a") as f:
f.write(f"{datetime.now()} - 오늘 판매 건수: {result[0]}\n")
🎯 5. 실전 팁 & 에러 방지
- 쿼리 실행 중 예외 발생 시 자동 재시도 하도록 구성하는 것도 좋습니다.
- 너무 짧은 간격으로 반복할 경우, DB에 부하가 될 수 있으니 주의하세요.
- Windows 환경이라면
Task Scheduler
, 리눅스 환경이라면cron
과 함께 사용해서 Python 스크립트를 주기적으로 실행할 수 있습니다.
✅ 마무리
Python과 pyodbc
, schedule
만으로도 쉽게 MSSQL 반복 쿼리 실행과 자동화가 가능합니다.
정기 리포트, 모니터링 시스템, 자동 백업 스크립트 등 다양한 곳에 활용해보세요! 🚀
반응형
'Programming' 카테고리의 다른 글
🗂 Python에서 리스트 ↔ 문자열 변환 방법 총정리 (join, split 완전 이해하기) (1) | 2025.03.23 |
---|---|
🔐MSSQL에서 테이블 잠금(Lock)과 Deadlock 처리법 총정리 (0) | 2025.03.23 |
📤 MERGE 문으로 MSSQL에서 UPSERT 처리하는 방법 완벽 정리 (0) | 2025.03.22 |
🚀 MSSQL에서 레코드 가져오기 (TOP, OFFSET, LEAD 등) 완벽 정리 (0) | 2025.03.21 |
🚀 MSSQL에서 중복 데이터 처리(중복 제거 및 찾기) 완벽 가이드 (0) | 2025.03.20 |