Compartilhar via


Usar um pipeline para acessar um lakehouse em um workspace restrito de entrada de um workspace aberto

Você pode usar um pipeline para estabelecer a comunicação entre diferentes workspaces, entre um workspace aberto e um workspace que restringe o acesso público de entrada. Por exemplo, você pode criar um pipeline em um workspace aberto para acessar um lakehouse em um workspace restrito de entrada. Essa configuração permite que o notebook no Workspace 1 acesse o lakehouse com segurança e leia as tabelas Delta Lake no Workspace 2 sem expô-las ao acesso público.

Etapa 1: Criar os workspaces

Você precisa de um workspace aberto e de um workspace restrito. Este artigo refere-se aos workspaces da seguinte maneira:

  • O workspace de origem é o workspace aberto sem restrição de acesso público. É onde você cria um pipeline.
  • O espaço de trabalho de destino é o espaço de trabalho restrito com entrada pública restrita. É onde você cria a casa do lago.

Para criar os workspaces, siga estas etapas:

  1. Crie dois workspaces no Microsoft Fabric. Para obter detalhes, consulte Criar um workspace.

  2. Nas configurações de locatário, habilite a proteção de acesso de entrada no nível do workspace.

  3. Para o workspace de destino, configure links privados no nível do workspace.

Etapa 2: Criar uma lakehouse no workspace restrito

Crie um lakehouse no workspace de destino (restrito) usando a seguinte API Create Lakehouse:

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

Captura de tela que mostra a criação de um lakehouse.

Etapa 3: Criar um ponto de extremidade privado gerenciado

Crie um ponto de extremidade privado gerenciado no workspace de origem (aberto). Use a configuração do Workspace no portal ou na 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 é a ID do recurso do serviço de Link Privado do Azure no workspace restrito. Para criar um ponto de extremidade privado gerenciado para o workspace de destino, você precisa dessa ID de recurso.

Captura de tela que mostra a API para criar um ponto de extremidade privado gerenciado.

Você pode encontrar essa ID de recurso no Azure exibindo o JSON do recurso para o workspace. Verifique se a ID do workspace no JSON corresponde ao workspace de destino pretendido.

Captura de tela que mostra como obter a ID do recurso de Link Privado em um arquivo JSON de recurso.

O proprietário do serviço Private Link para o Workspace 2 precisa aprovar a solicitação de um ponto de extremidade privado gerenciado em Azure Private Link Center>Pending connections.

Etapa 4: Carregar uma tabela Delta Lake para a Lakehouse

Use o Gerenciador de Armazenamento do Azure para carregar a pasta da tabela Delta Lake no armazenamento gerenciado do lakehouse restrito:

  1. Vá para o Gerenciador de Armazenamento, selecione o ícone de conexão no menu à esquerda e selecione o contêiner ou diretório do ADLS Gen2.

  2. Entre usando o OAuth.

  3. Insira um nome de exibição para o armazenamento e insira a URL do contêiner de blob no seguinte formato:

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

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

    Captura de tela que mostra a inserção de informações de conexão.

  4. Selecione Conectar. O armazenamento agora deve aparecer na visualização do Explorador.

  5. Na pasta Tabelas , carregue a tabela Delta Lake que você deseja usar. Este exemplo usa a tabela de clientes .

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

Etapa 5: Criar um notebook no workspace restrito

Crie um bloco de anotações que leia da tabela e grave em uma nova tabela. Para fazer isso, crie um notebook em um workspace aberto usando a UI:

  1. No workspace aberto, crie uma lakehouse com a mesma tabela e um notebook semelhante usando a interface do usuário.

    Captura de tela que mostra a página para carregar um arquivo em uma nova tabela.

  2. Conecte o lakehouse no notebook e execute 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 tela que mostra a execução do script para criar uma nova tabela.

  3. Salve o bloco de anotações.

  4. Recupere a definição do notebook por meio da 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. Converta notebook-content.py de Base64 para JSON, copie o conteúdo convertido e converta o conteúdo de volta de JSON para Base64 depois de atualizar os valores a seguir com valores da lakehouse restrita.

  6. Crie um notebook com a definição usando o corpo da solicitação atualizado:

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

Etapa 6: Criar um pipeline no espaço de trabalho aberto

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

  2. Adicione uma atividade de notebook.

  3. Em Configurações, crie uma conexão.

    Captura de tela que mostra o painel para conectar uma fonte de dados.

  4. Selecione o workspace restrito.

    Captura de tela que mostra a seleção de um workspace restrito.

  5. Adicione a ID do notebook como um parâmetro:

    @pipeline().parameters.notebookId

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

    Captura de tela que mostra onde adicionar a ID do notebook.

  7. Salve o pipeline e copie o ID do pipeline.

Etapa 7: Executar o pipeline por meio da API

  1. Inicie o pipeline usando a API. Por exemplo, use Bruno.

    Aqui está o formato do ponto de extremidade da 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 até que o status de execução seja concluído. Você pode verificar o status na página Monitor no portal do Fabric.

    Captura de tela que mostra a página Monitor.

Etapa 8: Verificar a criação da tabela

  1. Abra o Gerenciador de Armazenamento no lakehouse do workspace restrito.

  2. Confirme se a nova tabela foi criada.

  3. Use a API tabelas de lista para obter as tabelas lakehouse:

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