Transformação com o Azure Databricks
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Neste tutorial, você criará um pipeline de ponta a ponta que contém as atividades Validação, Copiar dados e Notebook no Azure Data Factory.
A atividade Validação garante que o conjunto de dados de origem esteja pronto para o consumo downstream antes de você disparar o trabalho de cópia e de análise.
A atividade Copiar dados duplica o conjunto de dados de origem para o armazenamento do coletor, que é montado como um DBFS no notebook do Azure Databricks. Dessa forma, o conjunto de dados pode ser diretamente consumido pelo Spark.
A atividade Notebook dispara o notebook do Databricks que transforma o conjunto de dados. Ela também adiciona o conjunto de dados a uma pasta processada ou ao Synapse Analytics.
Para simplificar, o modelo deste tutorial não cria um gatilho agendado. Você pode adicionar um, se necessário.
Pré-requisitos
Uma conta do Armazenamento de Blobs do Azure com um contêiner chamado
sinkdata
para uso como coletor.Anote o nome da conta de armazenamento, o nome do contêiner e a chave de acesso. Você precisará desses valores mais adiante no modelo.
Um workspace do Azure Databricks.
Importar um notebook para transformação
Para importar um notebook de Transformação para seu workspace do Databricks:
Entre no seu workspace do Azure Databricks e selecione Importar. O caminho do espaço de trabalho pode ser diferente do que é mostrado, mas lembre-se dele para uso posterior.
Selecione Importar de: URL. Na caixa de texto, insira
https://adflabstaging1.blob.core.windows.net/share/Transformations.html
.Agora, vamos atualizar o notebook de Transformação com as informações de conexão de armazenamento.
No notebook importado, acesse o comando 5, conforme mostrado no snippet de código a seguir.
- Substitua
<storage name>
e<access key>
por informações de conexão de armazenamento próprias. - Use a conta de armazenamento com o contêiner
sinkdata
.
# Supply storageName and accessKey values storageName = "<storage name>" accessKey = "<access key>" try: dbutils.fs.mount( source = "wasbs://sinkdata\@"+storageName+".blob.core.windows.net/", mount_point = "/mnt/Data Factorydata", extra_configs = {"fs.azure.account.key."+storageName+".blob.core.windows.net": accessKey}) except Exception as e: # The error message has a long stack track. This code tries to print just the relevant line indicating what failed. import re result = re.findall(r"\^\s\*Caused by:\s*\S+:\s\*(.*)\$", e.message, flags=re.MULTILINE) if result: print result[-1] \# Print only the relevant error message else: print e \# Otherwise print the whole stack trace.
- Substitua
Gere um token de acesso do Databricks para o Data Factory acessá-lo.
- No workspace do Databricks, selecione o ícone do seu perfil de usuário no canto superior direito.
- Selecione Configurações de Usuário.
- Selecione Gerar Novo Token na guia Tokens de Acesso.
- Selecione Gerar.
Salve o token de acesso para uso posterior na criação de um serviço vinculado do Databricks. O token de acesso é semelhante a
dapi32db32cbb4w6eee18b7d87e45exxxxxx
.
Como usar este modelo
Acesse o modelo Transformação com o Azure Databricks e crie serviços vinculados para as conexões a seguir.
Conexão de Blob de Origem: para acessar os dados de origem.
Para este exercício, você pode usar o armazenamento de blobs público que contém os arquivos de origem. Use a captura de tela a seguir como referência para a configuração. Use a seguinte URL de SAS para se conectar ao armazenamento de origem (acesso somente leitura):
https://storagewithdata.blob.core.windows.net/data?sv=2018-03-28&si=read%20and%20list&sr=c&sig=PuyyS6%2FKdB2JxcZN0kPlmHSBlD8uIKyzhBWmWzznkBw%3D
Conexão de Blob de Destino: para armazenar os dados copiados.
Na janela Novo serviço vinculado, selecione o blob de armazenamento do coletor.
Azure Databricks: para se conectar ao cluster do Databricks.
Crie um serviço vinculado do Databricks usando a chave de acesso que você gerou anteriormente. Você pode optar por selecionar um cluster interativo caso tenha um. Este exemplo usa a opção Novo cluster de trabalho.
Selecione Usar este modelo. Você verá um pipeline criado.
Introdução e configuração de pipeline
No novo pipeline, a maioria das configurações é definida automaticamente com valores padrão. Examine as configurações do pipeline e faça as alterações necessárias.
No sinalizador de Disponibilidade da atividade Validação, verifique se o valor do Conjunto de dados de origem está definido como o
SourceAvailabilityDataset
criado anteriormente.Em Arquivo para blob da atividade Copiar dados, verifique as guias Origem e Coletor. Altere as configurações, se necessário.
GuiaOrigem
Guia Coletor
Em Transformação da atividade Notebook, examine e atualize os caminhos e as configurações conforme necessário.
A opção Serviço vinculado do Databricks será preenchida previamente com o valor de uma etapa anterior, conforme mostrado:
Para verificar as configurações do Notebook:
Selecione a guia Configurações. em Caminho do notebook, verifique se o caminho padrão está correto. Talvez seja necessário procurar e escolher o caminho correto do notebook.
Expanda o seletor de Parâmetros Base e verifique se os parâmetros correspondem ao que é mostrado na captura de tela a seguir. Esses parâmetros são transmitidos para o notebook do Databricks por meio do Data Factory.
Verifique se os Parâmetros de Pipeline correspondem ao que é mostrado na seguinte captura de tela:
Conecte-se aos seus conjuntos de dados.
Observação
Nos conjuntos de dados abaixo, o caminho do arquivo foi especificado automaticamente no modelo. Se forem necessárias alterações, especifique o caminho para o contêiner e o diretório, em caso de erro de conexão.
SourceAvailabilityDataset: para verificar se os dados de origem estão disponíveis.
SourceFilesDataset: para acessar os dados de origem.
DestinationFilesDataset: para copiar os dados para a localização de destino do coletor. Use os seguintes valores:
Serviço vinculado -
sinkBlob_LS
, criado em uma etapa anterior.Caminho do arquivo -
sinkdata/staged_sink
.
Selecione Depurar para executar o pipeline. Encontre o link para os logs do Databricks para obter logs mais detalhados do Spark.
Verifique também o arquivo de dados usando o Gerenciador de Armazenamento do Azure.
Observação
Para correlação com as execuções de pipeline do Data Factory, este exemplo acrescenta a ID da execução de pipeline do Data Factory à pasta de saída. Isso ajuda a manter o controle dos arquivos gerados por execução.