Partilhar via


Usar um pipeline para aceder a um lakehouse num espaço de trabalho restrito à entrada a partir de um espaço de trabalho aberto

Pode usar um pipeline para estabelecer comunicação transversal entre espaços de trabalho entre um espaço de trabalho aberto e um espaço de trabalho que restrinja a entrada pública. Por exemplo, é possível criar um pipeline num espaço de trabalho aberto para aceder a um lakehouse num espaço de trabalho com entradas restritas. Esta configuração permite que o notebook no Workspace 1 aceda de forma segura ao Lakehouse e leia as tabelas Delta Lake no Workspace 2 sem as expor ao acesso público.

Etapa 1: Criar os espaços de trabalho

Você precisa de um espaço de trabalho aberto e um espaço de trabalho restrito. Este artigo refere-se aos espaços de trabalho da seguinte forma:

  • O espaço de trabalho de origem é o espaço de trabalho aberto sem restrições de acesso público. É onde se cria um pipeline.
  • O espaço de trabalho alvo é o espaço de trabalho restrito com restrição de acesso público de entrada. É onde se cria a casa do lago.

Para criar os espaços de trabalho, siga estas etapas:

  1. Crie dois espaços de trabalho no Microsoft Fabric. Para obter detalhes, consulte Criar um espaço de trabalho.

  2. Nas configurações do arrendatário, habilite a proteção de acesso de entrada ao nível do espaço de trabalho.

  3. Para o espaço de trabalho de destino, configure links privados no nível do espaço de trabalho.

Etapa 2: Criar uma casa de lago no espaço de trabalho restrito

Crie um lakehouse no espaço de trabalho de destino (restrito) usando a seguinte Create Lakehouse API:

POST https://{workspaceid}.z{xy}.w.api.fabric.microsoft.com/workspaces/{workspaceID}/lakehouses

Captura de ecrã que mostra a criação de uma casa no lago.

Etapa 3: Criar um ponto de extremidade privado gerenciado

Crie um endpoint privado gerido no espaço de trabalho de origem (aberto). Use a definição Workspace no portal ou a seguinte API:

POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/managedPrivateEndpoints

Nesse código, {workspaceFQDN} é {workspaceID}.z{xy}.w.api.fabric.microsoft.com.

Por exemplo: POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/managedPrivateEndpoints.

O targetPrivateLinkResourceId parâmetro é o ID de recurso do serviço Azure Private Link no espaço de trabalho restrito. Para criar um endpoint privado gerido para o workspace alvo, precisa deste ID de recurso.

Captura de ecrã que mostra a API para criar um endpoint privado gerido.

Pode encontrar este ID de recurso no Azure visualizando o JSON do recurso para o espaço de trabalho. Verifique se o ID do espaço de trabalho no JSON corresponde ao espaço de trabalho de destino pretendido.

Captura de ecrã que mostra como obter o ID do recurso da Ligação Privada num ficheiro de recurso JSON.

O proprietário do serviço de ligação privada para o Workspace 2 precisa de aprovar o pedido de um endpoint privado gerido no centro >Ligações pendentes.

Passo 4: Carregar uma tabela Delta Lake para o lakehouse

Use o Azure Storage Explorer para carregar a pasta da sua tabela Delta Lake para o armazenamento gerido da casa do lago restrito:

  1. Vai ao Explorador de Armazenamento, seleciona o ícone de ligação no menu esquerdo e depois seleciona contentor ou diretório ADLS Gen2.

  2. Inicia sessão usando o OAuth.

  3. Introduza um nome de exibição para o armazenamento e introduza o URL do contentor blob no seguinte formato:

    https://{workspaceID}.z{xy}.onelake.fabric.microsoft.com/{workspaceID}/{lakehouseID}

    Nesse código, workspaceID é o ID do espaço de trabalho sem traços, e {xy} são os dois primeiros caracteres do ID do espaço de trabalho.

    Captura de ecrã que mostra a introdução das informações da ligação.

  4. Selecione Conectar. O armazenamento deve agora aparecer na vista de explorador.

  5. Na pasta Tabelas , carrega a tabela Delta Lake que queres usar. Este exemplo usa a tabela customers .

    Captura de ecrã que mostra a opção de carregar uma pasta.

Passo 5: Crie um caderno no espaço de trabalho restrito

Crie um bloco de notas que leia a partir da tabela e escreva numa nova tabela. Para isso, crie um caderno num espaço de trabalho aberto usando a interface:

  1. No espaço de trabalho aberto, cria uma casa do lago com a mesma mesa e um caderno semelhante usando a interface.

    Captura de ecrã que mostra a página para carregar um ficheiro numa nova tabela.

  2. Liga a casa do lago no caderno e executa o script para criar uma nova tabela:

    df = spark("SELECT * FROM Lakehouse_Open.customers")
    display(df)
    df.write.mode("overwrite").saveAsTable("Lakehouse_Open.customersnew")
    

    Captura de ecrã que mostra a execução do script para criar uma nova tabela.

  3. Guarda o caderno.

  4. Recupere a definição do notebook via API e obtenha o resultado da localização:

    Get Notebook Definition API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks/getDefinition
    
    Get location API: GET {location}/result
    
  5. Converte notebook-content.py de Base64 para JSON, copia o conteúdo convertido e depois converte o conteúdo de volta de JSON para Base64 depois de atualizares os valores seguintes com os valores do lakehouse restrito.

  6. Crie um caderno com a definição usando o corpo do pedido atualizado:

    Create Notebook API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks
    
    Get location API: GET {location}/result
    

Passo 6: Crie um pipeline no espaço de trabalho aberto

  1. No espaço de trabalho aberto, crie um pipeline usando o portal Fabric ou API.

  2. Adiciona uma atividade de caderno.

  3. Nas Definições, cria uma ligação.

    Captura de ecrã que mostra o painel para ligar uma fonte de dados.

  4. Selecione o espaço de trabalho restrito.

    Captura de ecrã que mostra a seleção de um espaço de trabalho restrito.

  5. Adicione o ID do caderno como parâmetro:

    @pipeline().parameters.notebookId

  6. Nos parâmetros do pipeline, introduza o ID real do notebook do espaço de trabalho restrito.

    Captura de ecrã que mostra onde adicionar um ID de caderno.

  7. Guardar o pipeline e copiar o ID do pipeline.

Passo 7: Executar o pipeline via API

  1. Ative o pipeline usando a API. Por exemplo, usa o Bruno.

    Aqui está o formato do endpoint API para a execução do pipeline:

    https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{openWsId}/items/{pipelineId}/jobs/instances?jobType=Pipeline`
    
    Get location API: GET {location}
    
  2. Aguarde que o estado da execução termine. Podes verificar o estado na página do Monitor no portal do Fabric.

    Captura de ecrã que mostra a página do Monitor.

Passo 8: Verificar a criação da tabela

  1. Abra o Storage Explorer no lakehouse do espaço de trabalho restrito.

  2. Confirme se a nova tabela foi criada.

  3. Usar a API List Tables para obter as tabelas do lakehouse:

    List Tables API: GET https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/tables