Compartilhar via


Escolher uma linguagem de desenvolvimento

O Databricks dá suporte ao uso de diferentes linguagens de programação para desenvolvimento e engenharia de dados. Este artigo descreve as opções disponíveis, em que esses idiomas podem ser usados e suas limitações.

Recomendações

O Databricks recomenda Python e SQL para novos projetos:

  • python é uma linguagem de programação de uso geral muito popular. Os DataFrames do PySpark facilitam a criação de transformações modulares testáveis. O ecossistema do Python também dá suporte a uma ampla variedade de bibliotecas para estender sua solução.
  • sql é uma linguagem muito popular para gerenciar e manipular conjuntos de dados relacionais executando operações como consultar, atualizar, inserir e excluir dados. SQL é uma boa opção se sua experiência for principalmente em bancos de dados ou armazenamento de dados. O SQL também pode ser inserido no Python usando spark.sql.

Os seguintes idiomas têm suporte limitado, portanto, o Databricks não os recomenda para novos projetos de engenharia de dados:

  • Scala é a linguagem usada para o desenvolvimento do Apache Spark™.
  • R só tem suporte total nos notebooks do Databricks.

O suporte à linguagem também varia dependendo dos recursos usados para criar pipelines de dados e outras soluções. Por exemplo, o Lakeflow Declarative Pipelines dá suporte a Python e SQL, enquanto os fluxos de trabalho permitem que você crie pipelines de dados usando Python, SQL, Scala e Java.

Nota

Outras linguagens podem ser usadas para interagir com o Databricks para consultar dados ou executar transformações de dados. No entanto, essas interações estão principalmente no contexto de integrações com sistemas externos. Nesses casos, um desenvolvedor pode usar quase qualquer linguagem de programação para interagir com o Databricks por meio do da API REST doDatabricks, drivers ODBC/JDBC, linguagens específicas com suporte ao conector SQL do Databricks (Go, Python, Javascript/Node.js) ou linguagens que têm implementações do Spark Connect, como Go e Rust.

Desenvolvimento do workspace versus desenvolvimento local

Você pode desenvolver projetos de dados e pipelines usando o workspace do Databricks ou um IDE (ambiente de desenvolvimento integrado) em seu computador local, mas é recomendável iniciar novos projetos no workspace do Databricks. O workspace é acessível usando um navegador da Web, fornece fácil acesso aos dados no Catálogo do Unity e dá suporte a capacidades poderosas de depuração e recursos, como o Assistente do Databricks.

Desenvolva código no workspace do Databricks usando notebooks do Databricks ou o editor do SQL. Os notebooks do Databricks dão suporte a várias linguagens de programação mesmo dentro do mesmo notebook, para que você possa desenvolver usando Python, SQL e Scala.

Há várias vantagens de desenvolver código diretamente no workspace do Databricks:

  • O ciclo de feedback é mais rápido. Você pode testar imediatamente o código escrito em dados reais.
  • O Assistente do Databricks integrado e com reconhecimento de contexto pode acelerar o desenvolvimento e ajudar a corrigir problemas.
  • Você pode agendar facilmente notebooks e consultas diretamente do workspace do Databricks.
  • Para o desenvolvimento do Python, você pode estruturar corretamente seu código Python usando arquivos como pacotes python em um workspace.

No entanto, o desenvolvimento local em um IDE fornece as seguintes vantagens:

  • Os IDEs têm ferramentas melhores para trabalhar com projetos de software, como navegação, refatoração de código e análise de código estático.
  • Você pode escolher como controlar sua origem e, se usar o Git, a funcionalidade mais avançada está disponível localmente do que no workspace com pastas git.
  • Há uma gama maior de idiomas com suporte. Por exemplo, você pode desenvolver código usando Java e implantá-lo como uma tarefa JAR.
  • Há um suporte melhor para depuração de código.
  • Há melhor suporte para trabalhar com testes de unidade.

Exemplo de seleção de idioma

A seleção de idioma para engenharia de dados é visualizada usando a seguinte árvore de decisão:

árvore de decisão da linguagem de engenharia de dados

Desenvolvendo código python

A linguagem Python tem suporte de primeira classe no Databricks. Você pode usá-lo em notebooks do Databricks, Pipelines Declarativos do Lakeflow e fluxos de trabalho, para desenvolver UDFs e também implantá-lo como um script Python e como rodas.

Ao desenvolver projetos em Python no workspace do Databricks, seja em notebooks ou em arquivos, o Databricks fornece ferramentas como preenchimento de código, navegação, validação de sintaxe, geração de código usando o Assistente do Databricks, depuração interativa e mais. O código desenvolvido pode ser executado interativamente, implantado como um fluxo de trabalho do Databricks, Pipelines Declarativos do Lakeflow ou até mesmo como uma função no Unity Catalog. Você pode estruturar seu código dividindo-o em pacotes separados do Python que podem ser usados em vários pipelines ou trabalhos.

O Databricks fornece uma extensão para Visual Studio Code e JetBrains oferece um plug-in para o PyCharm que permitem desenvolver código Python em um IDE, sincronizar o código com um workspace do Databricks, executá-lo no workspace e realizar a depuração passo a passo utilizando Databricks Connect. O código desenvolvido pode ser implantado usando pacotes de ativos do Databricks como um trabalho ou pipeline do Databricks.

Desenvolvendo código SQL

A linguagem SQL pode ser usada dentro de blocos de anotações do Databricks ou como consultas do Databricks usando o editor do SQL. Em ambos os casos, um desenvolvedor obtém acesso a ferramentas como preenchimento de código e o Assistente do Databricks com reconhecimento de contexto que pode ser usado para geração de código e correção de problemas. O código desenvolvido pode ser implantado como um trabalho ou um pipeline.

Os fluxos de trabalho do Databricks também permitem que você execute o código SQL armazenado em um arquivo. Você pode usar um IDE para criar esses arquivos e carregá-los no workspace. Outro uso popular do SQL está em pipelines de engenharia de dados desenvolvidos usando dbt (ferramenta de construção de dados). Os fluxos de trabalho do Databricks dão suporte à orquestração de projetos dbt.

Desenvolvendo código Scala

Scala é o idioma original do Apache Spark™. É uma linguagem poderosa, mas tem uma curva de aprendizado íngreme. Embora Scala seja uma linguagem com suporte nos notebooks do Databricks, há algumas limitações relacionadas à forma como classes e objetos Scala são criados e mantidos que podem dificultar o desenvolvimento de pipelines complexos. Normalmente, as IDEs oferecem melhor suporte para o desenvolvimento do código Scala, que pode ser implantado usando tarefas JAR em fluxos de trabalho do Databricks.

Próximas etapas