Freigeben über


Arbeiten mit Kundendaten in Fabric

Microsoft Fabric OneLake ist ein einheitlicher, logischer Data Lake für die gesamte Organisation und der Ort, an dem alle Analysedaten untergebracht sind. Es ist automatisch in jedem Microsoft Fabric-Mandanten enthalten und basiert auf Azure Data Lake Storage (ADLS) Gen2. OneLake unterstützt alle Arten von strukturierten und unstrukturierten Dateien und speichert alle tabellarischen Daten im Delta-Parquet-Format. Es ermöglicht die Zusammenarbeit über verschiedene Geschäftsgruppen hinweg, indem ein einzelner Data Lake bereitgestellt wird, der für die Zusammenarbeit innerhalb der Grenzen eines Mandanten standardmäßig in geteilter Verantwortung gesteuert wird. Arbeitsbereiche innerhalb eines Mandanten ermöglichen es verschiedenen Teilen der Organisation, Besitz- und Zugriffsrichtlinien zu verteilen, während über Datenelemente wie Lakehouses und Warehouses auf alle Daten in OneLake zugegriffen werden kann. In Bezug auf Datenspeicher dient OneLake als gemeinsamer Speicherort für Aufnahme, Transformation, Echtzeiterkenntnisse und Business Intelligence-Visualisierungen. Es zentralisiert die verschiedenen Fabric-Dienste und ist der Speicher für Datenelemente, die von allen Workloads in Fabric verbraucht werden.

Microsoft Fabric Eventhouse bietet eine skalierbare Lösung zum Behandeln und Analysieren großer Datenmengen, insbesondere in Echtzeitanalyseszenarien. Eventhouses verwalten Datenströme in Echtzeit effizient, sodass Organisationen Daten in nahezu Echtzeit aufnehmen, verarbeiten und analysieren können. Sie eignen sich ideal für Szenarien, die zeitnahe Einblicke erfordern und die bevorzugte Engine für halbstrukturierte und Freitextanalyse sind. Ein Eventhouse ist ein Arbeitsbereich von Datenbanken, die über Projekte hinweg freigegeben werden können, um die Leistung zu optimieren und die Kosten zu senken, indem mehrere Datenbanken gleichzeitig verwaltet werden. Eventhouses unterstützen Daten aus mehreren Quellen und Formaten, automatische Indizierung und Partitionierung von Daten basierend auf der Erfassungszeit.

Lesen und Schreiben von Daten in Microsoft Fabric

Microsoft Fabric ist eine Plattform, die die Speicherung und Verwaltung von Kundendaten ermöglicht. Um Daten in Fabric zu lesen und zu schreiben, müssen Sie die Fabric-REST-APIs und die entsprechenden Authentifizierungsmethoden verwenden.

API-Berechtigungen

Einige Methoden für den Zugriff auf Kundendaten erfordern die Verwendung anderer Dienste außerhalb von Fabric, wie z. B. Azure Storage oder Azure SQL-Datenbank. Beispielsweise wird im Microsoft Fabric Developer Kit-Beispiel die API-Berechtigung Azure Storage user_impersonation in Verbindung mit der Power BI-Dienst Lakehouse.Read.All-Berechtigung für den Zugriff auf Daten aus Lakehouse verwendet.

Sie können Azure SQL-Datenbank verwenden, um auf Tabellendaten aus Warehouse-Artikeln zuzugreifen. Konfigurieren Sie in diesem Fall Ihre App mit Azure SQL-Datenbank user_impersonation, um die Datenbank im Namen des Benutzers abzufragen, und Power BI-Dienst Warehouse.Read.All, um den Fabric REST API Get Warehouse-Endpunkt abzufragen.

Stellen Sie sicher, dass Sie Ihre Microsoft Entra ID-App entsprechend Ihren Entwicklungsanforderungen konfigurieren.

Authentifizierung

Bevor Sie mit der Verwendung der Fabric-REST-APIs oder anderer Dienste wie Azure Storage und Azure SQL-Datenbank im Namen des Benutzers beginnen können, müssen Sie sich mit einem Token authentifizieren. Dieses Token kann über einen Token-Austauschprozess abgerufen werden.

Das Fabric Workload Development Kit-SDK bietet eine Methode zum Abrufen eines Zugriffstokens im Workload-Front-End. Siehe Beispiel Workload-Controller.

Dieses Client-Token muss an das Workload-Back-End übergeben und mithilfe des On-Behalf-Of-Flusses für ein Token mit den erforderlichen Bereichen ausgetauscht werden, um auf Ihre gewünschte Ressource zuzugreifen, z. B. OneLake. Um beispielsweise auf ein Lakehouse zuzugreifen und daraus zu lesen, muss ein Benutzer die Anwendung autorisieren, API-Aufrufe in seinem Namen zu tätigen, indem er die Azure Storage-Berechtigung user_impersonation verwendet. Dann muss im Back-End das Zugriffstoken mit dem delegierten Bereich https://storage.azure.com/user_impersonation eingeholt werden, um Azure Storage zu nutzen.

Wenn Sie SQL für den Zugriff auf Ihre Kundendaten verwenden möchten, muss das Zugriffstoken mit dem Bereich https://database.windows.net//user_impersonation abgerufen werden, um Azure SQL-Datenbank und den Microsoft.Data.SqlClient-Namespace zu verwenden. Das Zugriffstoken muss so verwendet werden, wie es geschrieben ist, mit zwei Doppelschrägstrichen vor user_impersonation, um von der SQLConnection-Klasse validiert zu werden. Beispiele für die Token-Authentifizierung finden Sie im Microsoft Fabric Developer Kit-Beispiel.

Weitere Informationen zum Abrufen eines Tokens finden Sie in der REST-API-Dokumentation zur Microsoft Fabric Workload-Entwicklung.

Metadaten lesen

Fabric REST APIs bieten eine Möglichkeit, auf die Eigenschaften von Artikeln zuzugreifen. Beispielsweise stellt die Abfrage der Get Lakehouse-API die Metadaten für ein bestimmtes Lakehouse bereit, einschließlich nützlicher Eigenschaften wie OneLake-Pfade und der SQL-Verbindungszeichenfolge. Ein weiterer nützlicher Endpunkt ist die Get Warehouse API, die die folgenden Informationen zurückgibt:

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

Hier ist die Eigenschaft „ConnectionInfo“ der vollqualifizierte Domänenname (FQDN) des Data Warehouse SQL Servers. Mit diesem FQDN können Sie eine SQL-Verbindung herstellen. Weitere Informationen finden Sie unter Konnektivität zu Data Warehousing in Microsoft Fabric. Implementierungsbeispiele finden Sie im Microsoft Fabric Workload Development Kit.

Lesen von Daten

Nachdem Sie sich authentifiziert haben, können Sie mithilfe von Azure Data Lake Storage-REST-APIs eine Verbindung mit OneLake herstellen, um verschiedene Datentypen zu lesen. Wir empfehlen die Verwendung des Delta Lake-Protokolls, um Tabellen zu lesen.

Alternativ können Sie, wenn Sie Azure SQL-Datenbank verwenden, das folgende Verfahren implementieren, um Daten aus einem Speicherort zu lesen.

  1. Erstellen Sie einen Autorisierungskontext. Ein Beispiel zum Erstellen eines Autorisierungskontexts finden Sie unter der AuthenticateDataPlaneCall-Methode.

  2. Erwerben Sie ein Token mit dem Umfang Warehouse.Read.All im Namen des Benutzers unter Verwendung des vom Front-End übergebenen Bearertokens.

  3. Verwenden Sie das Fabric-Token, um die Warehouse-API abrufen. Es ist erforderlich, auf die Verbindungsinformationen und den Anzeigenamen des Datenlagers zuzugreifen, welches der Anfangskatalog des Servers ist.

  4. Rufen Sie ein Token mit SQL-Bereichen im Auftrag des Benutzers ab. Verwenden Sie den Bereich https://database.windows.net//user_impersonation, um eine SQL-Verbindung erfolgreich herzustellen.

  5. Verwenden Sie die SQL-Token- und Verbindungsinformationen, um eine SQL-Verbindung zu öffnen:

    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. Diese Verbindung kann jetzt abgefragt werden, um auf Daten aus dem Data Warehouse zuzugreifen. Weitere Informationen zur Verwendung des Microsoft.Data.SqlClient-Namespace finden Sie in der Dokumentation zu Microsoft.Data.SqlClient Namespace.

Eventhouse-API

Nachdem Sie sich authentifiziert haben, können Sie Aktionen wie das Erstellen von Eventhouse, das Löschen von Eventhouse, das Abrufen einer Liste von Eventhouses usw. ausführen. Eine Möglichkeit, dies zu tun, ist die Verwendung des Portals - Eventhouse Übersicht.

Die andere Möglichkeit ist die Verwendung der Eventhouse Rest-API - Eventhouse Rest API Übersicht.

  1. Autorisieren.
  2. Erwerben Sie ein Token mit dem Umfang FabricEventhouse.Read.All im Namen des Benutzers unter Verwendung des vom Front-End übergebenen Bearertokens.
  3. Verwenden Sie das Fabric--Token, um die Get Eventhouse-APIaufzurufen.
  4. Jetzt können Sie mit einer Liste der Datenbanken des Eventhouse die gewünschte DB abfragen, wie im Abschnitt "Abfragedaten" unten beschrieben.

Abfragedaten

Führen Sie zum Abfragen von Daten aus einer Eventhouse-KQL-Datenbank die folgenden Schritte aus: Zuerst authentifizieren Sie sich mit der entsprechenden Methode. Stellen Sie als Nächstes eine Verbindung mit dem Eventhouse her, um die Liste der Datenbanken abzurufen. Fragen Sie dann die spezifische Datenbank ab, auf die Sie zugreifen möchten. Es ist wichtig, zwischen Abfragebefehlen wie .show tablesund Datenabfragen wie <TableName> | take 10zu unterscheiden. Vollständige Dokumentation zur KQL-REST-API finden Sie in KQL-REST-API-Dokumentation.

Die andere Möglichkeit ist die Verwendung der Eventhouse Rest-API - Eventhouse Rest API Übersicht.

  1. Autorisieren.
  2. Erwerben Sie ein Token mit dem Umfang KQLDatabase.ReadWrite.All im Namen des Benutzers unter Verwendung des vom Front-End übergebenen Bearertokens.
  3. Verwenden Sie das Kql--Token, um die KQL-Rest-APIaufzurufen.

Schreiben von Daten

Zusätzlich zum Lesen von Daten mithilfe des Tokens können Sie auch ADLS-APIs verwenden, um Daten in Tabellen zu schreiben, wie im Delta Lake-Protokoll beschrieben.

Sie können die APIs auch zum Erstellen von Dateien und Verzeichnissen verwenden.

Alternativ können Sie andere Fabric-Workloads verwenden, um Daten auf die Plattform zu schreiben. Sie können beispielsweise die Lakehouse-Workload-API von Fabric verwenden, um allgemeine Dateitypen effizient in eine optimierte Delta-Tabelle zu laden. Dazu senden Sie eine POST-Anfrage an den Tabellen - Tabelle laden API-Endpunkt.

Die SQL-Verbindung kann auch verwendet werden, um Befehle auszuführen, die Daten in Tabellen einfügen.

OneLake-Integration

Sie können sich für die Verwendung der OneLake-Integration in Ihren Workloads entscheiden. Wenn Sie ein neues Element für Ihre Workload erstellen, erstellt Fabric automatisch Ordner für das neue Element.

Um dies zu aktivieren, muss das XML-Manifest des Elements dies deklarieren, indem es festlegt, dass das CreateOneLakeFoldersOnArtifactCreation-Attribut auf true gesetzt wird. Beispiel:

<ItemManifestConfiguration xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" SchemaVersion="1.101.0">  
  <Item TypeName="Org.WorkloadSample.SampleWorkloadItem" Category="Data" CreateOneLakeFoldersOnArtifactCreation="true">
    <Workload WorkloadName="Org.WorkloadSample" />
    ...
  </Item>
</ItemManifestConfiguration>

Hinweis

SchemaVersion muss auf 1.101.0 (oder höher unterstützte Versionen) festgelegt werden.

Die SchemaVersion muss ebenfalls in WorkloadManifest.xml festgelegt werden.

<WorkloadManifestConfiguration xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" SchemaVersion="1.101.0">
  <Workload WorkloadName="Org.WorkloadSample" HostingType="Remote">
  ...
  </Workload>
</WorkloadManifestConfiguration>

Wenn ein neues Element erstellt wird, werden die folgenden Stammordner in OneLake erstellt:

<WorkspaceID>/<ItemID>/Files

<WorkspaceID>/<ItemID>/Tables

Sie können weitere Ordner unter diesen Ordnern erstellen und zum Speichern von Daten in einem beliebigen Format (unter Files Ordner) oder im Parkettformat (unter Tables Ordner) verwenden. Folgen Sie den obigen Anweisungen , um oneLake-Speicher zu lesen/schreiben.