주요 컨텐츠로 이동

Databricks 앱을 위한 트랜잭션 데이터 계층으로 Lakebase 사용 방법

Database icon with connected flow chart shapes.

Published: August 28, 2025

솔루션4분 소요

Summary

  • Lakebase를 사용한 저장소와 Databricks 앱을 사용한 UI로 Databricks에서 전체 스택 앱을 구축합니다.
  • 실제 예제를 따르기: Lakebase에 데이터를 저장하고 업데이트하는 휴가 요청 도구.
  • 단계별 지침 받기: 데이터베이스 설정, 앱에 연결, 프론트엔드 구축.

소개

전통적인 방식으로 내부 도구나 AI 기반 애플리케이션을 구축하면 개발자들은 반복적이고 오류가 발생하기 쉬운 작업의 미로에 빠집니다. 먼저, 그들은 전용 Postgres 인스턴스를 구동하고, 네트워킹, 백업, 모니터링을 설정한 다음, 그 데이터베이스를 사용하고 있는 프론트엔드 프레임워크에 연결하는 데 몇 시간 (또는 며칠)을 보내야 합니다. 그 위에, 그들은 사용자 인증 흐름을 직접 작성하고, 세부적인 권한을 매핑하고, 그 보안 제어를 UI, API 계층, 데이터베이스 전체에 동기화해야 합니다. 각 애플리케이션 컴포넌트는 관리되는 클라우드 서비스부터 자체 호스팅 VM까지 다른 환경에서 작동합니다. 이로 인해 개발자들은 다양한 배포 파이프라인, 환경 변수, 그리고 자격 증명 저장소를 다루는 데 어려움을 겪게 됩니다. 결과적으로, 스키마 마이그레이션 또는 새로운 역할과 같은 단일 변경이 여러 시스템을 통해 파급되어, 수동 업데이트, 광범위한 테스트, 그리고 지속적인 조정을 요구하는 파편화된 스택이 생성됩니다. 이 모든 오버헤드는 개발자들이 실제 가치를 창출하는 것, 즉 제품의 핵심 기능과 지능을 구축하는 것으로부터 주의를 분산시킵니다.

Databricks Lakebase와 Databricks Apps를 사용하면, 전체 애플리케이션 스택이 함께 위치하며, 이는 레이크하우스와 나란히 배치됩니다. Lakebase는 완전히 관리되는 Postgres 데이터베이스로, 낮은 지연 시간의 읽기 및 쓰기를 제공하며, 분석 및 AI 작업을 지원하는 동일한 기본 레이크하우스 테이블과 통합되어 있습니다. Databricks 앱은 UI를 위한 서버리스 런타임을 제공하며, 내장된 인증, 세분화된 권한, 그리고 Lakebase가 제공하는 동일한 데이터에 자동으로 적용되는 거버넌스 컨트롤을 함께 제공합니다. 이를 통해 트랜잭션 상태, 분석, AI를 결합한 앱을 여러 플랫폼을 결합하거나, 데이터베이스를 동기화하거나, 파이프라인을 복제하거나, 시스템 간 보안 정책을 조정하는 것 없이 쉽게 구축하고 배포할 수 있습니다.

왜 Lakebase + Databricks Apps인가

Lakebase와 Databricks Apps는 Databricks 플랫폼에서의 전체 스택 개발을 단순화하기 위해 함께 작동합니다:

  • Lakebase 는 빠른 읽기, 쓰기, 업데이트 기능을 갖춘 완전히 관리되는 Postgres 데이터베이스를 제공하며, 브랜칭, 시점 복구와 같은 현대적인 기능을 제공합니다.
  • Databricks Apps 는 애플리케이션 프론트엔드에 대한 서버리스 런타임을 제공하며, 내장된 신원, 접근 제어, Unity Catalog 및 기타 레이크하우스 구성 요소와의 통합이 가능합니다.

두 가지를 결합함으로써, Lakebase에서 상태를 저장하고 업데이트하고, 레이크하우스에서 관리되는 데이터에 접근하며, 모든 것을 안전하고 서버리스 UI를 통해 제공하는 대화형 도구를 구축할 수 있습니다. 이 모든 것은 별도의 인프라를 관리하지 않고 이루어집니다. 아래 예시에서는 이 설정을 사용하여 간단한 휴가 요청 승인 앱을 만드는 방법을 보여드리겠습니다.

시작하기: Lakebase와 함께 트랜잭션 앱 구축하기

이 안내서는 관리자가 팀에서의 휴가 요청을 검토하고 승인하는 데 도움이 되는 간단한 Databricks 앱을 만드는 방법을 보여줍니다. 이 앱은 Databricks Apps로 구축되었으며, 요청을 저장하고 업데이트하기 위해 백엔드 데이터베이스로 Lakebase를 사용합니다.

이 솔루션이 다루는 내용은 다음과 같습니다:

  1. Lakebase 데이터베이스 제공
    몇 번의 클릭으로 서버리스, Postgres OLTP 데이터베이스를 설정하세요.
  2. Databricks 앱 생성
    Streamlit 또는 Dash와 같은 Python 프레임워크를 사용하여 Lakebase에서 읽고 쓸 수 있는 대화형 앱을 만드세요.
  3. 스키마, 테이블, 접근 제어 설정
    필요한 테이블을 생성하고 앱의 클라이언트 ID를 사용하여 세밀한 권한을 할당합니다.
  4. 안전하게 Lakebase에 연결하고 상호 작용하기  
    Databricks SDK와 SQLAlchemy를 사용하여 앱 코드에서 Lakebase를 안전하게 읽고 쓸 수 있습니다.

이 안내서는 최소한의 작동 예제로 빠르게 시작할 수 있도록 설계되었습니다. 나중에 더 고급 설정으로 확장할 수 있습니다. 

단계 1: Lakebase 프로비저닝

앱을 구축하기 전에 Lakebase 데이터베이스를 생성해야 합니다. 이를 위해 Compute 탭을 선택하고, OLTP Database를 선택하고 이름과 크기를 제공합니다. 이렇게 하면 서버리스 Lakebase 인스턴스가 프로비저닝됩니다. 이 예제에서는 데이터베이스 인스턴스를 lakebase-demo-instance라고 부릅니다.

단계 2: Databricks 앱 생성 및 데이터베이스 접근 추가

이제 데이터베이스가 있으니, 이에 연결할 Databricks App을 생성해봅시다. 빈 앱에서 시작하거나 템플릿(예: Streamlit 또는 Flask)을 선택할 수 있습니다. 앱에 이름을 지정한 후, Database 를 리소스로 추가합니다. 이 예제에서는 미리 생성된 databricks_postgres 데이터베이스가 선택되었습니다.

데이터베이스 리소스를 자동으로 추가하면:

  • 앱에 CONNECT 및 CREATE 권한 부여
  • 앱의 클라이언트 ID에 연결된 Postgres 역할을 생성합니다

이 역할은 나중에 테이블 수준의 접근 권한을 부여하는 데 사용됩니다.

단계 3: 스키마, 테이블 생성 및 권한 설정

데이터베이스가 제공되고 앱이 연결되면 이제 앱이 사용할 스키마와 테이블을 정의할 수 있습니다.

1. 앱의 클라이언트 ID 검색

앱의 환경 탭에서 DATABRICKS_CLIENT_ID 변수의 값을 복사합니다. 이것이 GRANT 문에 필요합니다.

2. Lakebase SQL 편집기를 엽니다

Lakebase 인스턴스로 이동하고 새 쿼리를 클릭합니다. 이렇게 하면 데이터베이스 엔드포인트가 이미 선택된 상태로 SQL 편집기가 열립니다.

3. 다음 SQL을 실행하세요:

SQL 편집기를 사용하는 것은 이 과정을 빠르고 효과적으로 수행하는 빠른 방법이지만, 대규모로 데이터베이스 스키마를 관리하는 것은 버전 관리, 협업, 자동화를 지원하는 전용 도구를 사용하는 것이 가장 좋습니다. Flyway와 Liquibase와 같은 도구를 사용하면 스키마 변경을 추적하고, CI/CD 파이프라인과 통합하며, 데이터베이스 구조가 애플리케이션 코드와 안전하게 함께 발전하도록 보장할 수 있습니다.

단계 4: 앱 구축

권한이 설정되면 이제 앱을 구축할 수 있습니다. 이 예제에서는 앱이 Lakebase에서 휴가 요청을 가져와서 관리자가 승인하거나 거부할 수 있게 합니다. 업데이트는 동일한 테이블에 다시 작성됩니다.

단계 5: Lakebase에 안전하게 연결하기

SQLAlchemy와 Databricks SDK를 사용하여 토큰 기반 인증을 통해 앱을 Lakebase에 안전하게 연결합니다. Lakebase 리소스를 추가하면, PGHOST와 PGUSER가 자동으로 노출됩니다. SDK는 토큰 캐싱을 처리합니다.

단계 6: 데이터 읽기 및 업데이트

다음 함수는 휴가 요청 테이블에서 읽고 업데이트합니다:

위의 코드 스니펫은 Streamlit, Dash 및 Flask와 같은 프레임워크와 함께 사용하여 Lakebase에서 데이터를 가져와 앱에서 시각화하는 데 사용할 수 있습니다. 모든 필요한 종속성이 설치되어 있는지 확인하기 위해, 필요한 패키지를 앱의 requirements.txt 파일에 추가합니다. 코드 스니펫에서 사용된 패키지는 아래에 나열되어 있습니다.
 

Lakebase로 Lakehouse 확장

Lakebase는 완전히 관리되는 OLTP 데이터베이스를 플랫폼에 직접 통합함으로써 레이크하우스에 트랜잭션 기능을 추가합니다. 이는 읽기와 쓰기를 모두 필요로 하는 애플리케이션을 구축할 때 외부 데이터베이스나 복잡한 파이프라인의 필요성을 줄입니다.

Databricks와 기본적으로 통합되어 있기 때문에, 데이터 동기화, 신원 인증, 네트워크 보안 등이 레이크하우스의 다른 데이터 자산과 마찬가지로 가능합니다. 시스템 간에 데이터를 이동시키기 위해 사용자 정의 ETL 또는 역 ETL이 필요하지 않습니다. 예를 들어, 다음과 같은 접근 방식이 있습니다.

  • 온라인 피처 스토어와 동기화된 테이블을 사용하여 실시간으로 애플리케이션에 분석 기능을 제공할 수 있습니다(현재 사용 가능).
  • 운영 데이터를 델타 테이블과 동기화하여, 예를 들어 과거 데이터 분석(프라이빗 프리뷰 중)을 할 수 있습니다.

이러한 기능은 다음과 같은 생산 수준의 사용 사례를 지원하기 쉽게 만듭니다:

  • AI 에이전트의 상태 업데이트
  • 실시간 워크플로우 관리 (예: 승인, 작업 라우팅)
  • 추천 시스템이나 가격 엔진에 실시간 데이터 공급

Lakebase는 이미 개인화된 추천, 챗봇 애플리케이션, 워크플로우 관리 도구 등의 애플리케이션을 포함한 여러 산업에서 사용되고 있습니다.

다음은 무엇인가요?

이미 Databricks를 분석 및 AI에 사용하고 있다면, Lakebase는 애플리케이션에 실시간 상호 작용을 추가하는 것을 쉽게 만듭니다. 낮은 지연 시간의 트랜잭션, 내장 보안, 그리고 Databricks Apps와의 긴밀한 통합을 지원함으로써, 프로토타입에서 생산까지 플랫폼을 떠나지 않고 진행할 수 있습니다.

요약

Lakebase는 Databricks 앱과 매끄럽게 작동하는 트랜잭션 Postgres 데이터베이스를 제공하며, Lakehouse 데이터와의 쉬운 통합을 제공합니다. 외부 OLTP 시스템이나 수동 통합 단계가 필요 없이 데이터 및 AI 애플리케이션의 전체 스택 개발을 단순화합니다.

이 예제에서는 다음을 어떻게 하는지 보여주었습니다:

  • Lakebase 인스턴스 설정 및 접근 구성
  • Lakebase에 읽고 쓸 수 있는 Databricks App 생성
  • 최소한의 설정으로 안전한 토큰 기반 인증을 사용하기
  • Python과 SQL을 사용하여 휴가 요청 관리를 위한 기본 앱 구축

Lakebase는 현재 Public Preview 단계에 있습니다. 오늘 바로 Databricks 작업 공간에서 직접 시도해 볼 수 있습니다. 사용법과 가격에 대한 자세한 내용은 Lakebase 및 Apps 문서를 참조하십시오.

 

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요