top of page
Foto do escritorReginaldo Silva

Databricks APIs - Clusters (List, Create e Delete)

Atualizado: 13 de fev. de 2023

Fala dataholics, tenho um bucado de scripts que irei compartilhar no meu Github, vou ir documentando e postando eles para vocês.


Uma vez eu ouvi de alguém a seguinte a frase "Se eu perder minha pasta de scripts eu volto a ser Junior" rsrs, claro que é uma brincadeira, mas ter pastas de scripts bem organizadas, salva sua vida em momentos de apuro ou agiliza sua vida no dia a dia, então irei compartilhando a minha pasta de script com vocês.


Bom, scripts falam por si só, mas, trarei sempre alguns exemplos de onde utilizei para aguçar sua imaginação.


Bora la, esse script de hoje utilizo para listar todos os cluster de um ambiente através da API do Databricks, para quem usa databricks sabe que ele não deixa você exportar os clusters via UI(Interface gráfica do usuário) ou ter uma listagem facilitada (Databricks solta essa feature de exportar pra excel ai rs).

Com esse script você poderá:

  • Criar um inventário dos seus clusters

  • Analisar quantidade de cluster por versão (Para planejar um Upgrade)

  • Analisar quantidade de cluster por status

  • Analisar quantidade de Nodes, CPUS e Memória de todos os cluster

  • Utilizar para troubleshooting

  • E o que mais sua imaginação permitir

Link de referência:

Primeiro passo você precisa gerar um Token para autenticação, pode ser um personal token, porém, o indicado é que você crie uma App Registration no Azure AD, crie uma Service Account no Databricks para essa App, crie um token para essa Service Account e salve essa token na Secret do Databricks ou em um cofre de senhas como o Azure Key Vault, para facilitar irei gerar um personal token.


1 - Clique no seu login no canto superior direto e vá em User Settings.

2 - Clique em Generate new Token, defina o tempo de expiração para o Token (se deixar em branco ele vai ficar infinito), após clicar em Generate salve bem o seu token ele não poderá mais ser visualizado.


Altere os dois trechos abaixo:

1 - Endereço do seu Worksapce, essa info você consegue pela URL, basta pegar o valor que esta entre esse pedaço da sua URL: https://[xxxxx].azuredatabricks.net/

2 - Adiciona o seu token que acabou de gerar, note que ele vai ficar exposto, como disse coloque num cofre, se quiser um post de como fazer isso usando Azure KeyVault deixa um comentário.

Vamos para o código, ao rodar essa primeira célula o resultado será:

  • Uma lista chamada jsonDataList, usada para criar o Dataframe

  • Um Dataframe chamado df (clássico) com todos os nossos clusters

Uma dica rápida, você pode printar o resultado cru da request, mas se você printar em modo texto ele vem assim:


Mas, você pode usar a biblioteca de Json para deixar isso mais legível:


Agora vamos dar um Explode no campo Cluster para expandir os clusters ao nível de linha.


Selecionando apenas os campos que me interessa, você pode customizar da forma que achar melhor, o resultado desse comando gera uma view temporária em SQL (para os amantes de SQL).

Agora podemos brincar!


Podemos ver a quantidade de cluster por versão:

Esse campo cluster_source identifica por onde ele foi criado, se via UI, API ou Job.


Essa dica é maravilhosa para copiar os dados e fazer sua análise no Excel.


Vamos criar um cluster via API:

A request mudou de GET para POST e o caminho da API para /clusters/create.


Se rodarmos um novo Count de cluster, agora temos 1 cluster criado via API.


E por fim deletar (Só que não):

A request no cluster/delete não exclui de fato o cluster, ela apenas desliga o cluster, para excluir você pode fazer pelo portal ou aguardar 30 dias que ele irá ser excluído automaticamente caso não tenha sido utilizado e ele não esteja pinado. Isso mesmo, se você criar um cluster e não pinar ele no portal e não usar por 30 dias ele será excluído.

E para excluir de verdade? Ai você pode usar a API: /clusters/permanent-delete


Espero que esse post te ajude, se curtiu deixa um comentário la no Linkedin.


Link para o Github:


Fique bem e até a próxima.


274 visualizações0 comentário

Comments


Post: Blog2 Post
bottom of page