Sitemap

Conectando seu pod(K8s) .Net 9 no Databricks

3 min readNov 28, 2024
Press enter or click to view image in full size

Olá pessoal, como vão?!

Eu faz tempo que não apareço aqui, mas para esse item, gostaria de compartilhar o que precisei fazer para conectar minha aplicação .Net 9, no Databricks.

Primeiramente, por uma solicitação da equipe de dados da empresa onde trabalho, precisamos retirar uma rotina de onde a origem de dados era em arquivos. Porém esses arquivos eram D-1.

Para que possamos ter os dados mais atuais, precisaríamos obter esses dados agora do Databricks;

Existe uma documentação no site do Databricks para você fazer a instalação dos drivers ODBC ou JDBC, para você usar em sua aplicação e ou ambiente.

Porem com uma documentação muito sem detalhes e achei bem fraca por sinal.

Principalmente para ambientes linux e ou MacOs, que seria o meu caso, já que esse processo, necessariamente estará em um cluster K8s.

Agora sem delongas vou mostrar aqui um passo a passo, de como configurar sua aplicação .Net 9 para funcionar corretamente essa conexão do nosso Pod ao Databricks.

Existem alguns bibliotecas disponiveis para fazer essa ponte, porém são pagas como no caso da CData.Databricks, você pode baixar via Nuget, mas é uma biblioteca paga, e não é muito barata.

Como não queria pagar, resolvi de outra forma, irei usar a conexão via OBDC para o Databricks

Vamos a nossa POC.

Primeiro criei um Worker Service em .Net 9, e na classe Worker.cs, coloquei a conexão via ODBC, já realizando o SELECT no Databricks

Percebam que usei a System.Data.Odbc para criar a conexão;

Vejam também que você precisará colocar os valores necessários para conexão ao Databricks. (HOST DO DATABRICKS, PAT TOKEN USUARIO e WAREHOUSEID)

Depois disso, sabendo que iremos colocar isso no K8s, precisaremos via Dockerfile, realizar a instalação do driver ODBC para Databricks dentro do Pod;

Para chegar nesse arquivo, fiz inúmeros testes até chegar no resultado satisfatório;

Mas nesse arquivo o mais importante são as linhas:

> 15 => Onde de fato é a instalação do ODBC para a distribuição Linux e ou MacOs, com a instalação do pacote unixodbc

> 22 => Onde é baixado o pacote no site do Databricks, do Drive ODBC chamado SIMBA, para a conexão específica com o Databricks e subsequente a instalação do mesmo

> 29 até 32 => Escrevo no arquivo odbc.ini, que é o arquivo de configuração das conexões ODBC existentes no Pod, a criação do DNS=Simba Spark, para ser chamado no código .Net

Depois disso, compile sua aplicação e faça o build dessa imagem via docker, e veja o resultado no console do app.

Para você que não sabe fazer isso, segue aqui.

Vá no terminal ou command e vá até a pasta onde está o dockerfile

digite o seguinte comando:

docker build — platform linux/amd64 -t databricks .

Veja que nesse caso, por causa dos pacotes que utilizamos, Driver SIMBA ODBC 64 bits, precisamos compilar essa aplicação linux/amd64

Depois de executar o comando, aguarde o sucesso da geração da imagem, e suba em seu docker a aplicação com o comando

docker run -d databricks -p 9999:8080

Neste exemplo, somente fiz o LOG das colunas da View VIEW_TESTE, como demonstração que a comunicação de o SELECT funcionaram como deveriam.

Espero que tenham gostado!

Até a próxima!

--

--

Fernando Mendes
Fernando Mendes

Written by Fernando Mendes

Software Architect .NET C# | Microsoft MVP 🏆🏆 | Co-Founder community JunDevelopers

No responses yet