Desenvolvi a concepção do projeto por meio da união de habilidades já adquiridas com a aquisição de novos conhecimentos, visando ampliar e aprimorar minhas competências na área.
- Criação de alguns recursos dentro do ambiente da Microsoft Azure.
- Upload de arquivo para um Data Lake Gen2.
- Criação de uma aplicação no Azure Active Directory.
- Manuseio do ambiente do Databricks utilizando PySpark e Spark SQL.
- Conexão do Databricks com o Azure Data Lake.
- Processo de ETL (Extract, Transform and Load).
- Migração de dados para Azure SQL via JDBC.
- Integração Databricks + Power BI.
Criar alguns recursos no ambiente Microsoft Azure para manipulação dos dados.
• No Azure, um Resource Group é um contêiner lógico que serve para agrupar recursos relacionados em uma solução. Ele pode incluir recursos como máquinas virtuais, bancos de dados, redes virtuais, contas de armazenamento e muito mais.
• O Azure Storage Account é um serviço de armazenamento em nuvem altamente escalável, seguro e durável oferecido pelo Microsoft Azure. Ele é projetado para armazenar e gerenciar diferentes tipos de dados, como arquivos, imagens, vídeos, documentos, bancos de dados, entre outros.
Crie uma aplicação no Azure Active Directory.
• Criar um registro de aplicativo (App Registration) no Azure Active Directory permite que você registre seu aplicativo para usar os recursos do Azure, como o Azure AD, o Microsoft Graph API e outros serviços do Azure.
• Ao criar um registro de aplicativo, você está definindo um objeto de serviço que pode ser usado para autenticar e autorizar solicitações de aplicativos ao seu aplicativo no Azure. Em outras palavras, um registro de aplicativo permite que você autentique usuários em seu aplicativo, obtenha tokens de acesso, gerencie permissões de API e muito mais.
• Criar uma chave no Azure AD é uma forma de autenticar seu aplicativo ou serviço no Azure Active Directory.
• Quando você cria uma chave para um registro de aplicativo, o Azure gera um segredo compartilhado que pode ser usado para autenticar o aplicativo ou serviço ao acessar recursos protegidos pelo Azure AD. Essa chave é uma string de caracteres que deve ser mantida em segredo e só deve ser compartilhada com aplicativos confiáveis.
2.2. Adicionando Role Assignment ao Container (Storage Blob Data Contributor, Storage Blob Data Reader e Storage Blob Data Owner).
• As funções Storage Blob Data Owner, Contributor e Reader definem diferentes níveis de acesso e permissões para usuários que precisam interagir com dados armazenados em contas de armazenamento do Azure Blob. O objetivo dessas funções é fornecer controle granular sobre as ações que cada usuário pode realizar em relação aos dados, garantindo a segurança e a privacidade das informações armazenadas.
• Ao dar permissão de leitura e gravação no Gerenciamento de ACL para um contêiner dentro do Azure, você está permitindo que os usuários gerenciem a segurança dos blobs dentro do contêiner, concedendo ou revogando permissões para outros usuários ou grupos em relação aos blobs.
Manuseamento no ambiente do Databricks (Criação de conta no Databricks Community, Cluster...).
• Databricks é um ambiente de computação em nuvem projetado para simplificar o processamento de grandes volumes de dados e a análise de dados em larga escala. É uma plataforma de análise de dados que fornece uma interface colaborativa e escalável para cientistas de dados, engenheiros de dados e outros profissionais de análise de dados.
• Um cluster Databricks é um grupo de máquinas virtuais (VMs) que trabalham juntas para processar cargas de trabalho de processamento de dados em larga escala no ambiente Databricks. Essas VMs são configuradas para executar o software do Apache Spark, que é a base do ambiente Databricks, permitindo a execução de cargas de trabalho de processamento de dados em escala.
• O dbutils é uma biblioteca de utilidades do ambiente Databricks que fornece uma ampla gama de funções para simplificar tarefas de gerenciamento de dados e do ambiente de computação. Ele é um pacote Python personalizado que contém várias classes e funções para trabalhar com os recursos do Databricks, como sistema de arquivos, armazenamento de dados, segredos, clusters, jobs, entre outros.
• O comando "dbutils.fs.mkdirs("/mnt/ dadosdeproject003")" é usado no ambiente Databricks para criar um diretório chamado "dadosdeproject003" no local de montagem "/mnt".
• -O comando "dbutils.fs.ls("/mnt")" é usado no ambiente Databricks para listar os diretórios e arquivos no local de montagem (mount point) "/mnt".
Importação dos dados - Data Lake -> Databricks.
configs = {"fs.azure.account.auth.type": "OAuth",
"fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
"fs.azure.account.oauth2.client.id": "(APPLICATION (CLIENT) ID DA APLICAÇÃO CRIADA NO AZURE AD)",
"fs.azure.account.oauth2.client.secret": (VALUE DA KEY SECRET CRIADA NA APLICAÇÃO NO AZURE AD)",
"fs.azure.account.oauth2.client.endpoint": "(LINK DO ENDPOINT DA APLICAÇÃO CRIADA, OAuth 2.0 token endpoint (v1)) ",
"fs.azure.createRemoteFileSystemDuringInitialization": "true"}
dbutils.fs.mount(
source = "abfss://(NOME DO CONTAINER)@(NOME DA STORAGE ACCOUNT).dfs.core.windows.net/",
mount_point = "/mnt/(DIRETÓRIO CRIADO)",
extra_configs = configs)
• Esse comando é usado para montar um diretório da Azure Data Lake Storage Gen2 no Databricks. Ele usa o protocolo ABFS (Azure Blob File System) para se conectar ao armazenamento na nuvem. O parâmetro configs define as configurações de autenticação e autorização, como o tipo de autenticação, o ID do aplicativo (cliente) do Azure AD, a chave secreta do aplicativo, o endpoint de autenticação OAuth 2.0 e a opção de criação de um sistema de arquivos remoto durante a inicialização. O parâmetro source especifica o nome do contêiner e o nome da conta de armazenamento, e o parâmetro mount_point especifica o diretório em que o contêiner será montado no Databricks.
Faça algumas transformações nesses dados/schema utilizando PySpark.
• Datatypes das colunas antes da alteração
• Comando para alteração de DataType.
Crie uma base de dados com Spark SQL e Persista uma tabela gerenciada.
Faça a ingestão desses dados para uma tabela no Azure SQL Server.
Para fazer isso, é necessário as seguintes informações:
• O nome do servidor do Azure SQL
• O nome do banco de dados
• O nome de usuário e senha da conta de login
O driver JDBC (Java Database Connectivity) é um software que permite a conexão de um aplicativo Java a um banco de dados por meio de uma API padrão. Ele atua como um intermediário entre o aplicativo Java e o banco de dados, permitindo a execução de consultas, inserções, atualizações e exclusões de dados no banco de dados.
jdbc_url = "jdbc:sqlserver://{server_name}.database.windows.net:1433;database={database_name}"
jdbc_driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_username = "<seu_username>"
jdbc_password = "<sua_senha>"
connection_properties = {
"user": jdbc_username,
"password": jdbc_password,
"driver": jdbc_driver
}
jdbc_url = jdbc_url.format(server_name="<seu_server_name>.database.windows.net", database_name="<seu_database_name>")
- Este código define as propriedades necessárias para se conectar a um banco de dados SQL Server usando o JDBC. O código cria uma URL JDBC para o banco de dados SQL Server com as informações do nome do servidor e nome do banco de dados. Além disso, define o driver JDBC necessário para se conectar ao banco de dados. Por fim, cria um dicionário com as informações de usuário e senha para a conexão e insere as informações do servidor e banco de dados na URL JDBC.
É possível executar está tarefa utilizando o método write do DataFrame e o formato JDBC.
df.write \
.format("jdbc") \
.mode("overwrite") \
.option("url", jdbc_url) \
.option("dbtable", "<nome_da_tabela>") \
.option("user", jdbc_username) \
.option("password", jdbc_password) \
.option("driver", jdbc_driver) \
.save()
- Esse código é utilizado para escrever um DataFrame do Spark para uma tabela do SQL Server usando o JDBC (Java Database Connectivity). Ele define as opções de conexão, como a URL do banco de dados, a tabela de destino, as credenciais de usuário e senha, e o driver JDBC. Em seguida, ele chama a função save() para salvar os dados do DataFrame na tabela especificada. O modo overwrite indica que a tabela deve ser sobrescrita, caso já exista.
Faça a integração do Databricks com o Power BI.
8.1. Colocando as informações necessárias. (HostName e HTTP são encontrados no Cluster Databricks -> JDBC/ODBC.
Mini projeto feito para prática e estudo, toda dica será sempre bem vinda!





























