Arquivos do ADLS no Databricks
Simples, rápido e objetivo pra eu ter uma fonte de consulta e não ter que fazer tudo na mão de novo.
O que preciso do lado Azure?
- Storage account (pra você que não conhece é tipo o S3 da Amazon)
- um App Registration (é um user de sistema criado no Azure AD)
- uma entrada no Azure Key Vault com os dados do App Registration criado.
Como criar:
Vou criar um storage account bem simples, público mesmo de nome rescuedata01 e vou criar um container de nome dados nele. Depois vou no Azure AD e criar um app registration no meu Azure AD de nome rescue.
Criando o Storage Account:
Vou fazer uma serie de Gifs aqui em baixo porque acho mais rápido.
- Criei um storage account de nome rescuedata01
- Coloquei ele num resource group meu chamado databricks_de, mas crie o seu próprio
- coloquei ele na região do Brasil South
- habilitei o ADLS
- Deixei ele publico mesmo pois é só pra testes
- Deixei a redundância dele local mesmo
No finalzinho do Gif, após o Storage Account criado, vai ali no menu da lateral, ache container e crie o seu, o meu chamei de dados. (Não tá no Gif).
Criando o App Registry
Agora vamos criar esse cara que nada mais é que um user sistêmico, geralmente as empresas chamam de service principal, o meu vai chamar rescue, já aproveitei e criei uma secret pra ele no GIF, vamos precisar dela depois.
“Ah Anselmo mas você tá expondo seus dados aqui!”, não pega nada, vou apagar assim que terminar esse post.
Dessa criação vou precisar das seguintes informações:
- Client ID: Aparece lá na tela de overview.
- Directory ID/Tenant ID: os 2 são a mesma coisa você pega lá na tela de overview também.
- Secret key: Quando gerei a secret copiei ela.
A autenticação por parte do Databricks usa OAUTH2 por isso vou ter que jogar essas infos que gerei numa secret no Key vault.
Criando entrada no Azure Key Vault
Criei um Azure Key Vault chamado rescuepointkv (caso não tenha crie um que é facinho de criar), nesse cara iremos colocar as 3 entradas que geramos ai em cima.
- clientid: com a informação do client id do app registration que geramos.
- tenantid: com a informação do tenant do domínio AD
- secretkey: com a informação da secret que geramos para o app registration rescue lá no AD.
Agora falta um último passo, atribuir o privilégio do app registration no Storage Account.
Dando os privilegios no SA
Vou dar privilégios de contributor para esse cara, mas no seu caso crie um role attribute caso seja algo especifico no seu acesso. Se liga o Gif abaixo como fazer.
Note que dei privilégios para o rescue no container dados também.
Atuações no lado do Databricks
Agora que terminamos tudo do lado da Azure, vamos fazer a configuração do lado do Databricks mas vamos precisar criar uma parada lá antes, o scope. Logue no endereço a seguir substituindo o começo pelo seu https://<DATABRICKS-INSTANCE>#secrets/createScope. Segue abaixo como criar.
Criei um scope chamado rescuescp que vai chamar as entradas que cadastramos no Key Vault rescuepointkv a pouco. Com ele criado vamos para o nosso código de montagem.
Montando o ADLS no DBFS
Esse pythonzinho abaixo já faz a magica acontecer, ele faz o container ADLS ser montado num ponto que chamei de “/mnt/dados” no DBFS possibilitando visualizar dentro do Databricks os dados do Storage Account que criamos.
Substitua pelos nomes dos caras que você criou no sou ambiente e boa, só pra mostrar que funciona, segue o gif abaixo.
No post de hoje era isso, vou mostrar depois em outros posts como configurar essa autenticação durante a subida de um cluster colocando no config inicial do servidor e dar algumas dicas de apontamentos externos no databricks pois se uso isso pra jogar o location dos meus dados como external tables eu trago uma brecha de segurança pra dentro do Databricks.
Nos vemos nos próximos posts.
Deixa o like ae e compartilha com seu amigo(a) que tá apanhando.
Anselmo Borges.