주요 컨텐츠로 이동

(번역: Youngkyong Ko) Original Post

이 글에서는 Lakeview 대시보드와 함께 Databricks SQL의 구체화된 뷰(Materialized View)를 사용하여 비즈니스에 새로운 데이터와 인사이트를 제공하는 방법을 공유합니다.

우리는 최근 데이터브릭스 데이터 인텔리전스 플랫폼에서 Lakeview 대시보드의 공개 프리뷰를 발표했습니다. Lakeview 대시보드는 데이터브릭스 고객을 위한 시각화 및 리포팅 환경을 만드는 데 있어 중요한 진전을 의미합니다. 시각화 기능이 크게 개선되고 공유 및 배포에 최적화된 간편한 디자인 환경을 제공합니다.

Lakeview 대시보드는 Databricks SQL(DBSQL) 데이터 웨어하우스에서 실행됩니다. DBSQL을 사용하면 기존 클라우드 데이터 웨어하우스에 비해 훨씬 저렴한 비용으로 원하는 도구를 이용하여 모든 SQL 및 BI 애플리케이션을 대규모로 실행할 수 있습니다.

구체화된 뷰를 통해 비즈니스에 새로운 데이터 제공

구체화된 뷰(MV)는 일반 뷰와 비슷하지만, 미리 계산되어 저장되고, 원본이 변경되면 자동으로 최신 상태로 유지됩니다. 최종 사용자의 쿼리와 대시보드는 소스 테이블에서 방대한 양의 데이터를 직접 쿼리하는 대신 미리 계산된 데이터를 쿼리하기 때문에 빠릅니다. 우리는 Lakeview의 사용 데이터와 이벤트 로그 리포트와 관련된 내부 사용 사례에서 대시보드 성능이 개선되는 것을 확인했습니다. 대시보드 응답 시간이 쿼리당 30초 이상에서 1~2초로 크게 단축되었습니다. 쿼리 속도 개선은 MV 쿼리 정의에 따라 크게 달라지므로 사용자가 직접 데이터에 실험해 보는 것이 좋습니다.

Materialized views

작동 방식과 이점에 대해 자세히 살펴보겠습니다.

  1. 첫째, MV는 선언적 방식으로 복잡한 변환을 신속하게 처리할 수 있으며, 업데이트/삭제 및 소스에 대한 모든 변경 사항을 자동으로 처리하고 모든 쿼리에 대해 정의할 수 있으므로 ETL에 이상적입니다.
  2. MV는 소스에 대한 업데이트를 점진적으로 새로 고치므로 새 데이터가 도착했을 때 뷰를 다시 작성할 필요가 없어 전체 컴퓨팅 시간이 단축되므로 데이터 흐름이 빨라지고 사용자는 보다 최신의 결과를 얻을 수 있습니다.
  3. 데이터가 미리 계산되므로 최종 사용자의 쿼리 및 대시보드가 더 빨라집니다. 기본 테이블의 방대한 데이터 볼륨을 쿼리하는 것보다 미리 계산된 데이터를 쿼리하는 것이 훨씬 빠릅니다.

또한 MV를 스트리밍 테이블과 함께 사용하여 데이터를 점진적으로 Databricks SQL 데이터 웨어하우스에 수집할 수 있으므로, 사용자가 스트리밍 방식으로 종단간 ETL 파이프라인을 구축할 수 있습니다.

단계별 가이드 - MV를 사용하여 Lakeview 대시보드 속도 높이기

다음 가이드에서는 MV를 활용하여 Lakeview 대시보드의 속도를 높이는 방법에 대한 단계별 지침을 제공합니다.

MV는 원시 데이터에서 집계를 계산하는 것과 같이, 대규모 원본 테이블과 복잡한 변환을 요약하는 데 가장 잘 사용됩니다.

1단계: MV 만들기

날짜와 우선 순위에 따라 주문의 총 수익을 분석하고 이를 매시간 갱신하는 작업을 가정해 보겠습니다. 일반적인 SQL 쿼리는 다음과 같습니다:

SELECT
     o_orderdate AS order_date,
     o_orderpriority AS order_priority,
     sum(o_totalprice) AS total_price
FROM
     demo.dss_acme.orders
WHERE
     o_orderdate > '2023-12-01'
AND
     o_orderdate < '2023-12-31'
GROUP BY ALL

Lakeview 대시보드에서 위의 쿼리를 사용할 수도 있지만, 여전히 데이터 새로 고침 요건을 충족하지 못하므로 매시간 쿼리를 실행할 방법을 찾아야 합니다. 또한 데이터 볼륨이 큰 경우 새 테이블을 만드는 데 1시간 이상 걸릴 수 있으며, 이 경우 데이터 최신성 요구 사항을 충족하지 못할 수 있습니다. MV를 사용하면 일정을 쉽게 설정할 수 있고 MV를 점진적으로 새로 고칠 수 있으므로 테이블을 완전히 다시 계산하는 것에 비해 업데이트가 매우 빨라질 수 있습니다.

MV에서 이 쿼리를 사용하려면 다음과 같이 쿼리를 CREATE MV 문으로 감싸고, DBSQL 쿼리에 넣은 다음 실행하면 됩니다:

create materialized view if not exists
  demo.dss_acme.orders_mw
  - - - Refresh hourly
  schedule cron '0 0 * * * ?'
as (
SELECT
     o_orderdate AS order_date,
     o_orderpriority AS order_priority,
     sum(o_totalprice) AS total_price
FROM
     demo.dss_acme.orders
WHERE
     o_orderdate > '2023-12-01'
AND
     o_orderdate < '2023-12-31'
GROUP BY ALL
);

schedule 연산자는 MV를 주기적으로 업데이트하도록 지시하며, 위의 경우 cron 구문은 매 시간마다 MV를 새로 고치도록 지정합니다. 이 부분이 없으면 대시보드가 MV를 만든 이후 도착한 새 데이터를 가져오지 못합니다. 자세한 내용은 CREATE MATERIALIZED VIEW 와 quartz 크론 구문 설명서를 참조하십시오. 카탈로그 탐색기에서 MV에 대한 쿼리 정의와 기타 세부 정보를 볼 수도 있습니다.

2단계: 다른 사용자에게 MV에 대한 액세스 권한 부여

아래 단계처럼 다른 사람이 대시보드를 볼 때 사용할 수 있도록 MV에 대한 액세스 권한을 부여해야 합니다:

  1. 다음 명령을 실행하여 MV가 있는 카탈로그에 대한 USE SCHEMA 액세스 권한을 부여합니다:
    GRANT USAGE ON SCHEMA demo.dss_acme TO user_or_role;
  2. 다음 명령을 사용하여 MV에 SELECT 권한을 부여합니다:
    GRANT SELECT ON demo.dss_acme.orders_mw TO user_or_role;

또는 SQL 쿼리를 실행하는 대신 데이터브릭스 카탈로그 탐색기 UI를 사용하여 권한을 관리할 수도 있습니다. 자세한 내용은 설명서를 참조하세요.

3단계: Lakeview 대시보드에서 MV 사용

이제 원래의 Lakeview 대시보드 쿼리를 미리 계산하기 위한 MV가 만들어 졌습니다. 마지막 단계는 새 MV를 사용하도록 기존 Lakeview 대시보드의 SQL을 수정하는 것입니다.

Lakeview 대시보드로 돌아가서 다음과 같이 코드를 업데이트합니다:

select * from demo.dss_acme.orders_mw;

4단계: 더 빨라진 대시보드를 즐겨보세요!

...다 됐습니다! 모든 것이 올바르게 작동했다면 이제 대시보드가 빨라졌을 것입니다!

Dashboard

결론

Lakeview 대시보드는 데이터브릭스 데이터 인텔리전스 플랫폼의 강력한 시각화 및 리포트 도구입니다. MV는 Lakeview 대시보드의 최종 사용자 응답 시간을 크게 개선하는 데 사용할 수 있는 새로운 기능입니다. 몇 번의 클릭만으로 MV를 Lakeview와 결합하여 더 빠른 최종 사용자 환경을 신속하게 만들 수 있습니다.

MV를 만들고 관리하려면 공개 프리뷰에 등록해야 합니다. 이 링크를 클릭하여 MV의 공개 프리뷰에 대한 액세스를 요청할 수 있습니다. Materialized ViewLakeview Dashboard에 대한 설명서도 참조하세요.

Databricks 무료로 시작하기

관련 포스트

모든 플랫폼 블로그 포스트 보기