Compartilhar via


Trabalhar com dados do cliente no Fabric

O Microsoft Fabric OneLake é um data lake lógico unificado para toda a organização, projetado para ser o único local para todos os dados de análise. Ele vem automaticamente com cada locatário do Microsoft Fabric e é criado sobre o Azure Data Lake Storage (ADLS) Gen2. O OneLake oferece suporte a qualquer tipo de arquivo, estruturado ou não, e armazena todos os dados tabulares no formato Delta Parquet. Ele permite a colaboração entre diferentes grupos de negócios, fornecendo um único data lake que é governado por padrão com propriedade distribuída para colaboração dentro dos limites de um locatário. Os espaços de trabalho em um locatário permitem que diferentes partes da organização distribuam políticas de propriedade e acesso, e todos os dados no OneLake são acessados por meio de itens de dados, como Lakehouses e Warehouses.

Em termos de armazenamentos de dados, o OneLake serve como o local de armazenamento comum para ingestão, transformação, insights em tempo real e visualizações de Business Intelligence. Ele centraliza os diferentes serviços do Fabric e é o armazenamento para itens de dados consumidos por todas as cargas de trabalho no Fabric.

Como ler e gravar dados no Microsoft Fabric

O Microsoft Fabric é uma plataforma que permite o armazenamento e o gerenciamento de dados dos clientes. Para ler e gravar dados no Fabric, você precisa usar as APIs REST do Fabric e os métodos de autenticação apropriados.

Permissões da API

Alguns métodos de acesso aos dados do cliente exigem o uso de outros serviços fora do Fabric, como o Armazenamento do Azure ou o Banco de Dados SQL do Azure. Por exemplo, no exemplo do kit de desenvolvedor do Microsoft Fabric, a permissão de API user_impersonation do Armazenamento do Azure é usada em conjunto com a permissão Lakehouse.Read.All do serviço do Power BI para acessar dados de Lakehouses.

Você pode usar o Banco de Dados SQL do Azure para acessar dados de tabela de itens do Warehouse. Nesse caso, configure seu aplicativo com o Banco de Dados SQL do Azure user_impersonation para consultar o banco de dados em nome do usuário, e o serviço do Power BI Warehouse.Read.All para consultar o ponto de extremidade Get Warehouse da API REST do Fabric.

Certifique-se de configurar seu aplicativo do Microsoft Entra ID de acordo com suas necessidades de desenvolvimento.

Autenticação

Antes de começar a usar as APIs REST do Fabric ou outros serviços, como o Armazenamento do Azure e o Banco de Dados SQL do Azure, em nome do usuário, você precisa se autenticar usando um token. Esse token pode ser obtido através de um processo de troca de tokens.

O SDK do kit de desenvolvimento de cargas de trabalho do Fabric fornece um método para adquirir um token de acesso no front-end da carga de trabalho. Por exemplo, confira Controlador da carga de trabalho de exemplo.

Esse token de cliente deve ser passado para o back-end da carga de trabalho e trocado usando o fluxo On-Behalf-Of de um token com os escopos necessários para acessar o recurso desejado, como o OneLake. Por exemplo, para acessar e ler de um Lakehouse, um usuário deve ter autorizado o aplicativo a fazer chamadas de API em seu nome usando a permissão user_impersonation do Armazenamento do Azure. Em seguida, no back-end, o token de acesso deve ser obtido com o escopo delegado https://storage.azure.com/user_impersonation para usar o Armazenamento do Azure.

Se você decidir usar o SQL para acessar os dados do cliente, o token de acesso deverá ser obtido com o escopo https://database.windows.net//user_impersonation para usar o Banco de Dados SQL do Azure e o namespace Microsoft.Data.SqlClient. O token de acesso deve ser usado conforme gravado, com duas barras “/” antes de user_impersonation, para ser validado pela classe SQLConnection. Para obter mais exemplos de autenticação de token, confira o exemplo do kit de desenvolvedor do Microsoft Fabric.

Mais detalhes sobre como obter um token podem ser encontrados na documentação da API REST do Kit de desenvolvimento de carga de trabalho do Microsoft Fabric.

Ler metadados

As APIs REST do Fabric fornecem uma maneira de acessar as propriedades dos itens. Por exemplo, consultar a API Get Lakehouse fornece os metadados de um determinado Lakehouse, incluindo propriedades úteis, como caminhos OneLake e a cadeia de conexão SQL. Outro ponto de extremidade útil é a API Get Warehouse, que retorna as seguintes informações:

    {
        Id: Guid
        Type: string
        DisplayName: string
        Description: string
        WorkspaceId: Guid
        Properties {
            ConnectionInfo: string
            CreatedDate: DateTime
            LastUpdatedTime: DateTime
        }
    }

Aqui, a propriedade "ConnectionInfo" é o Nome de Domínio Totalmente Qualificado (FQDN) do SQL Server do Warehouse. Com esse FQDN, você pode estabelecer uma conexão de SQL. Para obter mais informações: confira Conectividade com armazenamento de dados no Microsoft Fabric. Para obter exemplos de implementação, confira o Kit de desenvolvimento de carga de trabalho do Microsoft Fabric.

Lendo dados

Depois de autenticar, você pode se conectar ao OneLake usando as APIs REST do Armazenamento do Azure Data Lake para ler diferentes tipos de dados. Recomendamos utilizar o protocolo Delta Lake para ler tabelas.

Como alternativa, caso opte por utilizar o Banco de Dados SQL do Azure, você poderá implementar o procedimento a seguir para ler dados de um Warehouse.

  1. Crie um contexto de autorização. Para obter um exemplo de criação de um contexto de autorização, confira o método AuthenticateDataPlaneCall.

  2. Adquira um token com o escopo Warehouse.Read.All em nome do usuário usando o token de portador passado do front-end.

  3. Use o token do Fabric para chamar a API Get Warehouse. É necessário acessar as informações de conexão e o nome de exibição do Warehouse, que é o catálogo inicial do servidor.

  4. Adquira um token com escopos de SQL em nome do usuário. Para estabelecer com êxito uma conexão de SQL, use o escopo https://database.windows.net//user_impersonation.

  5. Use o token de SQL e as informações de conexão para abrir uma conexão de SQL:

    private SqlConnection GetSqlConnection(string token, string databaseFqdn, string initialCatalog)
            {
                var builder = new SqlConnectionStringBuilder();
                builder.DataSource = databaseFqdn; // ConnectionInfo from Get Warehouse API
                builder.InitialCatalog = initialCatalog; //display name of the Warehouse
                builder.ConnectTimeout = 120;
    
                var connection = new SqlConnection();
                connection.AccessToken = token; // SQL token acquired with the Azure SQL Database user_impersonation scope
                connection.ConnectionString = builder.ConnectionString;
                connection.Open();
                return connection;
            }
    
  6. Essa conexão agora pode ser consultada para acessar dados do Warehouse. Para obter mais informações sobre como utilizar o namespace Microsoft.Data.SqlClient, confira a documentação do namespace Microsoft.Data.SqlClient.

Gravação de dados

Além de ler dados usando o token, você também pode usar APIs do ADLS para gravar dados em tabelas, conforme descrito pelo protocolo Delta Lake.

Você também pode usar as APIs para criar arquivos e diretórios.

Como alternativa, você pode usar outras cargas de trabalho do Fabric para gravar dados na plataforma. Por exemplo, você pode usar a API de carga de trabalho Lakehouse do Fabric para carregar com eficiência tipos de arquivos comuns em uma tabela Delta otimizada. Isso é feito enviando uma solicitação POST para o ponto de extremidade de API Tables - Load Table.

A conexão de SQL também pode ser usada para executar comandos que inserem dados em tabelas.