Skip to main content
이 문서는 머신러닝 섹션의 일부입니다.

왜 피처 테이블 관리가 중요한가?

머신러닝 프로젝트에서 데이터 과학자들이 가장 많은 시간을 보내는 단계는 피처 엔지니어링(Feature Engineering) 입니다. 문제는 각자가 만든 피처가 노트북 곳곳에 흩어져 있어, 재사용이 어렵고 일관성이 깨지기 쉽다는 것입니다.
💡 피처 테이블(Feature Table) 이란 ML 학습에 사용되는 피처들을 기본 키(Primary Key) 와 함께 저장한 Delta 테이블입니다. Unity Catalog에 등록되어 검색, 공유, 리니지 추적이 가능합니다. Databricks Feature Engineering은 이러한 피처 테이블을 체계적으로 생성, 관리, 조회하는 프레임워크입니다.

핵심 개념

피처 테이블 vs 일반 Delta 테이블


피처 테이블 생성

FeatureEngineeringClient 사용

타임스탬프 키가 있는 피처 테이블

시계열 피처에는 타임스탬프 키 를 추가하여 Point-in-time Lookup을 지원합니다.

피처 명명 규칙 및 조직화

체계적인 피처 관리를 위해 일관된 명명 규칙 을 정하는 것이 중요합니다.

추천 명명 규칙

카탈로그 구조

💡 피처 검색: Unity Catalog에 등록된 피처 테이블은 Databricks UI의 Feature 탭에서 검색하고 메타데이터(설명, 태그, 리니지)를 확인할 수 있습니다. 팀 간 피처 공유에 매우 유용합니다.

FeatureLookup 상세

FeatureLookup은 피처 테이블에서 원하는 피처를 기본 키로 조인하여 가져오는 메커니즘입니다. 학습 데이터를 만들 때 라벨 데이터에 피처를 결합하는 핵심 도구입니다.

기본 사용법

FeatureLookup이 모델에 기록되는 원리

💡 핵심 원리: fe.log_model()로 모델을 저장하면, 어떤 피처 테이블에서 어떤 피처를 사용했는지가 모델에 기록됩니다. 서빙 시에는 기본 키만 전달하면 나머지 피처는 자동으로 피처 테이블에서 조회됩니다.

Point-in-time Lookups

시계열 데이터에서는 미래 데이터 누수(Data Leakage) 를 방지하기 위해 Point-in-time Lookup이 필수적입니다. 이벤트 발생 시점 기준으로 그 시점까지 알 수 있었던 피처만 가져옵니다.
💡 데이터 누수(Data Leakage) 란 학습 시에는 알 수 없는 미래 데이터가 피처로 포함되는 것을 말합니다. 예를 들어, 화요일에 발생한 거래의 사기 여부를 예측할 때 수요일의 피처 값을 사용하면 실제 서빙 환경과 달라집니다.

Point-in-time Lookup 동작 원리


온라인 vs 오프라인 스토어

온라인 스토어 퍼블리시


실습: 피처 테이블 전체 워크플로

다음은 피처 생성부터 모델 학습, 서빙까지의 전체 워크플로입니다.

피처 테이블 업데이트

기존 피처 테이블에 새로운 데이터를 추가하거나 갱신할 수 있습니다.
⚠️ 주의: overwrite 모드는 기존 데이터를 완전히 교체합니다. 점진적 업데이트에는 반드시 merge 모드를 사용하십시오.

모범 사례 및 안티패턴

모범 사례

안티패턴


정리


참고 링크