Background
Ontul

Ontul분산 통합 데이터 엔진

Ontul 주요 기능

배치 처리, 스트림 처리, 인터랙티브 SQL을 하나의 엔진으로 통합한 분산 데이터 엔진의 핵심 기능을 소개합니다.

통합 데이터 엔진

배치 처리, 스트림 처리, 인터랙티브 SQL 쿼리를 하나의 클러스터에서 실행합니다. 별도의 시스템 없이 모든 데이터 워크로드를 통합합니다.

Arrow 네이티브 실행 엔진

Apache Arrow 컬럼나 포맷으로 모든 데이터를 처리합니다. 벡터화 연산과 제로카피로 직렬화 오버헤드 없이 고성능을 실현합니다.

인터랙티브 SQL

Arrow Flight SQL을 통한 JDBC 연결(DBeaver, DataGrip)과 다중 카탈로그 페더레이션 쿼리를 지원합니다. JOIN, 윈도우 함수, CTE 등 표준 SQL을 완벽 지원합니다.

Flink 스타일 스트리밍

Spark의 마이크로배치가 아닌 Flink처럼 이벤트가 도착하는 즉시 처리하는 continuous processing 방식입니다. TUMBLING, SLIDING, SESSION 윈도우와 multi-worker 해시 셔플을 지원합니다.

Exchange Manager

Query/Batch/Streaming 모든 경로를 위한 통합 fault-tolerance 인프라입니다. 메모리 초과 시 data spill, 스트리밍 checkpoint 상태 저장을 하나의 시스템으로 관리하며, 모든 데이터는 KMS 봉투 암호화됩니다.

Exactly-Once 보장

Master 조율 barrier checkpoint로 transactional sink(Iceberg, JDBC, NeorunBase, Kafka Transactions)에서 exactly-once 전달을 보장합니다. Sink commit → offset commit 순서로 데이터 정합성을 확보합니다.

커넥터 아키텍처

플러그인 기반 커넥터로 다양한 데이터 소스에 접근합니다. Iceberg, NeorunBase, JDBC, Kafka, Elasticsearch 등을 런타임에 동적으로 등록/해제할 수 있습니다.

페더레이션 쿼리

여러 데이터 소스에 걸친 크로스 카탈로그 조인을 단일 SQL로 실행합니다. Iceberg, NeorunBase, JDBC 테이블을 하나의 쿼리로 결합합니다.

시맨틱 레이어

메트릭, 디멘전, 다국어 동의어, 거버넌스, 컨폼드 디멘전 조인, 파생 메트릭, 멀티테넌트 강제 필터를 정의하면 Ontul 플래너가 쿼리 시점에 자동 재작성합니다. SELECT revenue FROM sales 만 써도 SUM(...) 집계와 GROUP BY, JOIN, 행 필터까지 서버에서 처리됩니다.

Agentic AI 준비

내장 MCP 서버가 LLM 에이전트에게 메트릭 발견과 자연어 검색(한국어 매출 ↔ revenue), 인증 메타데이터를 제공합니다. 시맨틱 레이어가 집계·조인·RBAC을 서버에서 처리하므로 에이전트는 컬럼명만 알면 되며, 멀티테넌트 정책도 사용자 컨텍스트로 자동 적용됩니다.

Apache Iceberg v2 · v3 네이티브

Iceberg v2와 v3를 모두 네이티브로 지원합니다. 분산 INSERT/CTAS와 MOR 기반 DELETE/UPDATE/MERGE, hidden partitioning, schema evolution, time travel, branches/tags를 제공하며, v3에서는 position-delete 파일 대신 deletion vector(Puffin)를 직접 쓰고 읽습니다 — 모든 운영 기능을 단일 엔진에서.

보안 (IAM & KMS)

AES-256-GCM 봉투 암호화, 내장 KMS, Exchange Manager 데이터 암호화, 카탈로그/테이블/컬럼/행 수준 IAM 정책, STS 임시 자격 증명을 지원합니다.

BI 통합 (Tableau · Power BI · Looker)

Arrow Flight SQL JDBC로 Tableau, Power BI, Looker, DBeaver가 라이브 연결합니다. 시맨틱 뷰는 측정값(measure)·디멘전이 자동 분류되어 노출되며, /api/v1/bi/connection-info 엔드포인트가 드라이버 정보와 도구별 설정 가이드를 한 번에 제공합니다.

Agentic AI · Semantic Layer

시맨틱 레이어 — Agentic AI를 위한 단일 진실 공급원

One definition of truth per metric — enforced server-side.

Ontul의 시맨틱 레이어는 에이전트에게 두 가지를 줍니다. ① 숫자(메트릭) — 매출·이익률 같은 분석 정의를 한 번 정의하면 LLM 에이전트·Tableau·분석가가 모두 같은 숫자를 봅니다. ② 관련 컨텍스트(리트리버) — 텍스트나 이미지로 관련 문서를 찾는 멀티모달 검색. 메트릭이 "매출 얼마?"에 답한다면, 리트리버는 "관련 문서 찾아줘"에 답합니다. 에이전트는 한 인터페이스로 둘 다 가져옵니다.

핵심 기능

서버 사이드 쿼리 재작성

SELECT revenue, customer.region FROM sales 한 줄이면 Ontul 플래너가 SUM(amount * (1-discount)) 집계, LEFT JOIN customer ON ..., GROUP BY customer.region을 자동으로 재작성합니다. 클라이언트가 공식을 외울 필요 없습니다.

MCP 기반 메트릭 발견

LLM 에이전트는 ontul_search_metrics, ontul_describe_semantic_view 도구로 매출·revenue·net_revenue·sales_amount 등 다국어 동의어를 통해 메트릭을 찾고 정의를 읽습니다. 한 번 정의된 메트릭은 모든 에이전트가 공유합니다.

파생 메트릭 (Derived Metrics)

profit = revenue - cost, profit_margin = (revenue - cost) / revenue 처럼 다른 메트릭을 참조해 정의합니다. Ontul 플래너가 재귀적으로 풀어주며 순환 참조는 자동 감지합니다.

컨폼드 디멘전 조인

한 번 선언한 조인은 사용될 때만 자동 주입됩니다. SELECT customer.region, revenue 라고 쓰면 LEFT JOIN customer ON ... 가 자동으로 붙고, 미참조 조인은 plan에서 제외되어 비용이 들지 않습니다.

멀티테넌트 강제 필터

뷰 단위 또는 메트릭 단위로 tenant_id = ${user.attr.tenant_id} 같은 강제 필터를 선언합니다. 인증된 사용자 컨텍스트에서 자동 치환되어 BI 대시보드든 LLM 쿼리든 동일한 RLS 정책이 일관되게 적용됩니다.

거버넌스 · RBAC

메트릭별 allowedRoles로 접근 제어, DRAFT → CERTIFIED → DEPRECATED 라이프사이클, 인증자/인증일시 감사, 자유로운 태그를 지원합니다. 재작성 시점에 검증되어 인증되지 않은 사용자에게는 공식조차 노출되지 않습니다.

리트리버 — 한 번에 멀티모달 검색

에이전트가 텍스트나 이미지로 "관련된 것"을 찾을 때 쓰는 검색 객체입니다. 벡터(의미)·키워드(BM25)·그래프(관계)를 NeorunBase에서 한 번에 실행하고, 메트릭과 똑같은 IAM·권한으로 보호됩니다. 에이전트는 SQL을 쓰지 않고 값만 채우면 되고 — 그게 곧 RAG입니다. (HYBRID_SEARCH / GRAPH_NEIGHBORS를 거버넌스되는 retriever 객체로 정의해 Ontul을 통해 푸시다운)

한 줄로 충분합니다

사용자가 작성하는 SQL
SELECT customer.region, profit_margin
FROM saas.core.sales
WHERE ship_date >= DATE '2024-01-01';
Ontul이 실제로 실행하는 SQL
SELECT customer.region,
       (SUM(amount) - SUM(unit_cost * quantity)) / SUM(amount)
         AS profit_margin
FROM saas.core.sales
LEFT JOIN saas.core.customer customer
  ON sales.customer_id = customer.id
WHERE ship_date >= DATE '2024-01-01'
  AND tenant_id = 'acme-co'           -- 자동 RLS
  AND status = 'COMPLETED'             -- 메트릭별 필터
GROUP BY customer.region;

Agentic AI에 어떤 의미인가

환각 방지

메트릭 공식은 한 번만 정의되어 서버에서 강제됩니다. LLM이 SUM(amount) 대신 AVG(amount)를 잘못 추측해도 — 메트릭 이름만 맞으면 — 항상 옳은 집계가 실행됩니다.

권한 자동 전파

에이전트가 보는 메트릭과 행은 사용자의 IAM 정책이 정확히 결정합니다. 별도의 prompt-level 권한 로직이 필요 없고, 우회도 불가능합니다.

다국어 친화

"매출 어떻게 돼?" 같은 한국어 질문도 동의어 매칭으로 즉시 revenue 메트릭을 찾아냅니다. 비즈니스 용어는 팀마다 다르고, 시맨틱 레이어가 그 격차를 메웁니다.

BI · AI 일관성

Tableau에서 보는 revenue 와 LLM 에이전트가 답하는 revenue 는 같은 SQL로 실행됩니다. 두 채널 간 숫자 불일치가 사라집니다.

활용 사례

통합 데이터 처리

별도의 배치/스트리밍/쿼리 클러스터 없이 하나의 Ontul 클러스터로 모든 데이터 워크로드를 처리합니다.

AI 에이전트 분석

LLM 에이전트가 MCP 도구로 메트릭을 발견하고 자연어 쿼리를 Ontul SQL로 변환합니다. 시맨틱 레이어가 집계·조인·IAM을 자동 처리해 환각 없이 검증된 비즈니스 정의로 답합니다.

실시간 데이터 파이프라인

Kafka에서 데이터를 수집하여 Ontul에서 처리 후 Iceberg 테이블로 적재하는 실시간 ETL 파이프라인을 구축합니다.

데이터 레이크 분석

Iceberg, JDBC 등 다양한 소스에 걸친 페더레이션 쿼리로 통합 분석을 수행합니다.

분석 + RAG를 한 백엔드로

별도의 시맨틱 분석 도구와 벡터·그래프 검색 스택을 따로 운영하지 않고, 메트릭(분석)과 리트리버(멀티모달 검색)를 한 엔진·한 거버넌스로 묶습니다. 에이전트가 한 MCP 세션에서 "숫자"와 "관련 근거"를 함께 가져옵니다.

Ontul 도입을 검토하고 계신가요?

Unified. Arrow-Native. Agentic AI-Ready.

배치, 스트리밍, SQL, 시맨틱 레이어를 하나로 통합한 분산 데이터 엔진으로 BI와 AI 에이전트가 같은 진실로 답하게 하세요.