Databricks에 앱 연결하기
Databricks에 앱을 연결해 웨어하우스 데이터를 쿼리하고, 라이브 대시보드를 만들며, 기존 테이블과 뷰를 기반으로 데이터 기반 도구를 구동하세요.
Databricks는 Lovable 앱이 웨어하우스 데이터, SQL 쿼리, 클러스터 리소스를 다룰 수 있게 해주는 데이터 인텔리전스 플랫폼입니다. Databricks 커넥터를 사용하면 CSV를 내보내거나 엔지니어링 티켓을 기다리지 않고 기존 Databricks 데이터 위에 앱과 대시보드를 구축할 수 있습니다.
Databricks를 연결하면 앱은 다음 작업이 가능합니다:
- 웨어하우스 데이터에 대해 SQL 쿼리 실행
- SQL warehouse 조회 및 관리
- Databricks 워크스페이스의 cluster 목록 조회
- 실시간으로 데이터를 쿼리하는 라이브 대시보드 구축
인증은 Databricks service principal을 사용합니다. 자격 증명은 Lovable의 게이트웨이에 안전하게 저장되며 브라우저나 앱의 프론트엔드 코드에 노출되지 않습니다.
주요 활용 사례 및 예시 앱
| 예시 앱 | 프롬프트 예시 | 설명 |
|---|---|---|
| 라이브 KPI 대시보드 | Databricks 웨어하우스를 쿼리해 MRR, DAU, 이탈률을 보여주는 대시보드를 만들어줘. 5분마다 자동 새로고침 해줘. | 정적인 슬라이드를 웨어하우스 데이터 기반 라이브 대시보드로 대체합니다. 앱이 Databricks를 직접 쿼리하여 수동 내보내기 없이 핵심 지표를 최신 상태로 보여줍니다. |
| 매출 파이프라인 추적기 | Databricks 테이블에서 매출과 딜 데이터를 가져와 지역과 분기별 필터가 있는 퍼널 뷰를 보여주는 파이프라인 추적기를 만들어줘. | RevOps 팀에 웨어하우스에 있는 파이프라인 데이터에 대한 셀프 서비스 뷰를 제공합니다. 앱이 CRM 데이터가 도달하는 Databricks 테이블을 쿼리하여 구조화된 필터링 가능한 뷰로 표시합니다. |
| 팀 지표 탐색기 | 사용자가 팀과 날짜 범위를 선택하면 Databricks에서 가져온 핵심 지표 차트를 볼 수 있는 지표 탐색기를 만들어줘. | 팀이 데이터 요청을 넣지 않고도 자체 지표를 탐색할 수 있게 합니다. 앱이 매개변수화 SQL 쿼리를 실행하고 각 팀의 데이터로 스코프된 차트로 결과를 렌더링합니다. |
| 데이터 품질 모니터 | 웨어하우스 테이블에 대해 데이터 품질 검사를 실행하고 이상을 표시하는 내부 도구를 만들어줘. | 데이터 문제가 다운스트림 소비자에게 도달하기 전에 잡아냅니다. 앱이 스케줄에 따라 검증 쿼리를 실행하고 실패를 깔끔한 내부 뷰로 보여줍니다. |
| 경영진 요약 봇 | 자연어 데이터 질문에 Databricks 웨어하우스를 쿼리해 답하는 Slack 봇을 만들어줘. | 웨어하우스를 경영진을 위한 대화형 인터페이스로 바꿉니다. 앱이 질문을 SQL로 변환하고, Databricks에 쿼리한 뒤, 포맷된 답을 Slack에 게시합니다. |
Databricks 연결 방식
Databricks 커넥터는 service principal 인증 (M2M OAuth)을 사용합니다. 개별 사용자로 연결하는 대신, Databricks에서 특정 테이블과 뷰에 대한 접근 권한을 가진 service principal을 만들고 그 자격 증명을 Lovable에 제공합니다.
데이터 접근에 미치는 영향
service principal의 권한이 해당 연결을 사용하는 모든 사람에게 제공되는 데이터를 결정합니다. Lovable은 개별 사용자의 Databricks 권한을 기준으로 결과를 필터링하지 않습니다.
예를 들어 HR 테이블에 접근 권한이 있는 service principal을 만들면 Lovable에서 해당 연결에 접근 권한이 있는 모든 사람이 HR 데이터를 쿼리할 수 있습니다.
권장 방식: 접근 역할당 하나의 service principal. 서로 다른 데이터로 스코프된 별도의 service principal을 만드세요:
databricks-engineering: 전체 웨어하우스 접근, 엔지니어만 이 연결을 Lovable에서 사용databricks-sales: 파이프라인과 매출 테이블만, 세일즈 팀이 이 연결을 사용databricks-company: 전사에 안전한 지표, 전체 구성원이 이 연결을 사용
Lovable은 각 연결을 누가 사용할 수 있는지 통제합니다. Databricks는 각 service principal이 무엇을 쿼리할 수 있는지 통제합니다. 두 가지가 결합해 사용자별 OAuth 없이 역할 기반 데이터 접근을 제공합니다.
워크스페이스에 Databricks 연결을 여러 개 만들 수 있으며, 각각 다른 service principal과 다른 접근 설정을 가질 수 있습니다.
Databricks는 안전한 OAuth 처리와 자동 토큰 갱신을 위해 Lovable의 게이트웨이 아키텍처를 사용합니다. 인증 및 사용량 제한에 대한 자세한 내용은 게이트웨이 기반 커넥터를 참고하세요.
Databricks 연결하기
워크스페이스 admin 또는 owner가 Databricks를 연결할 수 있습니다.
사전 준비
연결하기 전에 다음을 준비하세요:
- SQL warehouse가 하나 이상 있는 Databricks 워크스페이스
- OAuth secret이 구성된 Databricks service principal (자세한 내용은 Databricks M2M OAuth 설정 참고)
- service principal의 client ID와 client secret
- Databricks 워크스페이스 URL (예:
https://dbc-abc123.cloud.databricks.com) - Lovable 워크스페이스 admin 또는 owner 권한
Databricks 연결 설정
Databricks 커넥터로 이동
Connectors → App connectors에서 Databricks를 선택합니다.
새 연결 추가
Add connection을 클릭합니다.
연결 이름 지정
Display name에 연결 이름을 입력합니다 (예: Databricks Engineering 또는 Databricks Sales). service principal의 접근 수준을 반영하는 이름을 사용하세요.
자격 증명 입력
- Workspace URL: Databricks 워크스페이스 URL (예:
https://dbc-abc123.cloud.databricks.com) - Client ID: service principal의 OAuth client ID
- Client secret: service principal의 OAuth client secret
연결 생성
Create를 클릭합니다. Lovable이 자격 증명을 검증하고 Databricks 워크스페이스에 연결합니다.
연결되면 프로젝트에 연결을 링크하고 Databricks 데이터를 쿼리하는 앱을 만들기 시작할 수 있습니다.
접근 권한 설정
연결을 만든 뒤, 워크스페이스 내에서 누가 이 연결을 사용할 수 있는지 선택할 수 있습니다. 자세한 내용은 연결 수준 접근을 참고하세요.
Databricks에서는 service principal의 접근 수준이 어떤 데이터가 보일지 결정하므로 이 설정이 특히 중요합니다. 연결 접근을 적절한 팀으로 제한하면 승인된 사람만 해당 데이터로 빌드할 수 있습니다.
시맨틱 레이어 구축
모든 Databricks 사용 사례는 시맨틱 레이어의 이점을 얻습니다. 시맨틱 레이어는 핵심 지표의 의미, 사용할 테이블, 그리고 그 안에 담긴 가정에 대한 공유 정의입니다. "일간 활성 사용자"는 무엇을 의미하는지, MRR은 어떻게 계산되는지, 이탈에는 어떤 뷰를 사용해야 하며 trial은 제외되는지 같은 것들 말이죠.
이런 공유 컨텍스트가 없으면 각 앱이나 대시보드가 같은 지표를 서로 다르게 계산할 위험이 있습니다.
이미 시맨틱 레이어가 있는 경우
Databricks 워크스페이스에 이미 시맨틱 레이어가 있다면 (예: dbt metrics, Unity Catalog 태그, YAML 정의 파일) Lovable이 이를 참조하도록 지정하세요:
Use our semantic layer at catalog.schema.metrics_definitions when computing any KPIs. MRR is defined there as monthly_recurring_revenue.아직 없는 경우
Lovable에서 전용 프로젝트를 사용해 시맨틱 레이어를 빠르게 구축할 수 있습니다. 새 프로젝트를 만들고 Databricks에 연결한 뒤, 에이전트에게 웨어하우스를 탐색하고 정의를 초안으로 작성해달라고 요청하세요:
Let's build a full semantic layer for our Databricks warehouse. Please start by exploring the tables and forming your own understanding of the data. Create a sample dashboard that showcases your analysis of the key metrics, the tables they use, and the assumptions behind each query. We will walk through them together and correct anything that is wrong. Use these tables as the main starting point: [table names]가지고 있는 컨텍스트(이전 대시보드, 데이터 사전, dbt 스키마 파일 등)가 있으면 함께 투입하세요. Lovable이 이를 반영합니다. 에이전트에게 결과를 프로젝트 디렉터리에 Markdown 또는 YAML 파일로 저장하도록 요청하세요:
Save the finalized metric definitions as YAML files in this project. Other projects will reference them.저장되면 같은 Lovable 워크스페이스의 다른 Lovable 프로젝트들이 해당 프로젝트의 지식을 참조해 일관된 지표 정의를 기본으로 얻을 수 있습니다.
제한 사항
- 사용자별 데이터 스코핑 없음. 연결을 사용하는 모든 사람은 동일한 데이터(service principal의 데이터)를 봅니다. 우회책으로 접근 역할별로 별도의 service principal을 만드세요.
- 자동 캐싱 없음. 쿼리 결과는 기본적으로 캐시되지 않습니다. 원하는 간격으로 앱에 캐싱 로직을 추가하도록 Lovable에 요청할 수 있습니다.
- 퍼블리시된 앱은 공개적으로 접근 가능. 연결 수준 접근 제어는 빌드와 편집 권한을 통제할 뿐, 퍼블리시된 앱을 누가 사용할 수 있는지를 통제하지 않습니다. 앱이 민감한 데이터를 노출한다면 퍼블리시 전에 별도의 인증 계층을 추가하세요.
- 고객 관리형 비용 제어. Lovable은 쿼리 비용 상한을 부과하지 않습니다. warehouse 자동 중지, 쿼리 타임아웃, warehouse별 예산 같은 Databricks 측 제어를 사용해 비용을 관리하세요. 자세한 내용은 Databricks 사용량 및 비용 모니터링을 참고하세요.
Databricks 연결에서 프로젝트 연결 해제
Editor 이상 권한을 가진 사용자는 연결 자체를 삭제하지 않고 특정 프로젝트만 연결 해제할 수 있습니다. 연결은 다른 프로젝트에서 계속 사용할 수 있습니다.
연결 해제 방법:
Connectors 열기
Connectors를 열고 App connectors로 이동한 뒤 **Databricks**를 선택합니다.
연결 열기
관리할 연결을 엽니다.
프로젝트 선택
Linked projects에서 연결 해제할 프로젝트를 선택합니다.
확인
Unlink projects를 클릭하고 확인합니다.
연결 해제 후 해당 프로젝트는 이 연결을 통해 Databricks에 접근할 수 없습니다. 필요하면 다른 연결로 다시 연결할 수 있습니다.
Databricks 연결 삭제
워크스페이스 admin 또는 owner가 Databricks 연결을 삭제할 수 있습니다.
연결 삭제는 영구적이며 되돌릴 수 없습니다. 연결된 모든 프로젝트에서 인증 정보가 제거되며, 새 연결을 만들기 전까지 이 연결을 사용하던 앱은 동작을 멈춥니다.
삭제 전에 Linked projects 섹션에서 현재 이 연결을 사용 중인 프로젝트를 먼저 확인하세요.
삭제 방법:
Connectors 열기
Connectors를 열고 App connectors로 이동한 뒤 **Databricks**를 선택합니다.
연결 열기
삭제할 연결을 엽니다.
연결된 프로젝트 확인
Linked projects 섹션을 확인합니다.
삭제
Delete this connection에서 Delete를 클릭하고 확인합니다.