Windows에서의 ODBC API

Windows에서의 ODBC API (ODBC API on Windows)

Windows에서 DuckDB ODBC API를 쓰려면 몇 가지 절차가 필요해요. 드라이버 매니저부터 드라이버 설치, DSN 설정까지 차근히 따라가면 돼요.

출처: 문서

본문

설정 (Setup)

Windows에서 DuckDB ODBC API를 사용하려면 다음 단계가 필요해요:

  1. Microsoft Windows는 애플리케이션과 ODBC 드라이버 간의 통신을 관리할 ODBC Driver Manager가 필요해요. Windows의 Driver Manager는 odbccp32.dll DLL 파일과 기타 파일·도구로 제공돼요. 자세한 내용은 Common ODBC Component Files를 확인해요.

  2. DuckDB는 ODBC 드라이버를 asset으로 배포해요. Windows용은 [Windows ODBC asset (x86_64/AMD64)](https://github.com/duckdb/duckdb-odbc/releases/download/v{% if site.current_duckdb_odbc_version != "" %}{{ site.current_duckdb_odbc_version }}{% else %}{{ site.lts_duckdb_odbc_version }}{% endif %}/duckdb_odbc-windows-amd64.zip)에서 내려받아요.

  3. 아카이브에는 다음 산출물이 들어 있어요:

    • duckdb_odbc.dll: Windows용으로 컴파일된 DuckDB 드라이버.
    • duckdb_odbc_setup.dll: Windows ODBC Data Source Administrator 도구가 사용하는 설정 DLL.
    • odbc_install.exe: Windows에서 설정을 돕는 설치 스크립트.

    아카이브를 디렉터리(예: duckdb_odbc)에 압축 풀어요.

  4. odbc_install.exe 바이너리는 Windows에서 DuckDB ODBC 드라이버 설정을 수행해요. ODBC 레지스트리 항목을 구성하는 함수를 제공하는 Odbccp32.dll에 의존해요.

    영구 디렉터리(예: duckdb_odbc) 안에서 odbc_install.exe를 더블클릭해요.

    Windows 관리자 권한이 필요해요. 관리자가 아니면 User Account Control 프롬프트가 나타나요.

  5. odbc_install.exe는 기본 데이터베이스 :memory:로 ODBC 레지스트리에 기본 DSN 구성을 추가해요.

DSN Windows 설정 (DSN Windows Setup)

설치 후에는 Windows ODBC Data Source Administrator 도구 odbcad32.exe로 기본 DSN 구성을 변경하거나 새로 추가할 수 있어요.

Windows 시작을 통해서도 실행할 수 있어요:

기본 DuckDB DSN (Default DuckDB DSN)

새로 설치된 DSN은 Windows ODBC Data Source Administrator 도구의 System DSN에 보여요:

Windows ODBC Config Tool

DuckDB DSN 변경 (Changing DuckDB DSN)

기본 DSN(즉 DuckDB)을 선택하거나 새 구성을 추가하면 다음 설정 창이 표시돼요:

DuckDB Windows DSN Setup

이 창에서 DSN과 해당 DSN과 연결된 데이터베이스 파일 경로를 설정할 수 있어요.

더 자세한 Windows 설정 (More Detailed Windows Setup)

ODBC 드라이버를 구성하는 방법은 두 가지가 있어요. 아래에 설명하는 레지스트리 키를 변경하거나, SQLDriverConnect로 연결하는 거예요. 두 가지를 조합할 수도 있어요.

또한 ODBC 드라이버는 DuckDB에 포함된 모든 설정 옵션을 지원해요.

SQLDriverConnect에 전달된 연결 문자열과 odbc.ini 파일 양쪽에 설정이 있으면, SQLDriverConnect에 전달된 쪽이 우선해요.

설정 파라미터의 자세한 내용은 ODBC 설정 페이지를 참고해요.

레지스트리 키 (Registry Keys)

Windows의 ODBC 설정은 레지스트리 키를 기반으로 해요(ODBC 구성요소의 레지스트리 항목 참조). ODBC 항목은 현재 사용자 레지스트리 키(HKCU)나 시스템 레지스트리 키(HKLM)에 둘 수 있어요.

우리는 HKLM->SOFTWARE->ODBC 기반의 시스템 항목을 테스트하고 사용했어요. odbc_install.exeODBC.INIODBCINST.INI 두 하위 키가 있는 이 항목을 변경해요.

ODBC.INI는 사용자가 보통 드라이버용 DSN 레지스트리 항목을 넣는 곳이에요.

예를 들어 DuckDB의 DSN 레지스트리는 이렇게 생겼어요:

ODBCINST.INI에는 드라이버마다 하나씩 항목과 Windows ODBC 설정용으로 미리 정의된 다른 키들이 들어 있어요.

ODBC 드라이버 업데이트 (Updating the ODBC Driver)

새 버전의 ODBC 드라이버가 릴리스되면 새 버전을 설치하면 기존 것을 덮어써요. 하지만 설치 프로그램이 레지스트리의 버전 번호를 항상 업데이트하지는 않아요. 올바른 버전이 사용되도록 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\DuckDB Driver에 가장 최신 버전이 있는지, HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DuckDB\Driver에 새 드라이버로의 올바른 경로가 있는지 확인해요.

더 알아보기 (Learn more)