주요 컨텐츠로 이동

Databricks 비용을 파악하기 위한 상위 5가지 시스템 테이블 쿼리

비용 추세를 파악하고, 팀별 지출을 귀속시키고, 이상 징후를 표시하고, 다음 달 청구 요금을 예측하는 5가지 SQL 쿼리

작성자: Drew Vander Wood

  • 다음 달이 아닌 오늘 바로 비용이 어디로 지출되고 있는지 확인하세요. 거의 실시간으로 업데이트되는 시스템 테이블을 사용하여 Databricks 지출을 제품, SQL 웨어하우스, 팀별로 세분화하는 3가지 SQL 쿼리를 제공합니다.
    • 비용 급증을 발생 당일에 바로 감지하세요. 14일 이동 기준선이 이동 평균을 기준으로 이상이 발생한 날을 표시하며, DBSQL 알림에 바로 연결할 수 있습니다.
    • 향후 지출을 예측해 보세요. AI_FORECAST는 단 하나의 쿼리로 최근 사용량을 외삽하여 30일 지출 전망을 보여주므로 수동으로 시계열 모델링을 할 필요가 없습니다.

Databricks 시스템 테이블은 Databricks를 어떻게 사용하고 있으며 비용이 얼마나 드는지에 대한 풍부한 정보를 제공합니다. 비용에 초점을 맞추면, `system.billing.usage` 테이블은 전체 Databricks 계정의 비용에 대한 전역적으로 집계된 보기를 제공하며, `system.billing.list_prices`와 함께 지출이 어디에 할당되고 있는지에 대한 깊은 인사이트를 제공할 수 있습니다. Databricks는 비용을 이해하는 데 훌륭한 출발점이 되는 사전 빌드된 사용량 대시보드(Usage Dashboard)를 제공하지만, 기본 테이블을 이해하고 이에 대한 쿼리를 작성하면 특히 Databricks의 시각화 기능을 활용할 때 인사이트를 한 단계 더 발전시킬 수 있습니다.

아래는 지출을 더 잘 이해하기 위한 출발점으로 사용할 수 있는 5가지 쿼리입니다. 먼저 제품별 일일 지출 내역을 간단히 살펴보는 것으로 시작하여, 특정 SQL Warehouses 및 태그의 관점에서 지출을 이해하는 단계로 나아가고, 마지막으로 이상 지출이 발생한 날을 식별하고 AI로 향후 지출을 예측합니다. 모든 쿼리는 반환된 결과를 통해 인사이트를 제공하지만, 데이터를 시각화하고 Genie로 추가 질문을 던질 수 있는 AI/BI 대시보드의 데이터 세트로 사용할 때 훨씬 더 효과적입니다.

쿼리 1: 제품별 일일 지출

쿼리가 보여주는 내용

첫 번째 쿼리는 단순히 일별 및 제품별 지출 내역입니다. 사용량 테이블(팩트)과 가격 책정 테이블(SCD Type 2 차원)을 조인하여 리스트 가격 기준의 시간 경과에 따른 지출을 구합니다. 위에서 언급했듯이, 제공된 리스트 가격 테이블을 관련 할인 정보가 포함된 맞춤형 테이블로 대체하여 정확한 비용을 확인할 수도 있습니다.

쿼리 사용 시기

이 쿼리는 Databricks 환경이 어떻게 사용되고 있는지, 어떤 제품의 사용량이 증가하거나 감소하고 있는지, 총 지출이 얼마인지 파악하는 데 적합합니다. Databricks 지출을 검토할 때는 항상 여기서부터 시작하는 것이 좋습니다.

주의할 점

`system.billing.usage`에는 Databricks 비용만 포함됩니다. 즉, 서버리스가 아닌 컴퓨팅을 사용하는 모든 경우에는 클라우드 인프라 지출이 포함되지 않으므로 관련 클라우드 콘솔(컴퓨팅, 네트워킹, 스토리지 등)을 통해 검토해야 합니다.

쿼리 2: Warehouse 비용 트렌드

쿼리가 보여주는 내용

Databricks SQL Warehouses는 SQL 분석가, 대시보드 및 Genie 에이전트를 지원하는 매우 강력한 도구이며, 이들의 비용 트렌드를 이해하는 것은 Databricks 계정을 관리하는 모든 사람에게 매우 중요합니다. 쿼리 2를 사용하면 웨어하우스의 일일 사용량 트렌드를 볼 수 있으며, 사용한 만큼 비용을 지불하므로 이는 사용량과 유사합니다.

쿼리 사용 시기

Databricks에서는 사용한 만큼 비용을 지불하므로 웨어하우스의 비용 트렌드를 볼 수 있다는 것은 사용량 트렌드를 보는 것과 유사합니다(적어도 가동 시간이 사용량과 일치한다는 점에서 그렇습니다). 따라서 이 쿼리는 기본적으로 가동 시간이 길어지거나 스케일 업된 시간이 늘어남에 따라 사용량이 높아질 수 있는 웨어하우스의 사용량을 보여줄 수 있습니다. 이 쿼리로 추가 분석할 웨어하우스를 식별한 후, `system.compute.warehouse_events` 시스템 테이블 또는 웨어하우스 모니터링 페이지를 통해 해당 웨어하우스를 추가로 조사하고 웨어하우스에 다른 스케일링 또는 자동 중지 설정을 사용할 수 있는지 확인할 수 있습니다. 또한 웨어하우스 사용량을 통해 그 위에 구축된 대시보드나 Genie 스페이스가 어떻게 사용되고 있는지, 비즈니스 사용자에게 이를 알리기 위해 더 많은 노력을 기울여야 하는지 여부에 대한 빠른 인사이트를 얻을 수 있습니다.

주의할 점

기본적으로 이 쿼리에는 삭제된 웨어하우스를 포함하여 검토 기간 동안 활성화되었던 모든 웨어하우스가 포함됩니다. 분석에서 삭제된 웨어하우스를 제외하려는 경우 추가 필터로 사용할 수 있는 열(`is_deleted`)이 포함되어 있습니다.

쿼리 3: 태그 기반 비용 귀속

시간 경과에 따른 태그 기반 비용 귀속의 예를 보여주는 막대형 차트

쿼리가 보여주는 내용

태그는 사용자, 프로젝트, 팀 또는 작업 공간 전반에서 사용량을 추적하는 데 사용할 수 있는 강력한 기능입니다. 구체적으로, 컴퓨팅 정책을 통해 사용자 지정 태그를 적용하고 서버리스 사용량 정책을 적용한 다음, 시스템 테이블 사용량 데이터를 분석할 때 해당 태그를 사용할 수 있습니다. 예를 들어, 허용되는 값이 마케팅, 재무, 엔지니어링과 같은 비즈니스 부서에 매핑되는 팀별 태그 지정을 강제하도록 선택할 수 있습니다. 그런 다음 그룹화할 태그를 매개변수화한 이 쿼리를 사용하여 팀별 사용량을 확인할 수 있습니다.

쿼리 사용 시기

이 쿼리는 태깅 전략을 사용하고 태그 값을 기준으로 비용을 확인하려는 경우 언제든지 사용할 수 있습니다. 테이블의 모든 레코드에 태그를 지정할 필요는 없으며, 레코드에 태그 키가 존재하지 않는 경우 '태그 없음(untagged)'으로 기록되어 분석에서 필터링하거나 태깅이 제대로 적용되지 않는 부분을 식별하는 데 사용할 수 있습니다.

주의할 점

앞서 언급했듯이 태그가 지정되지 않은 레코드는 '태그 없음(untagged)'으로 반환되므로 태깅이 적용되지 않는 영역을 식별하는 데 유용할 수 있지만, 태그가 일부 사용량에만 관련이 있는 경우에는 원치 않는 결과일 수도 있습니다. where 절에 `u.custom_tags[:tag_key] is not null`을 포함하도록 쿼리를 수정하여 태그가 없는 레코드를 완전히 필터링하거나, 둘 이상의 태그를 필터링하거나 쿼리의 group by에 여러 태그를 추가하여 한 단계 더 나아갈 수 있습니다.

쿼리 4: 일일 비용 이상 탐지

쿼리가 보여주는 내용

컴퓨팅 정책, 작업 시간 초과 설정 및 예산을 통한 우수한 제어 기능은 Databricks 플랫폼 관리자가 지출을 한도 내로 유지하는 데 도움이 되지만, 충분한 권한을 가진 사용자가 오래 실행되거나 예상보다 크게 확장된 상태로 유지되어 예기치 않은 지출 급증을 초래하는 작업이나 웨어하우스를 생성할 가능성은 항상 존재합니다. 쿼리 4는 이를 최대한 빨리 감지할 수 있도록 설계되었습니다. 간단히 말해, 14일 이동 평균 지출을 사용하여 일일 지출이 평균보다 표준 편차 1개 이상 높으면 '상승(elevated)', 2개 이상 높으면 '이상(anomaly)'으로 분류합니다.

쿼리 사용 시기

이 쿼리는 비용 모니터링 대시보드에 사용하기에 적합하며, 이전 날짜의 지출이 상승했거나 이상 수치를 보인 경우 관리자에게 자동으로 이메일을 보내는 알림의 기반으로 이 아이디어를 활용할 수도 있습니다.

주의할 점

일자별 워크로드가 매우 불규칙한 경우 사용량의 표준 편차가 매우 커져 가장 큰 사용량 급증을 제외하고는 이 쿼리로 감지하기 어려울 수 있습니다.

쿼리 5: 지출 예측

과거 및 예측 지출을 보여주는 예시 차트

쿼리가 보여주는 내용

이전 네 개의 쿼리에서는 과거 지출을 되돌아보는 데 집중했지만, 미래 지출을 파악하는 것은 Databricks 사용량의 전체적인 그림을 이해하는 데 매우 중요합니다. 보통은 복잡한 예측 모델링이 필요할 수 있지만, Databricks SQL AI Functions 중에는 Databricks 사용량 데이터와 같은 시계열 데이터 세트를 미래로 외삽할 수 있는 강력한 ai_forecast 기능이 있습니다. 함수에 입력되는 데이터의 양을 미세 조정하고 결과를 그래프로 시각화하여 Databricks 지출 예측을 매우 빠르게 생성할 수 있습니다.

쿼리 사용 시기

마찬가지로 이 쿼리는 비용 모니터링 대시보드에 추가하여 향후 지출이 어떻게 될지 파악하고 계획 및 예산 수립에 도움을 받는 데 적합합니다.

주의할 점

이 쿼리는 이전 데이터를 기반으로 예측하므로, 미래 계획에 사용할 때는 이 예측으로 예측되지 않는 계획 중인 신규 워크로드가 있는지 반드시 고려해야 합니다.

시스템 테이블 쿼리 사용해 보기 

이 쿼리들을 한 번 실행하면 어떤 일이 일어났는지 파악할 수 있습니다. 이 쿼리들을 AI/BI 대시보드에 고정하면 팀의 비용 관리 방식이 완전히 달라집니다. 각 쿼리를 데이터 세트로 추가하고, 날짜 범위 및 태그 매개변수를 연결하여 대시보드를 주간 비용 검토용으로 활용해 보세요. 다음 두 단계로 진행할 수 있습니다. 먼저 쿼리할 수 있는 전체 테이블 카탈로그를 확인하려면 Databricks 시스템 테이블 참조 문서를 북마크에 추가하고, 더 많은 예시 쿼리 를 살펴보며 이 다섯 가지 외에 툴킷을 더 확장해 보세요. 아직 워크스페이스가 없으신가요? 무료 체험을 시작해 보세요.    

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

최신 게시물을 이메일로 받아보세요

블로그를 구독하고 최신 게시물을 이메일로 받아보세요.