Ktx: LLM 에이전트와 데이터 웨어하우스 사이의 간극 메우기

많은 조직에서 "데이터와 대화하기" 인터페이스에 대한 꿈은 종종 현실의 벽에 부딪힙니다. 범용 AI 에이전트는 SQL을 작성할 수 있는 능력은 있지만, 특정 회사의 데이터 웨어하우스의 미묘한 차이를 다루는 데 자주 어려움을 겪습니다. 이들은 종종 매 프롬프트마다 스키마를 다시 탐색하고, 지표를 위한 자체적인 로직을 만들어내며, 회사의 공식 보고서와 충돌하는 숫자를 생성합니다.

전통적인 시맨틱 레이어는 표준 지표와 조인을 정의함으로써 이를 해결하려고 시도하지만, 이를 유지 관리하는 데 엄청난 수동 작업이 필요하며 Notion 페이지, 위키, 팀 문서에 묻혀 있는 암묵적 지식을 포착하지 못합니다. Ktx는 기술적 메타데이터와 비즈니스 지식을 합성하여 에이전트가 웨어하우스를 정확하게 쿼리하는 방법을 가르침으로써 이 간극을 메우기 위해 설계된 자기 개선형 컨텍스트 레이어입니다.

문제점: 비즈니스 로직의 "환각"

에이전트에게 "월간 반복 매출(MRR)"을 요청하면, 에이전트는 어떤 테이블을 조인해야 하는지 또는 내부 테스트 계정을 제외하기 위해 어떤 필터를 적용해야 하는지 본질적으로 알지 못합니다. 구조화된 컨텍스트 레이어가 없다면, 에이전트는 두 가지 선택을 해야 합니다: 컬럼 이름을 기반으로 추측하거나 매번 사용자에게 정의를 물어봐야 합니다.

전통적인 시맨틱 레이어(LookML 또는 dbt MetricFlow와 같은)는 "진실"을 제공하지만, 종종 고립되어 있습니다. 비즈니스 로직은 dbt 프로젝트에 존재할 수 있는 반면, "이탈 고객"의 정의는 Notion 문서에 살고 있습니다. 에이전트는 일반적으로 이러한 단절된 소스들을 동시에 탐색할 수 없습니다.

Ktx의 작동 방식: 다차원 컨텍스트 레이어

Ktx는 단순히 프록시 역할을 하는 것이 아니라, 여러 자동화된 프로세스를 통해 데이터 환경의 포괄적인 지도를 구축합니다:

1. 자동화된 데이터 스택 매핑

모든 관계를 사람이 직접 매핑하는 대신, Ktx는 테이블을 샘플링하고, 메타데이터를 캡처하고, 사용 패턴을 분석하여 조인 가능한 컬럼을 감지합니다. 이는 시맨틱 레이어를 설정하는 데 일반적으로 수반되는 수동 오버헤드를 줄여줍니다.

2. 지식 인제스션(Knowledge Ingestion)

Ktx는 위키와 팀 지식 베이스의 콘텐츠를 인제스션합니다. 이 정보를 조직화하고, 중복을 제거하며, 결정적으로, 인간의 검토를 위해 모순점을 표시합니다. 이를 통해 위키에서 한 가지를 말하고 dbt 정의가 다른 것을 말할 때, 불일치가 무시되는 대신 강조됩니다.

3. 시맨틱 레이어 합성

조인 그래프를 통해 원시 테이블과 상위 수준의 지표를 결합함으로써, Ktx는 "chasm traps" 및 "fan traps"와 같은 일반적인 SQL 문제를 자동으로 해결합니다. 이를 통해 에이전트는 선언적으로 지표를 가져올 수 있습니다. 즉, 매 쿼리마다 표준 SQL 조인 로직을 처음부터 다시 작성할 필요 없이 "Revenue"를 요청할 수 있습니다.

4. 에이전트 실행 via MCP

Ktx는 CLI와 Model Context Protocol (MCP)를 통해 지식을 노출합니다. 이를 통해 Claude Code, Cursor 또는 OpenCode와 같은 에이전트가 Ktx를 도구로 사용하여, 위키와 시맨틱 레이어를 모두 가로질러 전체 텍스트 및 시맨틱 검색을 수행하여 올바른 데이터 경로를 찾을 수 있습니다.

비교: 범용 에이전트 vs 전통적 레이어 vs Ktx

Feature 범용 에이전트 전통적 시맨틱 레이어 Ktx
Warehouse Context 수동/임시적 수동 자동화됨
Join Detection 휴리스틱/추측 수동 자동화됨
Metric Definitions 즉석에서 생성됨 승인됨/재사용 가능 승인됨/재사용 가능
Knowledge Absorption 없음 없음 위키/Notion 통합
Contradiction Flagging 없음 없음 자동화됨
Agent Integration 부분적 없음 CLI + MCP

기술적 아키텍처 및 안전성

데이터 웨어하우스에 AI를 도입할 때의 주요 우려 사항 중 하나는 보안입니다. Ktx는 "read-only by design" 철학을 통해 이를 해결합니다. 데이터베이스에 절대 쓰기를 수행하지 않으므로 웨어하우스의 무결성을 보장합니다.

또한, Ktx는 로컬에서 실행됩니다. 스키마나 쿼리 결과를 호스팅 서비스로 보내지 않습니다. 로컬 환경을 떠나는 유일한 데이터는 구성된 LLM 제공업체(Anthropic 또는 Google Vertex AI와 같은)로 전송되는 데이터뿐입니다.

커뮤니티 인사이트: 문서화의 ROI

Hacker News 토론에서 사용자들은 이러한 도구의의 가치 제안이 시간이 지남에 따라 변화했음을 언급했습니다. 한 댓글 작성자, @lifeisstillgood,은 다음과 같이 관찰했습니다:

"10년 전에는 이러한 문서를 만드는 데 ROI가 거의 없었습니다. 하지만 오늘날에는 성공과 실패를의 차이입니다."

이는 데이터 엔지니어링의 근본적인 변화를를 강조합니다: 문서화는 더 이상 인간만을 위한 것이 아닙니다. 이제는 AI 에이전트가 우리 시스템과 상互動 interacting with our systems와 상호작용하기 위한 주요 인터페이스입니다. 추가적으로, 토큰 관리의 과제가 제기되었으며, 계층적 검색(high-level facts를 먼저 가져오고 필요할 때만 전체 텍스트를 가져오는 방식)이 토큰 비용을 팽창시키지 않으면서 에이전트를 유용하게 유지하는 가장 효과적인 데 방법입니다.

Ktx를 시작하기

Ktx는 PostgreSQL, Snowflake, BigQuery, ClickHouse, MySQL, SQL Server, 또는 SQLite를 사용하는 팀을 위해 설계되었습니다. dbt, Looker, 및 Metabase와 같은 기존 도구와 통합됩니다.

프로젝트를 초기화하려면 사용자는 다음을 실행할 수 있습니다:

npm install -g @kaelio/ktx
ktx setup
ktx status

이 작업은 ktx.yaml 구성, YAML 소스를 위한 semantic-layer/ 디렉토리, 그리고 비즈니스 컨텍스트를 위한 wiki/ 폴더를 포함하는 로컬 프로젝트 디렉토리를 생성합니다. 이를 통해 컨텍스트 레이어를 Git을 통해 버전 관리할 수 있으며 비밀 정보를 로컬에 유지할 수 있습니다.

Sources