Teilen über


Daten aus einer Datenverarbeitungspipeline an Microsoft Fabric senden

Wichtig

Die von Azure Arc aktivierte Azure IoT Operations Preview befindet sich derzeit in der VORSCHAU. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Verwenden Sie das Fabric Lakehouse-Ziel zum Schreiben von Daten in ein Lakehouse in Microsoft Fabric aus einer Azure IoT-Datenprozessor (Preview)-Pipeline. In der Zielphase werden Parquet-Dateien in ein Lakehouse geschrieben, mit dem Sie die Daten in Delta-Tabellen anzeigen können. Die Zielstufe stapelt Nachrichten, bevor sie an Microsoft Fabric gesendet werden.

Voraussetzungen

Um eine Microsoft Fabric-Zielpipelinephase zu konfigurieren und zu verwenden, benötigen Sie Folgendes:

Einrichten von Microsoft Fabric

Bevor Sie über eine Datenpipeline in Microsoft Fabric schreiben können, müssen Sie zugriff auf das Seehaus von der Pipeline aus gewähren. Sie können entweder einen Dienstprinzipal oder eine verwaltete Identität verwenden, um die Pipeline zu authentifizieren. Der Vorteil der Verwendung einer verwalteten Identität besteht darin, dass Sie den Lebenszyklus des Dienstprinzipals nicht verwalten müssen. Die verwaltete Identität wird automatisch von Azure verwaltet und ist an den Lebenszyklus der Ressource gebunden, der sie zugewiesen ist.

Bevor Sie entweder den Dienstprinzipal- oder verwalteten Identitätszugriff auf ein Lakehouse konfigurieren, aktivieren Sie die Dienstprinzipalauthentifizierung.

So erstellen Sie einen Dienstprinzipal mit einem geheimen Clientschlüssel:

  1. Verwenden Sie den folgenden Azure CLI-Befehl, um einen Dienstprinzipal zu erstellen.

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. Die Ausgabe dieses Befehls enthält eine appId, displayName, password und tenant. Notieren Sie sich diese Werte, die Sie verwenden müssen, wenn Sie den Zugriff auf Ihre Cloudressource wie Microsoft Fabric konfigurieren, einen geheimen Schlüssel erstellen und ein Pipelineziel konfigurieren:

    {
        "appId": "<app-id>",
        "displayName": "<name>",
        "password": "<client-secret>",
        "tenant": "<tenant-id>"
    }
    

So fügen Sie den Dienstprinzipal zu Ihrem Microsoft Fabric-Arbeitsbereich hinzu:

  1. Notieren Sie sich Ihre Arbeitsbereichs- und Lakehouse-ID. Sie finden diese Werte in der URL, die Sie für den Zugriff auf Ihr Lakehouse verwenden:

    https://msit.powerbi.com/groups/<your workspace ID>/lakehouses/<your lakehouse ID>?experience=data-engineering

  2. Wählen Sie in Ihrem Arbeitsbereich Zugriffsverwaltung aus:

    Screenshot, der zeigt, wie Sie den Link „Zugriff verwalten“ finden.

  3. Wählen Sie Personen oder Gruppen hinzufügen aus:

    Screenshot, der zeigt, wie ein Benutzer hinzugefügt wird.

  4. Suchen Sie nach Ihrem Dienstprinzipal anhand des Namens. Beginnen Sie mit der Eingabe, um eine Liste der übereinstimmenden Dienstprinzipale anzuzeigen. Wählen Sie den Dienstprinzipal aus, den Sie zuvor erstellt haben:

    Screenshot, der zeigt, wie ein Dienstprinzipal hinzugefügt wird.

  5. Gewähren Sie Ihrem Dienstprinzipaladministrator Zugriff auf den Arbeitsbereich.

Konfigurieren Ihres geheimen Schlüssels

Damit die Zielstufe eine Verbindung mit Microsoft Fabric herstellen kann, muss sie auf einen geheimen Schlüssel zugreifen, der die Authentifizierungsdetails enthält. So erstellen Sie ein Geheimnis

  1. Verwenden Sie den folgenden Befehl, um Ihrem Azure Key Vault einen geheimen Schlüssel hinzuzufügen, der den geheimen Clientschlüssel enthält, den Sie beim Erstellen des Dienstprinzipals notieren haben:

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessFabricSecret --value <client-secret>
    
  2. Fügen Sie den Geheimnisverweis zu Ihrem Kubernetes-Cluster hinzu, indem Sie die Schritte in Verwalten von Geheimnissen für Ihre Azure IoT Einsatz (Preview)-Bereitstellung ausführen.

Konfigurieren der Zielstufe

Die JSON-Konfiguration der Fabric Lakehouse -Zielstufe definiert die Details der Phase. Um die Phase zu erstellen, können Sie entweder mit der formularbasierten Benutzeroberfläche interagieren oder die JSON-Konfiguration auf der Registerkarte Erweitert bereitstellen:

Feld Typ Beschreibung Erforderlich Standard Beispiel
Anzeigename String Ein Name, der in der Datenprozessoroberfläche angezeigt werden soll. Ja - Azure IoT MQ output
Beschreibung String Eine benutzerfreundliche Beschreibung der Funktionsweise der Stufe. No Write to topic default/topic1
WorkspaceId String Die Arbeitsbereichs-ID des Lakehouses. Ja -
LakehouseId String Die Lakehouse Lakehouse-ID. Ja -
Tabelle String Der Name der Tabelle, in die geschrieben werden soll. Ja -
Dateipfad1 Vorlage Der Dateipfad, in den die Parquet-Datei geschrieben werden soll. Nein {{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}}
Batch2 Batch Wie Sie Daten stapeln. No 60s 10s
Authentifizierung4 String Die Authentifizierungsdetails zum Herstellen einer Verbindung mit Azure Data Explorer. Service principal oder Managed identity Dienstprinzipal Ja -
Erneut versuchen Wiederholen Die zu verwendende Wiederholungsrichtlinie. No default fixed
Spalten > Namen Zeichenfolge Der Name der Spalte. Ja temperature
Spalten > Typ3 Zeichenfolgenenumeration Der Typ der in der Spalte gespeicherten Daten unter Verwendung eines der einfachen Delta-Typen. Ja integer
Spalten > Pfad Path Die Position innerhalb jedes Datensatzes der Daten, aus denen der Wert der Spalte gelesen werden soll. No .{{name}} .temperature

1 Dateipfad: Zum Schreiben von Dateien in Microsoft Fabric benötigen Sie einen Dateipfad. Sie können Vorlagen verwenden, um Dateipfade zu konfigurieren. Dateipfade müssen die folgenden Komponenten in beliebiger Reihenfolge enthalten:

  • instanceId
  • pipelineId
  • partitionId
  • YYYY
  • MM
  • DD
  • HH
  • mm
  • fileNumber

Die Dateinamen sind inkrementelle ganzzahlige Werte, wie durch fileNumber angegeben. Achten Sie darauf, eine Dateierweiterung einzuschließen, wenn Ihr System den Dateityp erkennen soll.

2 Batchverarbeitung: Batchverarbeitung ist obligatorisch, wenn Sie Daten in Microsoft Fabric schreiben. Die Zielstufe stapelt Nachrichten über ein konfigurierbares Zeitintervall.

Wenn Sie kein Batchintervall konfigurieren, verwendet die Phase 60 Sekunden als Standard.

3 Typ: Der Datenprozessor schreibt mithilfe des Delta-Formats in Microsoft Fabric. Der Datenprozessor unterstützt alle einfachen Delta-Datentypen mit Ausnahme von decimal und timestamp without time zone.

Um sicherzustellen, dass alle Datums- und Uhrzeitangaben in Microsoft Fabric korrekt dargestellt werden, stellen Sie sicher, dass der Wert der Eigenschaft eine gültige RFC 3339-Zeichenfolge ist und dass der Datentyp entweder date oder timestamp ist.

1 Authentifizierung: Derzeit unterstützt die Zielstufe die dienstprinzipalbasierte Authentifizierung, wenn sie eine Verbindung mit Microsoft Fabric herstellt.

Dienstprinzipalbasierte Authentifizierung

Um die dienstprinzipalbasierte Authentifizierung zu konfigurieren, geben Sie die folgenden Werte an. Sie haben diese Werte beim Erstellen des Dienstprinzipals notiert und den geheimen Verweis zu Ihrem Cluster hinzugefügt.

Feld Beschreibung Erforderlich
TenantId Die Mandanten-ID. Ja
ClientId Die App-ID, die Sie notiert haben, als Sie den Dienstprinzipal erstellt haben, der Zugriff auf die Datenbank hat. Ja
Geheimnis Der geheime Verweis, den Sie in Ihrem Cluster erstellt haben. Ja

Beispielkonfiguration

Das folgende JSON-Beispiel zeigt eine vollständige Konfiguration der Microsoft Fabric Lakehouse-Zielstufe, die die gesamte Nachricht in die quickstart -Tabelle der Datenbank schreibt":

{
    "displayName": "Fabric Lakehouse - 520f54",
    "type": "output/fabric@v1",
    "viewOptions": {
        "position": {
            "x": 0,
            "y": 784
        }
    },
    "workspace": "workspaceId",
    "lakehouse": "lakehouseId",
    "table": "quickstart",
    "columns": [
        {
            "name": "Timestamp",
            "type": "timestamp",
            "path": ".Timestamp"
        },
        {
            "name": "AssetName",
            "type": "string",
            "path": ".assetname"
        },
        {
            "name": "Customer",
            "type": "string",
            "path": ".Customer"
        },
        {
            "name": "Batch",
            "type": "integer",
            "path": ".Batch"
        },
        {
            "name": "CurrentTemperature",
            "type": "float",
            "path": ".CurrentTemperature"
        },
        {
            "name": "LastKnownTemperature",
            "type": "float",
            "path": ".LastKnownTemperature"
        },
        {
            "name": "Pressure",
            "type": "float",
            "path": ".Pressure"
        },
        {
            "name": "IsSpare",
            "type": "boolean",
            "path": ".IsSpare"
        }
    ],
    "authentication": {
        "type": "servicePrincipal",
        "tenantId": "tenantId",
        "clientId": "clientId",
        "clientSecret": "secretReference"
    },
    "batch": {
        "time": "5s",
        "path": ".payload"
    },
    "retry": {
        "type": "fixed",
        "interval": "20s",
        "maxRetries": 4
    }
}

Die Konfiguration definiert Folgendes:

  • Nachrichten werden 5 Sekunden lang gestapelt.
  • Verwendet den Batchpfad .payload, um die Daten für die Spalten zu suchen.

Beispiel

Das folgende Beispiel zeigt eine Beispieleingabenachricht an die Microsoft Fabric Lakehouse-Zielstufe:

{
  "payload": {
    "Batch": 102,
    "CurrentTemperature": 7109,
    "Customer": "Contoso",
    "Equipment": "Boiler",
    "IsSpare": true,
    "LastKnownTemperature": 7109,
    "Location": "Seattle",
    "Pressure": 7109,
    "Timestamp": "2023-08-10T00:54:58.6572007Z",
    "assetName": "oven"
  },
  "qos": 0,
  "systemProperties": {
    "partitionId": 0,
    "partitionKey": "quickstart",
    "timestamp": "2023-11-06T23:42:51.004Z"
  },
  "topic": "quickstart"
}