Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este cenário mostra como se conectar ao OneLake por meio do Azure Databricks. Depois de concluir este tutorial, você poderá ler e gravar em um lago do Microsoft Fabric a partir do seu espaço de trabalho do Azure Databricks.
Pré-requisitos
Antes de se conectar, você deve ter:
- Um espaço de trabalho Fabric e um lakehouse.
- Um espaço de trabalho premium do Azure Databricks. Apenas os espaços de trabalho premium do Azure Databricks suportam a transmissão de credenciais do Microsoft Entra, de que necessita para este cenário.
Configurar seu espaço de trabalho Databricks
Abra seu espaço de trabalho do Azure Databricks e selecione Criar>cluster.
Para autenticar no OneLake com sua identidade do Microsoft Entra, você deve habilitar a passagem de credenciais do Azure Data Lake Storage (ADLS) em seu cluster nas Opções Avançadas.
Observação
Você também pode conectar o Databricks ao OneLake usando uma entidade de serviço (service principal). Para obter mais informações sobre como autenticar o Azure Databricks usando uma entidade de serviço, consulte Gerenciar entidades de serviço.
Crie o cluster com seus parâmetros preferidos. Para obter mais informações sobre como criar um cluster Databricks, consulte Configurar clusters - Azure Databricks.
Abra um bloco de anotações e conecte-o ao cluster recém-criado.
Crie o seu bloco de notas
Navegue até o seu Fabric lakehouse e copie o caminho do Azure Blob Filesystem (ABFS) para o seu lakehouse. Você pode encontrá-lo no painel Propriedades .
Observação
O Azure Databricks só suporta o driver do Sistema de Arquivos de Blob do Azure (ABFS) ao ler e gravar no ADLS Gen2 e no OneLake:
abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/.Salve o caminho para sua casa do lago em seu notebook Databricks. Este lakehouse é onde você escreve seus dados processados mais tarde:
oneLakePath = 'abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/myLakehouse.lakehouse/Files/'Carregue dados de um conjunto de dados público Databricks em um dataframe. Você também pode ler um arquivo de outro lugar no Fabric ou escolher um arquivo de outra conta ADLS Gen2 que você já possui.
yellowTaxiDF = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/databricks-datasets/nyctaxi/tripdata/yellow/yellow_tripdata_2019-12.csv.gz")Filtre, transforme ou prepare seus dados. Para esse cenário, você pode reduzir seu conjunto de dados para carregamento mais rápido, unir com outros conjuntos de dados ou filtrar para resultados específicos.
filteredTaxiDF = yellowTaxiDF.where(yellowTaxiDF.fare_amount<4).where(yellowTaxiDF.passenger_count==4) display(filteredTaxiDF)Escreva o seu dataframe filtrado no seu lakehouse Fabric usando o seu caminho OneLake.
filteredTaxiDF.write.format("csv").option("header", "true").mode("overwrite").csv(oneLakePath)Teste se os dados foram gravados com êxito lendo o arquivo recém-carregado.
lakehouseRead = spark.read.format('csv').option("header", "true").load(oneLakePath) display(lakehouseRead.limit(10))
Isso conclui a configuração e agora você pode ler e gravar dados no Fabric usando o Azure Databricks.
Conectando-se ao OneLake usando a computação sem servidor do Databricks
A computação sem servidor Databricks permite executar cargas de trabalho sem provisionar um cluster. De acordo com a documentação do Databricks serverless, para automatizar a configuração do Spark na computação sem servidor, o Databricks serverless não permite configurar as propriedades do Spark fora das propriedades suportadas listadas aqui.
Observação
Essa limitação não é exclusiva do Azure Databricks. As implementações sem servidor Databricks na Amazon Web Services (AWS) e no Google Cloud apresentam o mesmo comportamento.
Se você tentar modificar ou definir uma configuração do Spark sem suporte em um bloco de anotações vinculado à computação sem servidor Databricks, o sistema retornará um erro CONFIG_NOT_AVAILABLE.
OneLake suporta conectividade de entrada da computação sem servidor do Databricks. Você pode se conectar ao OneLake (a partir da computação sem servidor Databricks) desde que tenha acesso apropriado e haja um caminho de rede entre a computação sem servidor Databricks e o OneLake. Com o Databricks sem servidor, você deve garantir que seu código não modifique nenhuma propriedade do Spark sem suporte.
Pré-requisitos
Antes de se conectar, você deve ter:
- Um espaço de trabalho Fabric e um lakehouse.
- Um espaço de trabalho premium do Azure Databricks.
- Uma entidade de serviço com uma atribuição mínima de função de Colaborador no espaço de trabalho.
- Segredos de banco de dados ou Azure Key Vault (AKV) para armazenar e recuperar segredos. Este exemplo usa segredos do Databricks.
Crie o seu bloco de notas
Crie um bloco de anotações no espaço de trabalho Databricks e anexe-o à computação sem servidor.
Importar módulos Python - neste exemplo, você está usando três módulos:
- msal é Microsoft Authentication Library (MSAL) e foi projetado para ajudar os desenvolvedores a integrar a autenticação da plataforma de identidade da Microsoft em seus aplicativos.
- O módulo de solicitações é usado para fazer solicitações HTTP usando Python.
- delta lake é usado para ler e escrever tabelas Delta Lake usando Python.
from msal import ConfidentialClientApplication import requests from deltalake import DeltaTableDeclare variáveis para o tenante do Microsoft Entra, incluindo a ID da aplicação. Use a ID do locatário onde o Microsoft Fabric está implantado.
# Fetch from Databricks secrets. tenant_id = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for tenant _id>") client_id = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for client _id>") client_secret = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for secret>")Declarar variáveis do espaço de trabalho Fabric.
workspace_id = "<replace with workspace name>" lakehouse_id = "<replace with lakehouse name>" table_to_read = "<name of lakehouse table to read>" storage_account_name = workspace_id onelake_uri = f"abfss://{workspace_id}@onelake.dfs.fabric.microsoft.com/{lakehouse_id}.lakehouse/Tables/{table_to_read}"Inicializar o cliente para obtenção de um token.
authority = f"https://login.microsoftonline.com/{tenant_id}" app = ConfidentialClientApplication( client_id, authority=authority, client_credential=client_secret ) result = app.acquire_token_for_client(scopes=["https://onelake.fabric.microsoft.com/.default"]) if "access_token" in result: access_token = result["access_token"] print("Access token acquired.") token_val = result['access_token']Leia uma tabela delta do OneLake
dt = DeltaTable(onelake_uri, storage_options={"bearer_token": f"{token_val}", "use_fabric_endpoint": "true"}) df = dt.to_pandas() print(df.head())Observação
A entidade de serviço tem atribuição de função de espaço de trabalho de Colaborador e você pode usá-la para gravar dados de volta no OneLake.
Isso conclui a configuração e agora você pode ler dados do OneLake usando o Databricks, um notebook conectado à computação sem servidor.