메인 콘텐츠로 건너뛰기
ODBC 드라이버용 프록시처럼 동작하는 단순한 HTTP 서버입니다. 주된 이유는 ODBC 구현에서 발생할 수 있는 segfault 또는 기타 오류로 인해 clickhouse-server 프로세스 전체가 중단될 수 있기 때문입니다. 이 도구는 HTTP를 통해 동작하며, 파이프, 공유 메모리 또는 TCP를 사용하지 않습니다. 이유는 다음과 같습니다:
  • 구현이 더 단순합니다
  • 디버깅이 더 쉽습니다
  • jdbc-bridge도 같은 방식으로 구현할 수 있습니다

사용법

clickhouse-server는 ODBC 테이블 함수와 StorageODBC에서 이 도구를 사용합니다. 하지만 다음 매개변수가 포함된 POST 요청 URL을 사용해 명령줄에서 독립 실행형 도구로 사용할 수도 있습니다.
  • connection_string — ODBC 연결 문자열.
  • sample_block — ClickHouse NamesAndTypesList 포맷의 컬럼 설명입니다. 이름은 백틱으로 감싸고, 타입은 문자열로 지정합니다. 이름과 타입은 공백으로 구분하며, 각 행은 줄바꿈으로 구분합니다.
  • max_block_size — 선택적 매개변수이며, 단일 블록의 최대 크기를 설정합니다. 쿼리는 POST 본문으로 전송됩니다. 응답은 RowBinary 포맷으로 반환됩니다.

예시:

$ clickhouse-odbc-bridge --http-port 9018 --daemon

$ curl -d "query=SELECT PageID, ImpID, AdType FROM Keys ORDER BY PageID, ImpID" --data-urlencode "connection_string=DSN=ClickHouse;DATABASE=stat" --data-urlencode "sample_block=columns format version: 1
3 columns:
\`PageID\` String
\`ImpID\` String
\`AdType\` String
"  "http://localhost:9018/" > result.txt

$ cat result.txt
12246623837185725195925621517
마지막 수정일 2026년 6월 10일