Repolode
AfterShip

AfterShip/clickhouse-sql-parser

ClickHouse 방언 SQL을 타입이 지정된 AST로 파싱하고 쿼리를 포맷하거나 보기 좋게 정리하는 Go 라이브러리 및 CLI입니다.

스타
255
포크
62
열린 이슈
1
마지막 커밋
3일 전

어떤 프로젝트인가요?

clickhouse-sql-parser는 ClickHouse SQL 문을 Go에서 타입이 지정된 추상 구문 트리(AST)로 변환합니다. 라이브러리로 가져와 사용하거나 CLI로 실행할 수 있으며, AST를 출력하거나 한 줄로 압축된 형식으로 출력하고 들여쓰기와 줄바꿈을 적용해 쿼리를 보기 좋게 정리할 수 있습니다.

라이브러리는 ParseStmts를 사용하는 파서, AST 노드를 다시 SQL로 변환하는 포매터, Walk, WalkWithBreak, Find, FindAll, Transform 같은 순회 헬퍼를 제공합니다. 이를 활용하면 직접 문법을 작성하지 않고도 쿼리를 프로그래밍 방식으로 검사하거나 다시 쓸 수 있습니다.

이 프로젝트는 Go로 작성된 Spanner SQL 파서인 memefish에서 영감을 받았습니다. 출력 및 포맷 테스트 자료는 테스트 케이스로 생성되며, 새 구문을 추가할 때 clickhouse-local을 이용해 검증합니다.

핵심 기능

  • 01ClickHouse SQL 문을 Go에서 타입이 지정된 AST로 파싱합니다.
  • 02AST 노드를 SQL 문자열로 다시 포맷합니다.
  • 03들여쓰기와 줄바꿈을 적용해 쿼리를 보기 좋게 정리합니다.
  • 04트리를 순회하고 다시 쓰는 Walk, Find, FindAll, Transform 헬퍼를 제공합니다.
  • 05Go 라이브러리와 CLI로 사용할 수 있으며, go install 또는 Homebrew로 설치할 수 있습니다.

활용 사례

  • ClickHouse 쿼리의 린트 및 정적 분석
  • 쿼리에서 참조하는 테이블을 검사해 접근 제어 적용
  • 실행 전에 쿼리를 프로그래밍 방식으로 다시 작성
  • 에디터나 파이프라인에서 ClickHouse SQL 포맷팅

빠른 시작

  1. 1

    Go로 CLI 설치하기

    go install github.com/AfterShip/clickhouse-sql-parser@latest
  2. 2

    macOS에서는 대신 Homebrew로 설치하기

    brew install clickhouse-sql-parser
  3. 3

    쿼리 파싱 또는 포맷하기

    clickhouse-sql-parser -beautify "SELECT * FROM clickhouse WHERE a=100"

사용 전 알아둘 점

  • ClickHouse 방언의 구문만 파싱하므로 최신 SQL이나 특이한 SQL은 지원되지 않을 수 있습니다.

포함된 컬렉션

토픽

자주 묻는 질문

clickhouse-sql-parser은(는) 무엇인가요?
ClickHouse 방언 SQL을 타입이 지정된 AST로 파싱하고 쿼리를 포맷하거나 보기 좋게 정리하는 Go 라이브러리 및 CLI입니다. clickhouse-sql-parser는 ClickHouse SQL 문을 Go에서 타입이 지정된 추상 구문 트리(AST)로 변환합니다. 라이브러리로 가져와 사용하거나 CLI로 실행할 수 있으며, AST를 출력하거나 한 줄로 압축된 형식으로 출력하고 들여쓰기와 줄바꿈을 적용해 쿼리를 보기 좋게 정리할 수 있습니다.
clickhouse-sql-parser은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
clickhouse-sql-parser은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
clickhouse-sql-parser은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. clickhouse-sql-parser의 마지막 커밋은 2026년 11월 4일입니다.
clickhouse-sql-parser은(는) 어디에 사용할 수 있나요?
ClickHouse 쿼리의 린트 및 정적 분석 쿼리에서 참조하는 테이블을 검사해 접근 제어 적용 실행 전에 쿼리를 프로그래밍 방식으로 다시 작성 에디터나 파이프라인에서 ClickHouse SQL 포맷팅
clickhouse-sql-parser는 어떻게 설치하나요?
Go로 CLI 설치하기: go install github.com/AfterShip/clickhouse-sql-parser@latest macOS에서는 대신 Homebrew로 설치하기: brew install clickhouse-sql-parser 쿼리 파싱 또는 포맷하기: clickhouse-sql-parser -beautify "SELECT * FROM clickhouse WHERE a=100"
clickhouse-sql-parser은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/AfterShip/clickhouse-sql-parser

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트