O que é Photon?
Este artigo explica os benefícios de executar as cargas de trabalho no mecanismo de consulta do Photon.
O Photon é o mecanismo de consulta vetorizada nativo do Azure Databricks com alto desempenho, que executa as cargas de trabalho SQL as chamadas à API do DataFrame com mais rapidez para reduzir o custo total por carga de trabalho. O Photon é compatível com as APIs do Apache Spark. Portanto, ele funciona com o código existente.
Recursos do Photon
Veja a seguir os principais recursos e vantagens de usar o Photon.
- Suporte a operações de SQL e de DataFrame equivalentes com tabelas Delta e Parquet.
- Consultas aceleradas que processam dados mais rapidamente e incluem agregações e junções.
- Desempenho mais rápido quando os dados são acessados repetidamente do cache de disco.
- Desempenho de exame robusto em tabelas com muitas colunas e muitos arquivos pequenos.
- Gravação mais rápida de Delta e Parquet com o uso de
UPDATE
,DELETE
,MERGE INTO
,INSERT
eCREATE TABLE AS SELECT
, inclusive contendo milhares de colunas. - Substitui junções de intercalação de ordenação por junções de hash.
- Para cargas de trabalho de IA e ML, o Photon melhora o desempenho de aplicativos usando Spark SQL, Spark DataFrames, engenharia de recursos, GraphFrames e xgboost4j.
Habilitação do Photon
A habilitação do Photon varia de acordo com o tipo de computação:
O Photon é executado por padrão em depósitos SQL e em computação sem servidor para notebooks e fluxos de trabalho.
O Photon é habilitado por padrão na computação que executa o Databricks Runtime 9.1 LTS e superior.
O Photon pode ser habilitado manualmente na computação que executa o Databricks Runtime 15.2 para Machine Learning ou superior.
Configurar a habilitação do Photon
Para habilitar ou desabilitar o Photon na computação de trabalhos e para todas as finalidades, marque a caixa de seleção Usar aceleração do Photon na interface do usuário de computação.
O Photon não é habilitado por padrão em computações criadas com a API de clusters ou a API de trabalhos. Para ativar o Photon, você deve definir o runtime_engine
atributo como PHOTON
.
Tipos de instância com suporte
O Photon oferece suporte aos vários tipos de instância nos nós de driver e de trabalho. Os tipos de instância do Photon consomem DBUs a uma taxa diferente do mesmo tipo de instância que executa o runtime não Photon. Para obter mais informações sobre instâncias do Photon e consumo de DBUs, consulte a página de preços do Azure Databricks.
Operadores, expressões e tipos de dados compatíveis
Veja a seguir os operadores, as expressões e os tipos de dados que o Photon aborda.
Operadores
- Digitalizar, Filtrar, Projeto
- Agregação/junção/embaralhamento de hash
- Ingresso no Nested-Loop
- Null-Aware Anti-Junção
- Union, Expand, ScalarSubquery
- Coletor de Gravação Delta/Parquet
- Classificar
- Função de janela
Expressões
- Comparação/lógica
- Aritmética/Matemática (a maioria)
- Condicional (IF, CASE, etc.)
- Cadeia de caracteres (comuns)
- Conversões
- Agregações (as mais comuns)
- Data/Carimbo de data/hora
Tipos de dados
- Byte/Short/Int/Long
- Boolean
- Cadeia de caracteres/binário
- Decimal
- Flutuante/Duplo
- Data/Carimbo de data/hora
- Struct
- Array
- Mapeamento
Recursos que exigem o Photon
A seguir estão os recursos que exigem o Photon.
- E/S preditiva para leitura e gravação. Confira O que é E/S preditiva?.
- Expressões geoespaciais H3. Confira Funções geoespaciais H3
- Poda dinâmica de arquivos. Confira Remoção de arquivo dinâmico.
Limitações
- Streaming estruturado: atualmente, o Photon dá suporte a streaming sem estado para Delta, Parquet, CSV e JSON. Há suporte para streaming de Kafka e Kinesis sem estado ao gravar em um coletor Delta ou Parquet.
- O Photon não dá suporte a UDFs ou APIs RDD.
- O Photon não afeta consultas que normalmente são executadas em menos de dois segundos.
Se a carga de trabalho atingir uma operação sem suporte, o recurso de computação alternará para o mecanismo de runtime padrão para o restante da carga de trabalho.