Ir para o conteúdo principal

Novas melhorias de desempenho no 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

Publicado: September 8, 2021

Produto7 min de leitura

Databricks SQL já está em disponibilidade geral na AWS e no Azure.


Originalmente anunciado na Data + AI Summit 2020 Europe, o Databricks SQL permite que você opere uma arquitetura de lakehouse multinuvem que oferece desempenho de data warehousing com a economia de um data lake. Nossa visão é oferecer aos analistas de dados uma ferramenta simples e agradável para obter e compartilhar entendimentos de seu lakehouse, usando uma UI SQL desenvolvida para esse fim e suporte de alto nível para as ferramentas de BI mais populares.

Este blog é o primeiro de uma série sobre o Databricks SQL que visa abordar as inovações que constantemente trazemos para alcançar essa visão: desempenho, facilidade de uso e governança. Este blog abordará as otimizações de desempenho recentes como parte do Databricks SQL para:

  • Cargas de trabalho de analítica altamente concorrentes
  • Gerenciamento inteligente da Workload
  • Leituras altamente paralelas
  • Melhorando a recuperação de resultados de Business Intelligence (BI) com o Cloud Fetch

 <a href="https://www.databricks.com/resources/ebook/rise-data-lakehouse?itm_data=performancedatabrickssql-blog-riselakehousebook" target="_blank">Explore por que os lakehouses são a arquitetura de dados do futuro</a> com o pai do data warehouse, Bill Inmon.</p><h2>Desempenho no mundo real além de grandes queries</h2><p>O lançamento inicial do Databricks SQL começou com benefícios de desempenho significativos — até 6x na relação preço/performance — em comparação com os cloud data warehouses tradicionais, de acordo com o benchmark TPC-DS em escala de 30 TB abaixo. Considerando que o TPC-DS é um benchmark padrão do setor definido por fornecedores de data warehousing, estamos muito orgulhosos desses resultados.</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="A versão inicial do Databricks SQL ofereceu benefícios de desempenho significativos, até 6 vezes a relação preço/desempenho, em comparação com os tradicionais cloud data warehouses, de acordo com o benchmark de escala TPC-DS de 30 TB." height="329"></a><p>&nbsp;30TB TPC-DS Preço/Desempenho (Quanto menor, melhor)</p></figure><p>Embora este benchmark simule bem queries grandes, como cargas de trabalho de ETL ou de análise aprofundada, ele não abrange tudo o que nossos clientes executam. É por isso que, nos últimos meses, trabalhamos em estreita colaboração com centenas de clientes para oferecer um desempenho rápido e previsível para cargas de trabalho de análise de dados reais e queries de dados SQL.</p><p>Ao liberarmos oficialmente a prévia hoje, estamos muito animados em compartilhar alguns dos resultados e ganhos de desempenho que alcançamos até o momento.</p><h2>Cenário 1: Workloads de análise altamente concorrentes</h2><p>Ao trabalhar com clientes, percebemos que é comum que cargas de trabalho analíticas altamente concorrentes sejam executadas em pequenos datasets. Intuitivamente, isso faz sentido: os analistas geralmente aplicam filtros e tendem a trabalhar mais com dados recentes do que com dados históricos. Decidimos tornar este caso de uso comum mais rápido. Para otimizar a concorrência, usamos o mesmo benchmark TPC-DS com um fator de escala muito menor (10 GB) e 32 transmissões concorrentes. Assim, temos 32 bots enviando queries continuamente para o sistema, o que na verdade simula um número muito maior de usuários reais, porque os bots não descansam entre a execução das queries.</p><p>Analisamos os resultados para identificar e remover gargalos e repetimos esse processo várias vezes. Centenas de otimizações depois, melhoramos a concorrência em 3 vezes! O Databricks SQL agora supera alguns dos melhores cloud data warehouse, tanto para consultas grandes quanto para consultas pequenas com muitos usuários.</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="O Databricks SQL supera o desempenho de alguns dos melhores cloud data warehouse, não apenas para queries grandes, mas também para queries pequenas com muitos usuários. " height="588"></a><figcaption>10 GB TPC-DS queries/h em 32 transmissões concorrentes (quanto maior, melhor)</figcaption></figure><h2>Cenário 2: Gerenciamento inteligente de cargas de trabalho</h2><p>As cargas de trabalho do mundo real, no entanto, не se resumem a consultas grandes ou pequenas. Elas geralmente incluem uma mistura de queries pequenas e grandes. Portanto, os recursos de enfileiramento e balanceamento de carga do Databricks SQL também precisam levar isso em conta. É por isso que o Databricks SQL usa um sistema de enfileiramento duplo que prioriza queries pequenas em vez de grandes, já que os analistas normalmente se preocupam mais com a latência de queries curtas do que com as grandes.</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="O Databricks SQL usa um sistema de enfileiramento duplo que prioriza queries pequenas em vez de grandes, já que os analistas geralmente se preocupam mais com a latência de queries curtas do que com a das grandes. " height="387"></a><p>&nbsp;Enfileiramento e balanceamento de carga de consultas mistas com filas duplas</p></figure>

Cenário 3: Leituras altamente paralelas

É comum que algumas tabelas em um lakehouse sejam compostas por muitos arquivos, por exemplo, em cenários de transmissão, como ingestão de IoT, quando os dados chegam continuamente. Em sistemas legados, o mecanismo de execução pode gastar muito mais tempo listando esses arquivos do que realmente executando a consulta! Nossos clientes também nos disseram que não querem sacrificar o desempenho pela atualização dos dados.

Temos o orgulho de anunciar a inclusão de E/S assíncrona e altamente paralela no Databricks SQL. Quando você executa uma query, o Databricks lê automaticamente os próximos blocos de dados do armazenamento em cloud enquanto o bloco atual está sendo processado. Isso aumenta consideravelmente o desempenho geral da query em arquivos pequenos (em 12x para arquivos de 1 MB) e também nos casos de uso de "dados frios" (dados que não estão em cache).

A Databricks desenvolveu uma nova técnica de varredura que pode ler automaticamente os próximos blocos de dados enquanto o bloco atual está sendo processado, aumentando consideravelmente o desempenho geral da query em arquivos pequenos.

Benchmark do cenário de leituras altamente paralelas em arquivos pequenos (nº de linhas escaneadas/s) (Quanto maior, melhor)

Cenário 4: melhorando a recuperação de resultados de BI com o Cloud Fetch

Assim que os resultados da query são computados, a etapa final é acelerar o modo como o sistema entrega os resultados ao cliente - geralmente uma ferramenta de BI como o PowerBI ou o Tableau. Os cloud data warehouse legados geralmente coletam os resultados em um nó líder (também conhecido como driver) e os transmitem por transmissão de volta para o cliente. Isso torna a experiência em sua ferramenta de BI muito mais lenta se você estiver buscando mais do que alguns megabytes de resultados.

É por isso que reimaginamos essa abordagem com uma nova arquitetura chamada Cloud Fetch. Para resultados grandes, o Databricks SQL grava os resultados em paralelo em todos os nós de compute no armazenamento em cloud e, em seguida, envia a lista de arquivos usando URLs pré-assinadas de volta para o cliente. O cliente pode então fazer download de todos os dados do armazenamento em cloud em paralelo. Temos o prazer de anunciar uma melhoria de desempenho de até 10x em cenários de clientes do mundo real! Estamos trabalhando com as ferramentas de BI mais populares para habilitar este recurso automaticamente.

Para resultados grandes, o cluster subjacente agora grava em paralelo em todos os nós de compute para o armazenamento em cloud e, em seguida, envia a lista de arquivos usando URLs pré-assinadas de volta para o cliente.
“O Cloud Fetch permite conectividade mais rápida e com maior largura de banda

Desvendando o Databricks SQL

Estes são apenas alguns exemplos de otimizações de desempenho e inovações trazidas ao Databricks SQL para fornecer a você o melhor desempenho SQL da categoria em seu data lake, mantendo os benefícios de uma abordagem aberta. Então, como isso funciona?

Databricks SQL nos bastidores (marchitecture)
Databricks SQL por baixo dos panos

O Delta Lake de código aberto é a base do Databricks SQL. É o formato aberto de armazenamento de dados que traz o melhor dos sistemas de data warehouse para os data lakes, com transações ACID, linhagem de dados, versionamento, compartilhamento de dados e assim por diante, para dados estruturados, não estruturados e semiestruturados.

No centro do Databricks SQL está o Photon, um novo mecanismo vetorizado nativo no Databricks, escrito para executar cargas de trabalho SQL mais rapidamente. Leia nosso blog e assista a Radical Speed for SQL Queries on Databricks: Photon Under the Hood para saber mais.

E por último, mas não menos importante, trabalhamos em estreita colaboração com um grande número de fornecedores de software para garantir que as equipes de dados (analistas, data scientists e desenvolvedores de SQL) possam usar facilmente suas ferramentas de preferência no Databricks SQL. Facilitamos a conexão, a obtenção de dados e a autenticação usando o Single Sign On, ao mesmo tempo que aumentamos a velocidade graças às melhorias de desempenho em concorrência e queries curtas que abordamos anteriormente.

Passos seguintes

Isso é apenas o começo, pois planejamos ouvir continuamente e adicionar mais inovações ao serviço. O Databricks SQL já está trazendo um valor tremendo para muitas organizações, como a Atlassian ou a Comcast, e mal podemos esperar para ouvir seu feedback também!

Se você já é um usuário do Databricks, pode começar a usar o Databricks SQL hoje usando nosso guia de introdução para Azure Databricks ou AWS. Se você ainda não é um usuário do Databricks, acesse databricks.com/try-databricks para iniciar uma trial grátis.

Finalmente, se você quiser saber mais sobre a Databricks Lakehouse platform, assista ao nosso webinar – gestão de dados: o bom, o mau e o feio. Além disso, estamos oferecendo treinamento on-line do Databricks SQL para experiência prática e workshops personalizados. Entre em contato com seu representante de vendas para saber mais. Adoraríamos saber como você usa o Databricks SQL e como podemos tornar o BI e a análise de dados em seu data lake ainda mais simples.

Assista ao Keynote e à Demo do DAIS abaixo

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada

O que vem a seguir?

Introducing AI/BI: Intelligent Analytics for Real-World Data

Produto

June 12, 2024/11 min de leitura

Apresentando o AI/BI: analítica inteligente para dados do mundo real

Five Simple Steps for Implementing a Star Schema in Databricks With Delta Lake

Produto

September 12, 2024/8 min de leitura

Cinco etapas simples para implementar um esquema de estrela na Databricks com Delta Lake