Arbeta med kunddata i Infrastrukturresurser
Microsoft Fabric OneLake är en enhetlig, logisk datasjö för hela organisationen, utformad för att vara den enda platsen för alla analysdata. Den levereras automatiskt med varje Microsoft Fabric-klientorganisation och bygger på Azure Data Lake Storage (ADLS) Gen2. OneLake stöder alla typer av filer, strukturerade eller ostrukturerade och lagrar alla tabelldata i Delta Parquet-format. Det möjliggör samarbete mellan olika företagsgrupper genom att tillhandahålla en enda datasjö som som standard styrs med distribuerat ägarskap för samarbete inom en klientorganisations gränser. Arbetsytor i en klientorganisation gör det möjligt för olika delar av organisationen att distribuera ägarskaps- och åtkomstprinciper, och alla data i OneLake kan nås via dataobjekt som Lakehouses och Warehouses.
När det gäller datalager fungerar OneLake som den gemensamma lagringsplatsen för inmatning, transformering, insikter i realtid och Business Intelligence-visualiseringar. Den centraliserar de olika infrastrukturtjänsterna och är lagringen för dataobjekt som förbrukas av alla arbetsbelastningar i Infrastrukturresurser.
Läsa och skriva data i Microsoft Fabric
Microsoft Fabric är en plattform som möjliggör lagring och hantering av kunddata. För att kunna läsa och skriva data i Infrastrukturresurser måste du använda REST-API:er för infrastrukturresurser och lämpliga autentiseringsmetoder.
API-behörigheter
Vissa metoder för att komma åt kunddata kräver användning av andra tjänster utanför Fabric, till exempel Azure Storage eller Azure SQL Database. I exemplet med Microsoft Fabric Developer Kit används till exempel API-behörigheten Azure Storage user_impersonation
tillsammans med behörigheten Power BI-tjänst Lakehouse.Read.All för att få åtkomst till data från Lakehouses.
Du kan använda Azure SQL Database för att komma åt tabelldata från lagerobjekt. I det här fallet konfigurerar du din app med Azure SQL Database user_impersonation
så att den kör frågor mot databasen åt användaren och Power BI-tjänst Warehouse.Read.All för att köra frågor mot slutpunkten för Rest-API:et för infrastrukturresurser.
Se till att du konfigurerar din Microsoft Entra-ID-app enligt dina utvecklingsbehov.
Autentisering
Innan du kan börja använda REST-API:er för infrastrukturresurser eller andra tjänster, till exempel Azure Storage och Azure SQL Database, måste du å användarens vägnar autentisera med hjälp av en token. Den här token kan hämtas via en tokenutbytesprocess.
Fabric Workload Development Kit SDK tillhandahåller en metod för att hämta en åtkomsttoken i arbetsbelastningens klientdel. Se till exempel Exempel på arbetsbelastningskontrollant.
Den här klienttoken måste skickas till arbetsbelastningens serverdel och bytas ut med hjälp av flödet för en tokens räkning med nödvändiga omfång för att få åtkomst till de resurser du behöver, till exempel OneLake. För att till exempel få åtkomst till och läsa från en Lakehouse måste en användare auktorisera programmet för att göra API-anrop åt dem med hjälp av Azure Storage-behörigheten user_impersonation
. I serverdelen måste åtkomsttoken sedan hämtas med det delegerade omfånget https://storage.azure.com/user_impersonation
för att använda Azure Storage.
Om du bestämmer dig för att använda SQL för att komma åt dina kunddata måste åtkomsttoken hämtas med omfånget https://database.windows.net//user_impersonation
för att använda Azure SQL Database och namnområdet Microsoft.Data.SqlClient. Åtkomsttoken måste användas som skrivet, med två snedstreck före user_impersonation
, för att verifieras av klassen SQLConnection.
Fler exempel på tokenautentisering finns i Microsoft Fabric Developer Kit-exemplet.
Mer information om hur du hämtar en token finns i DOKUMENTATIONen om REST API för arbetsbelastningsutveckling i Microsoft Fabric.
Läsa metadata
Rest-API:er för infrastrukturresurser ger ett sätt att komma åt objektegenskaper. Om du till exempel kör frågor mot Get Lakehouse-API:et får du metadata för en viss Lakehouse, inklusive användbara egenskaper som OneLake-sökvägar och SQL-anslutningssträng. En annan användbar slutpunkt är API:et Hämta lager, som returnerar följande information:
{
Id: Guid
Type: string
DisplayName: string
Description: string
WorkspaceId: Guid
Properties {
ConnectionInfo: string
CreatedDate: DateTime
LastUpdatedTime: DateTime
}
}
Här är egenskapen "ConnectionInfo" det fullständigt kvalificerade domännamnet (FQDN) för Warehouse SQL Server. Med det här fullständiga domännamnet kan du upprätta en SQL-anslutning. Mer information finns i Anslutning till Datalagring i Microsoft Fabric. Exempel på implementering finns i Microsoft Fabric Workload Development Kit.
Läsa data
När du har autentiserats kan du ansluta till OneLake med hjälp av REST-API:er för Azure Data Lake Storage för att läsa olika typer av data. Vi rekommenderar att du använder Delta Lake-protokollet för att läsa tabeller.
Om du väljer att använda Azure SQL Database kan du också implementera följande procedur för att läsa data från ett lager.
Skapa en auktoriseringskontext. Ett exempel på hur du skapar en auktoriseringskontext finns i metoden AuthenticateDataPlaneCall.
Hämta en token med omfånget Warehouse.Read.All för användarens räkning med hjälp av ägartoken som skickas från klientdelen.
Använd infrastrukturtoken för att anropa API:et Hämta lager. Du måste komma åt anslutningsinformationen och visningsnamnet för lagret, som är serverns första katalog.
Hämta en token med SQL-omfång för användarens räkning. Om du vill upprätta en SQL-anslutning använder du omfånget
https://database.windows.net//user_impersonation
.Använd SQL-token och anslutningsinformation för att öppna en SQL-anslutning:
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; }
Den här anslutningen kan nu efterfrågas för att få åtkomst till data från informationslagret. Mer information om hur du använder namnområdet Microsoft.Data.SqlClient finns i Dokumentation om Namnområde för Microsoft.Data.SqlClient.
Skriva data
Förutom att läsa data med hjälp av token kan du också använda ADLS-API:er för att skriva data till tabeller enligt beskrivningen i Delta Lake-protokollet.
Du kan också använda API:erna för att skapa filer och kataloger.
Du kan också använda andra Fabric-arbetsbelastningar för att skriva data till plattformen. Du kan till exempel använda Fabrics Lakehouse-arbetsbelastnings-API för att effektivt läsa in vanliga filtyper till en optimerad Delta-tabell. Detta görs genom att skicka en POST-begäran till slutpunkten Tabeller – Inläsningstabell-API.
SQL-anslutningen kan också användas för att utföra kommandon som infogar data i tabeller.