주요 컨텐츠로 이동

Databricks SQL의 새로운 성능 개선 사항

The initial release of Databricks SQL offered significant performance benefits -- up to 6x price/performance -- compared to traditional cloud data warehouses as per the TPC-DS 30 TB scale benchmark

Published: September 8, 2021

제품Less than a minute

이제 AWS와 Azure에서 Databricks SQL 을 정식으로 사용할 수 있습니다.


Data + AI Summit 2020 Europe에서 처음 발표된 Databricks SQL 을 사용하면 데이터 레이크의 경제성으로 데이터 웨어하우징 성능을 제공하는 멀티 클라우드 lakehouse 아키텍처를 운영할 수 있습니다. 저희의 비전은 데이터 분석가가 특수 제작된 SQL UI와 인기 BI 도구에 대한 세계적 수준의 지원을 사용하여 lakehouse로부터 인사이트를 얻고 공유하기 위한, 간단하면서도 사용하기 즐거운 도구를 제공하는 것입니다.

이 블로그는 성능, 사용 편의성, 거버넌스라는 비전을 달성하기 위해 저희가 끊임없이 도입하는 혁신을 다루고자 하는 Databricks SQL 시리즈의 첫 번째입니다. 이 블로그에서는 다음에 대한 Databricks SQL의 일부로서 최근의 성능 최적화에 대해 다룰 것입니다:

  • 동시성이 높은 분석 워크로드
  • 지능형 워크로드 관리
  • 고도로 병렬화된 읽기
  • 클라우드 Fetch를 사용하여 비즈니스 인텔리전스(BI) 결과 검색 개선

 <a href="https://www.databricks.com/resources/ebook/rise-data-lakehouse?itm_data=performancedatabrickssql-blog-riselakehousebook" target="_blank">데이터 웨어하우스의 아버지 빌 인몬과 함께 레이크하우스가 미래의 데이터 아키텍처인 이유를 알아보세요</a>.</p><h2>대규모 쿼리를 넘어선 실제 성능</h2><p>Databricks SQL은 초기 릴리스부터 아래 TPC-DS 30TB 스케일 벤치마크에 따라 기존 클라우드 데이터 웨어하우스 대비 최대 6배의 가격 대비 성능을 보이는 등 상당한 성능 이점을 보였습니다. TPC-DS가 데이터 웨어하우징 공급업체에서 정의한 업계 표준 벤치마크라는 점을 고려하면, 우리는 이 결과가 정말 자랑스럽습니다.</p><figure><a href="https://www.databricks.com/wp-content/uploads/2021/08/sql-perf-blog-img-1.png" data-lightbox><img class="size-full wp-image-164737" style="width:512px;" src="https://www.databricks.com/wp-content/uploads/2021/08/sql-perf-blog-img-1.png" alt="Databricks SQL의 초기 릴리스는 TPC-DS 30TB 규모 벤치마크 기준으로 기존 클라우드 데이터 웨어하우스에 비해 최대 6배 향상된 가격 대비 성능을 제공했습니다." height="329"></a><p>&nbsp;30TB TPC-DS 가격 대비 성능(낮을수록 좋음)</p></figure><p>이 벤치마크는 ETL 워크로드 또는 심층 분석 워크로드와 같은 대규모 쿼리를 잘 시뮬레이션하지만, 고객이 실행하는 모든 것을 다루지는 않습니다. 이것이 바로 저희가 최근 몇 달간 수백 명의 고객과 긴밀히 협력하여 실제 데이터 분석 워크로드와 SQL 데이터 쿼리를 위해 빠르고 예측 가능한 성능을 제공해온 이유입니다.</p><p>오늘 프리뷰를 정식으로 공개하며, 지금까지 달성한 몇 가지 결과와 성능 향상을 공유하게 되어 매우 기쁩니다.</p><h2>시나리오 1: 동시성이 높은 분석 워크로드</h2><p>고객과 협력하면서 동시성이 높은 분석 워크로드가 작은 데이터 세트에서 실행되는 것이 일반적이라는 것을 알게 되었습니다. 직관적으로 볼 때 이는 타당합니다. 애널리스트는 보통 필터를 적용하고 과거 데이터보다 최신 데이터를 사용하여 작업하는 경향이 있기 때문입니다. 이러한 일반적인 사용 사례를 더 빠르게 만들기로 결정했습니다. 동시성을 최적화하기 위해 훨씬 더 작은 스케일 팩터(10GB)와 32개의 동시 스트림으로 동일한 TPC-DS 벤치마크를 사용했습니다. 32개의 봇이 시스템에 지속적으로 쿼리를 제출하고 있는데, 봇은 쿼리 실행 사이에 쉬지 않기 때문에 실제로는 훨씬 더 많은 수의 실제 사용자를 시뮬레이션합니다.</p><p>결과를 분석하여 병목 현상을 식별하고 제거했으며, 이 프로세스를 여러 번 반복했습니다. 수백 번의 최적화 끝에 동시성을 3배 향상시켰습니다! 이제 Databricks SQL은 대규모 쿼리와 사용자가 많은 소규모 쿼리 모두에서 최고의 클라우드 데이터 웨어하우스를 능가하는 성능을 보입니다.</p><figure><a href="https://www.databricks.com/wp-content/uploads/2021/08/Databricks-SQL-Perf-Gain-Blog-img-2.png" data-lightbox><img class="size-large wp-image-163664" style="width:1024px;" src="https://www.databricks.com/wp-content/uploads/2021/08/Databricks-SQL-Perf-Gain-Blog-img-2-1024x588.png" alt="Databricks SQL은 대규모 쿼리뿐만 아니라 많은 사용자가 이용하는 소규모 쿼리에서도 일부 최고의 클라우드 데이터 웨어하우스를 능가합니다. " height="588"></a><figcaption>10GB TPC-DS 시간당 쿼리, 32개 동시 스트림 (높을수록 좋음)</figcaption></figure><h2>시나리오 2: 지능형 워크로드 관리</h2><p>하지만 실제 워크로드는 크고 작은 쿼리로만 구성되지 않습니다. 일반적으로 작은 쿼리와 큰 쿼리가 혼합되어 있습니다. 따라서 Databricks SQL의 큐잉 및 로드 밸런싱 기능도 이를 고려해야 합니다. 애널리스트는 일반적으로 큰 쿼리보다 짧은 쿼리의 지연 시간을 더 중요하게 생각하기 때문에 Databricks SQL은 큰 쿼리보다 작은 쿼리를 우선으로 처리하는 이중 큐잉 시스템을 사용합니다.</p><figure><a href="https://www.databricks.com/wp-content/uploads/2021/08/Databricks-SQL-Perf-Gain-Blog-img-3.png" data-lightbox><img class="size-full wp-image-163665" style="width:861px;" src="https://www.databricks.com/wp-content/uploads/2021/08/Databricks-SQL-Perf-Gain-Blog-img-3.png" alt="Databricks SQL은 이중 큐 시스템을 사용하여 대규모 쿼리보다 소규모 쿼리를 우선 처리합니다. 분석가는 일반적으로 대규모 쿼리보다 소규모 쿼리의 지연 시간을 더 중요하게 여기기 때문입니다. " height="387"></a><p>&nbsp;이중 큐를 사용한 혼합 쿼리 큐잉 및 로드 밸런싱</p></figure>

시나리오 3: 고도로 병렬화된 읽기

데이터가 지속적으로 도착하는 IoT 수집과 같은 스트리밍 시나리오에서는 lakehouse의 일부 테이블이 많은 파일로 구성되는 경우가 많습니다. 레거시 시스템에서는 실행 엔진이 실제로 쿼리를 실행하는 것보다 이러한 파일을 나열하는 데 훨씬 더 많은 시간을 소비할 수 있습니다! 또한 고객들은 데이터 최신성을 위해 성능을 희생하고 싶지 않다고 말했습니다.

Databricks SQL에 비동기 및 고도로 병렬화된 IO가 포함되었음을 발표하게 되어 기쁩니다. 쿼리를 실행하면 Databricks는 현재 블록이 처리되는 동안 클라우드 스토리지에서 다음 데이터 블록을 자동으로 읽습니다. 이를 통해 작은 파일(1MB 파일의 경우 12배) 및 "콜드 데이터"(캐시되지 않은 데이터) 사용 사례에서도 전체 쿼리 성능이 상당히 향상됩니다.

Databricks는 현재 블록이 처리되는 동안 데이터의 다음 블록을 자동으로 읽을 수 있는 새로운 스캔 기술을 설계하여 작은 파일에 대한 전체 query 성능을 크게 향상시켰습니다.

작은 파일에 대한 고병렬 읽기 시나리오 벤치마크(초당 스캔 행 수)(높을수록 좋음)

시나리오 4: 클라우드 Fetch를 사용하여 BI 결과 검색 개선

쿼리 결과가 계산된 후 마지막 단계는 시스템이 클라이언트(일반적으로 PowerBI 또는 Tableau와 같은 BI 도구)에 결과를 전달하는 속도를 높이는 것입니다. 레거시 클라우드 데이터 웨어하우스는 종종 리더(드라이버라고도 함) 노드에서 결과를 수집하여 클라이언트로 다시 스트리밍합니다. 몇 메가바이트 이상의 결과를 가져오는 경우 BI 도구의 사용 환경이 크게 느려집니다.

그래서 저희는 Cloud Fetch라는 새로운 아키텍처로 이 접근 방식을 재구상했습니다. 대규모 결과의 경우 Databricks SQL은 모든 컴퓨팅 노드에서 클라우드 스토리지로 결과를 병렬로 쓰고, 미리 서명된 URL을 사용하여 파일 목록을 클라이언트에 다시 보냅니다. 그러면 클라이언트는 클라우드 스토리지에서 모든 데이터를 병렬로 다운로드할 수 있습니다. 실제 고객 시나리오에서 최대 10배의 성능 향상을 보고드리게 되어 기쁩니다! 저희는 이 기능을 자동으로 활성화하기 위해 가장 인기 있는 BI 도구와 협력하고 있습니다.

대규모 결과의 경우, 기본 클러스터는 이제 모든 컴퓨팅 노드에 걸쳐 클라우드 스토리지에 병렬로 쓴 다음, 미리 서명된 URL을 사용하여 파일 목록을 클라이언트로 다시 전송합니다.
“클라우드 Fetch는 더 빠르고 더 높은 대역폭의 연결을 가능하게 합니다”

Databricks SQL 살펴보기

이는 개방형 접근 방식의 이점을 유지하면서 데이터 레이크에서 동급 최고의 SQL 성능을 제공하기 위해 Databricks SQL에 도입된 성능 최적화 및 혁신의 몇 가지 예입니다. 어떻게 작동하나요?

Databricks SQL의 내부 구조(marchitecture)
Databricks SQL 심층 분석

오픈 소스 Delta Lake 는 Databricks SQL의 기반입니다. 이는 ACID 트랜잭션, 데이터 리니지, 버전 관리, Data Sharing 등을 통해 데이터 웨어하우스 시스템의 장점을 정형, 비정형, 반정형 데이터 모두에 제공하는 개방형 데이터 스토리지 형식입니다.

Databricks SQL의 핵심은 SQL 워크로드를 더 빠르게 실행하기 위해 Databricks에서 작성된 새로운 네이티브 벡터화 엔진인 Photon입니다. 자세한 내용은 블로그 를 읽어보시거나 Radical Speed for SQL Queries on Databricks: Photon Under the Hood 를 시청하세요.

마지막으로 중요한 것은, 데이터팀(분석가, data scientists, SQL 개발자)이 Databricks SQL에서 선호하는 도구를 쉽게 사용할 수 있도록 수많은 소프트웨어 공급업체와 긴밀히 협력해 왔다는 점입니다. 앞서 설명해 드린 동시성 및 짧은 쿼리 성능 개선 덕분에 속도를 높이는 동시에 싱글 사인온을 사용하여 쉽게 연결하고 데이터를 가져오고 인증할 수 있도록 했습니다.

다음 단계

이는 시작에 불과하며, 저희는 계속해서 귀를 기울여 서비스에 더 많은 혁신을 더할 계획입니다. Databricks SQL은 이미 Atlassian 이나 Comcast와 같은 많은 조직에 엄청난 가치를 제공하고 있으며, 여러분의 피드백도 몹시 기대됩니다!

기존 Databricks 사용자는 Azure Databricks 또는 AWS용 시작 가이드를 사용하여 오늘 바로 Databricks SQL 사용을 시작할 수 있습니다. 아직 Databricks 사용자가 아닌 경우 databricks.com/try-databricks 를 방문하여 무료 체험을 시작하세요.

마지막으로 Databricks Lakehouse platform에 대해 더 자세히 알아보고 싶으시다면 웨비나 – 데이터 관리, 좋은 것, 나쁜 것, 이상한 것을 시청하세요. 또한 실습 경험을 위한 Databricks SQL 온라인 교육 과 맞춤형 워크숍을 제공하고 있습니다. 자세한 내용은 영업 담당자에게 문의하세요. Databricks SQL을 어떻게 사용하고 계시는지, 그리고 데이터 레이크의 BI 및 데이터 분석을 더욱 간단하게 만들 수 있는 방법에 대한 여러분의 의견을 듣고 싶습니다.

아래에서 DAIS 기조연설 및 데모 보기

게시물을 놓치지 마세요

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

다음은 무엇인가요?

db-151-og

데이터 웨어하우징

April 1, 2024/1분 이내 소요

Johnson & Johnson의 SCM 최적화를 위한 데이터 민주화

Optimizing joins with primary key constraints

데이터 웨어하우징

August 12, 2024/2분 소요

기본 키와 외래 키 제약 조건이 정식 출시(GA)되어 더 빠른 쿼리를 가능하게 합니다