dbt Charts: AI 기반 대시보드를 위한 선언형 언어 오픈소스화
dbt Charts는 코드로 대시보드를 이동시켜 감독된 AI 생성 분석을 가능하게 한다
dbt Labs는 dbt Charts를 오픈소스로 공개했다. 이는 구조화된 YAML 형식을 사용해 상호작용 가능한 대시보드를 정의하기 위한 선언형 언어이다. 이 접근 방식은 AI 기반 데이터 분석에서 중요한 갈등 요소를 해결한다. 즉, AI 에이전트는 보고서를 쉽게 생성할 수 있지만, 일반적으로 감사, 유지보수, 버전 관리가 어려운 HTML, CSS, JavaScript 파일의 조각들로 만들어진다. 표준화된 코드 기반 사양을 제공함으로써 dbt Charts는 에이전트가 감독 가능하고 읽기 쉬우며 기존 소프트웨어 개발 라이프사이클에 통합된 대시보드를 생성할 수 있도록 한다.
BI 스택의 분리
전통적인 비즈니스 인텔리전스(BI) 도구는 역사적으로 데이터 수집 및 변환, 시각화, 인증 관리까지 모든 것을 처리하는 '풀스택'이었다. '현대 데이터 스택'(약 2015–2022년)은 인프라 계층을 분리하여 컴퓨팅을 클라우드 웨어하우스로 이동하고 변환 작업을 dbt와 같은 도구로 옮겼다.
dbt Labs에 따르면, 이 분리의 마지막 단계는 시각화 계층이다. UI 중심의 BI 도구는 인간에게는 효율적이지만, AI 에이전트는 코드, SQL, Git에 능숙하지만 독점적 UI에서는 어려움을 겪는다. dbt Charts는 시각화의 '방법'을 YAML 기반 코드 형식으로 이동시키면서, 데이터의 '무엇'을 위한 언어로 SQL을 유지한다.
기술 아키텍처 및 기능
선언형 YAML 사양
dbt Charts는 YAML 다이얼렉트를 사용해 단일 파일에서 전체 상호작용 대시보드를 선언한다. 이 파일은 일반적으로 다음을 포함한다:
- 변수: UI 필터 및 매개변수.
- 쿼리: 데이터를 위한 SQL 정의.
- 차트: 차트 유형(예: 영역, 막대, 도넛), 제목, SQL 컬럼을 축에 매핑하는 정의.
- 행: 보드에 있는 차트의 레이아웃 배열.
렌더링 및 확장성
dbt Charts CLI(dct)는 이러한 YAML 보드를 정적 SVG, HTML, PNG, PDF, 심지어 터미널까지 다양한 형식으로 렌더링할 수 있다. 시스템은 16개의 차트 유형에 걸쳐 1,100개 이상의 구성 옵션을 지원하며, 더 복잡한 시각화를 위한 '조합 차트'도 가능하다. 간결함을 유지하기 위해 언어는 차트가 보드에서 속성을 상속하고, 보드가 전역 테마에서 상속하는 계단식 스타일을 사용한다.
dbt 프로젝트 통합
dbt 프로젝트 내에서 사용할 경우, dbt Charts는 변환 계층과 깊은 통합을 제공한다:
- Git 기반 버전 관리:
charts/디렉터리는models/와 동일한 리포지토리에 위치하여, 데이터 모델과 해당 차트의 변경 사항이 단일 브랜치에서 함께 배포되고 CI를 통해 검증된다. - ref 함수: 쿼리는
ref()를 사용해 dbt 모델을 참조할 수 있다. 모델 이름이 변경되거나 컬럼이 누락되면dct validate명령어가 프로젝트 요청을 실패시켜 손상된 차트가 생산 환경에 도달하기 전에 막을 수 있다. - 세미틱 레이어: 향후 dbt 세미틱 레이어 지원이 계획되어 있어, 원시 SQL 대신 사전 정의된 메트릭을 사용한 보드를 가능하게 할 예정이다.
AI 에이전트 최적화
dbt Charts는 AI 에이전트에게 긴밀한 피드백 루프를 제공하도록 특별히 설계되었다. 출력이 엄격한 YAML 및 SQL 사양이기 때문에, 시스템은 자동 검증 및 시각화 검사를 제공한다. 예를 들어, CLI는 막대 차트의 밴드가 사용 가능한 픽셀 폭보다 너무 좁을 경우, 또는 테이블의 컬럼이 슬롯을 넘어서는 경우에 에이전트에게 경고할 수 있어, 보드가 렌더링되기 전에 에이전트가 레이아웃을 자가 수정할 수 있도록 한다.
dbtCharts.com 플랫폼
오픈소스 언어와 함께 dbt Labs는 dbtCharts.com의 공개 베타를 출시했다. 이 호스팅 플랫폼은 분리하기 어려운 BI의 나머지 '통합된' 측면을 처리한다: 호스팅, 접근 제어, 사용자 권한. 플랫폼에는 다음이 포함된다:
- 대화형 분석: 권한이 있는 읽기 전용 액세스를 갖춘 웨어하우스와 연결된 채팅 인터페이스.
- 시각 편집기: AI 생성 차트에 대한 최종 수동 조정을 위한 도구.
- Git 동기화: 채팅이나 시각 편집기를 통해 이루어진 모든 변경 사항은 Git 리포지토리의 YAML 파일로 다시 쓰여지며, 벤더 종속성을 방지한다.
커뮤니티의 시각과 반론
이 발표는 데이터 엔지니어와 개발자들 사이에서 YAML 기반 사양의 유용성에 대해 논의를 촉발했다.
이 접근 방식에 대한 주장
- 감사 가능성: 사용자들은 이 방식이 "읽기 쉬우며 유지보수가 가능하고 일관된 대시보드를 재현할 수 있는 아티팩트를 생성한다"고 지적하며, LLM이 종종 생성하는 "느낌만 있는 JS 코드"를 피할 수 있다고 언급했다.
- AI 우호성: 언어의 구조화된 성격은 복잡한 UI를 탐색하는 것보다 에이전트가 작업을 생성하고 검증하기 더 쉬워진다고 주장한다.
비판적 시각
- "YAML-헬" 우려: 일부 개발자는 YAML을 "언어"로 사용하는 것에 강한 불만을 표하며, 조건문과 변수 바인딩이 실제 프로그래밍 언어인 JavaScript나 TypeScript에 비해 데이터 형식에서는 지나치게 복잡해진다고 주장한다.
- 혁신 vs. 구현: 일부 비평가들은 BI를 분리하는 것이 새로운 개념이 아니며, AI가 지시만 받으면 JSON, XML, YAML 등 어떤 형식도 생성할 수 있기 때문에 YAML 선택이 과장된 혁신이라고 주장한다.
- 대안 도구: 커뮤니티 구성원들은 Malloy, Observable Framework, Vega-Lite와 같은 기존 대안을 지적하며, "대시보드를 코드로"라는 다른 접근 방식을 제시했다.
- "쓴 교훈": 한 논평자는 모델이 향상될수록 원시 라이브러리를 처음부터 작성하는 데 더 능숙해질 것이며, 전용 중간 사양이 필요 없어질 수 있다고 제안했다.
Sources
관련
- 프로젝트
- Dispatch
- 프로젝트
- Dispatch
- Dispatch