---
title: Direct Lake, Import도 DirectQuery도 아닌 세 번째 모드
description: 새로고침 없이도 최신 데이터가 보이는 이유, 그리고 왜 가끔 DirectQuery로 조용히 폴백되는지. Power BI 사용자가 헷갈리는 Direct Lake의 원리를 기존 두 모드와 비교해 정리했어요.
date: 2026-09-19
  tags: [Direct Lake, Power BI, 시맨틱 모델, Fabric, OneLake]
cards:
  - /cards/fabric-direct-lake-mode/card-01.png
  - /cards/fabric-direct-lake-mode/card-02.png
  - /cards/fabric-direct-lake-mode/card-03.png
  - /cards/fabric-direct-lake-mode/card-04.png
  - /cards/fabric-direct-lake-mode/card-05.png
  - /cards/fabric-direct-lake-mode/card-06.png
  - /cards/fabric-direct-lake-mode/card-07.png
author: Lissa
source: https://interlinear.work/notes/fabric-direct-lake-mode/
---

> **원문:** [Direct Lake overview](https://learn.microsoft.com/en-us/fabric/fundamentals/direct-lake-overview)
> **게시일:** 2026-06-15 · **저자:** Kelly Gremban

Power BI를 오래 써온 사람에게 스토리지 모드는 딱 두 가지였어요. 데이터를 통째로 복사해두는 Import, 아니면 매번 원본에 쿼리를 날리는 DirectQuery. Fabric에 Direct Lake라는 세 번째 이름이 등장했을 때 "그럼 둘 중 뭐랑 비슷한 건데"라는 질문이 자연스럽게 나와요. 답은 "둘 다 아니고, 둘의 장점만 골라 담으려 한 모드"예요.

## 세 모드를 한 줄로 구분하면

- **Import**: 원본 데이터를 복제해서 시맨틱 모델 안에 완전한 사본을 만들어요. 빠르지만 새로고침마다 데이터를 다시 복사해야 해요.
- **DirectQuery**: 매번 쿼리를 원본 데이터 소스로 그대로 넘겨요(federate). 최신 데이터를 보장하지만, 원본 DB가 리포트용 반복 쿼리에 최적화돼 있지 않으면 느려요.
- **Direct Lake**: OneLake에 있는 델타 테이블<sup>1</sup>을 대용량인 채로 메모리에 곧바로 적재해요. Import와 DirectQuery 둘 다 처리하는 VertiPaq<sup>2</sup> 엔진이 Direct Lake도 함께 처리하기 때문에, 쿼리 성능은 Import와 비슷한 수준을 기대할 수 있어요.

즉 Direct Lake는 "전체를 복사하지 않고도 VertiPaq의 속도를 쓰는" 방식이에요. 전체 데이터 볼륨이 용량 한도를 넘어서더라도, 쿼리에 실제로 필요한 데이터만 메모리에 올라가기 때문에 감당할 수 있어요.

## 새로고침이 사실상 사라지는 이유 — 프레이밍

Direct Lake가 가장 헷갈리는 지점이 여기예요. "새로고침 없이 최신 데이터가 보인다"는 말은 새로고침이라는 개념 자체가 없다는 뜻이 아니라, 새로고침의 의미가 바뀌었다는 뜻이에요.

Import 모드의 새로고침은 데이터를 통째로 다시 복사해서 캐시를 새로 만드는 작업이라 시간도 오래 걸리고 원본과 용량에 부하를 줘요. 반면 Direct Lake의 새로고침(프레이밍<sup>3</sup>이라고 불러요)은 메타데이터만 갱신해요. OneLake에 있는 델타 테이블의 최신 버전을 확인하고, 최신 파일을 가리키도록 참조만 바꾸는 작업이라 몇 초 안에 끝나요. 데이터 준비 자체는 Spark 잡, T-SQL DML, 데이터플로우, 파이프라인처럼 OneLake 쪽에서 이미 끝나 있고, Direct Lake는 그 결과를 빠르게 "가리키기"만 하는 셈이에요.

## Direct Lake도 두 종류로 나뉘어요

- **Direct Lake on OneLake**: 델타 테이블을 가진 여러 Fabric 데이터 소스를 한 시맨틱 모델에서 쓸 수 있어요. 이 방식은 DirectQuery로 폴백되지 않아요.
- **Direct Lake on SQL**: 단일 Fabric 데이터 소스(레이크하우스 또는 웨어하우스)의 데이터를 SQL analytics endpoint를 거쳐 참조해요. 델타 테이블과 SQL 뷰를 찾고 권한을 확인하는 데 이 엔드포인트를 쓰기 때문에, Delta 테이블에서 직접 데이터를 못 불러오는 상황—예를 들어 대상이 SQL 뷰이거나 웨어하우스가 세밀한 SQL 기반 접근 제어를 쓰는 경우—에는 **DirectQuery로 자동 전환**돼요. 이 폴백 여부는 시맨틱 모델의 **Direct Lake behavior** 속성으로 직접 제어할 수 있어요.

## 아무 데이터에나 무작정 켜면 안 되는 이유 — 용량 가드레일

Direct Lake는 Fabric 용량 라이선스(SKU)가 있어야 하고, SKU마다 테이블당 파케이 파일 수·행 그룹 수·행 수·모델 최대 크기 같은 가드레일이 걸려 있어요. 이 한도를 넘었을 때 동작이 두 방식에서 갈려요.

- **Direct Lake on OneLake**는 Import 모드와 비슷하게 새로고침 자체가 실패해요. 델타 테이블을 가드레일 안으로 최적화하기 전까지는 모델을 쿼리할 수 없어요.
- **Direct Lake on SQL**은 폴백이 켜져 있으면 DirectQuery 모드로 넘어가요. 새로고침은 경고와 함께 성공하고 쿼리도 결과를 돌려주지만, 성능은 떨어져요.

그래서 Direct Lake를 켜기 전에 델타 테이블을 얼마나 최적화해뒀는지가 곧 안정성과 직결돼요. 대용량 데이터를 다루는 IT 주도 분석 프로젝트, 특히 메달리온 아키텍처의 골드 레이어처럼 새로고침 지연 없이 최신 데이터를 빠르게 보여줘야 하는 시나리오에 Direct Lake가 잘 맞는 이유도 여기 있어요.

## Import·DirectQuery가 필요 없어진 건 아니에요

Direct Lake가 나왔다고 해서 나머지 두 모드가 낡은 선택지가 된 건 아니에요. 예를 들어 IT 팀 승인 없이 빠르게 데이터를 다듬어야 하는 셀프서비스 분석가에게는, Power Query로 데이터 준비까지 시맨틱 모델 안에서 끝낼 수 있는 Import 모드가 여전히 더 잘 맞아요. 시맨틱 모델 작성자가 원본 아이템을 고칠 권한이 없는 경우—예를 들어 IT가 관리하는 레이크하우스에 쓰기 권한이 없는 분석가—도 마찬가지예요.

그리고 Import 모드를 쓰더라도 Fabric과 완전히 무관해지는 건 아니에요. OneLake 통합 기능이 Import 테이블의 데이터를 별도 마이그레이션 작업 없이 자동으로 OneLake의 델타 테이블로도 써주기 때문에, 샷컷을 통한 레이크하우스 연동이나 SQL 조회, 노트북 활용 같은 Fabric의 이점을 Import 모드에서도 상당 부분 누릴 수 있어요. 하나의 시맨틱 모델 안에서 Direct Lake on OneLake 테이블과 Import 테이블을 함께 쓰는 복합 모델(composite model)<sup>4</sup> 구성도 지원돼요.

## 정리

Direct Lake는 Import의 속도와 DirectQuery의 신선함을 동시에 노리는 모드예요. 비결은 데이터를 복사하는 대신 OneLake의 델타 테이블을 그대로 메모리에 얹고, 새로고침을 데이터 복사가 아니라 메타데이터 갱신(프레이밍)으로 바꾼 것이에요. 다만 Direct Lake on SQL은 SQL 뷰 기반 테이블이나 세밀한 접근 제어 앞에서 DirectQuery로 조용히 폴백될 수 있고, 용량 가드레일을 넘으면 두 방식의 실패 양상도 서로 달라요. Import·DirectQuery가 여전히 유효한 선택지라는 점도 잊지 말고, 프로토타입으로 먼저 검증해보는 걸 권장해요.

---

## 어휘 주석

1. **델타 테이블(Delta table):** 파케이 파일에 트랜잭션 로그를 더해 ACID·시간 여행을 지원하는 OneLake의 기본 테이블 형식이에요.
2. **VertiPaq:** Power BI의 인메모리 컬럼형 쿼리 엔진이에요. Import와 Direct Lake 쿼리를 이 엔진이 처리하고, DirectQuery만 원본 데이터 소스로 쿼리를 그대로 넘겨요.
3. **프레이밍(framing):** Direct Lake 모델이 OneLake 델타 테이블의 최신 버전을 확인하고, 데이터를 복사하지 않은 채 참조만 최신 파일로 갱신하는 저비용 새로고침 작업이에요.
4. **복합 모델(composite model):** 하나의 시맨틱 모델 안에 Import, DirectQuery, Direct Lake처럼 서로 다른 스토리지 모드의 테이블을 함께 담는 구성이에요.