Share via


Gegevens verzenden naar Microsoft Fabric vanuit een pijplijn voor gegevensverwerking

Belangrijk

Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in PREVIEW. Gebruik deze preview-software niet in productieomgevingen.

Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

Gebruik de Fabric Lakehouse-bestemming om gegevens te schrijven naar een lakehouse in Microsoft Fabric vanuit een Azure IoT Data Processor Preview-pijplijn. In de doelfase worden parquet-bestanden naar een lakehouse geschreven waarmee u de gegevens in deltatabellen kunt bekijken. In de doelfase worden berichten in batches geplaatst voordat ze naar Microsoft Fabric worden verzonden.

Vereisten

Als u een doelpijplijnfase van Microsoft Fabric wilt configureren en gebruiken, hebt u het volgende nodig:

Microsoft Fabric instellen

Voordat u vanuit een gegevenspijplijn naar Microsoft Fabric kunt schrijven, moet u toegang verlenen tot lakehouse vanuit de pijplijn. U kunt een service-principal of een beheerde identiteit gebruiken om de pijplijn te verifiëren. Het voordeel van het gebruik van een beheerde identiteit is dat u de levenscyclus van de service-principal niet hoeft te beheren. De beheerde identiteit wordt automatisch beheerd door Azure en is gekoppeld aan de levenscyclus van de resource waaraan deze is toegewezen.

Voordat u de toegang tot een service-principal of beheerde identiteit tot een Lakehouse configureert, moet u verificatie van de service-principal inschakelen.

Een service-principal maken met een clientgeheim:

  1. Gebruik de volgende Azure CLI-opdracht om een service-principal te maken.

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. De uitvoer van deze opdracht bevat een appId, displayName, passworden tenant. Noteer deze waarden die u wilt gebruiken wanneer u de toegang tot uw cloudresource configureert, zoals Microsoft Fabric, een geheim maakt en een pijplijnbestemming configureert:

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

De service-principal toevoegen aan uw Microsoft Fabric-werkruimte:

  1. Noteer uw werkruimte-id en lakehouse-id. U vindt deze waarden in de URL die u gebruikt voor toegang tot uw lakehouse:

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

  2. Selecteer Toegang beheren in uw werkruimte:

    Schermopname die laat zien hoe u de koppeling Toegang beheren kunt vinden.

  3. Selecteer Personen of groepen toevoegen:

    Schermopname die laat zien hoe u een gebruiker toevoegt.

  4. Zoek uw service-principal op naam. Begin te typen om een lijst met overeenkomende service-principals weer te geven. Selecteer de service-principal die u eerder hebt gemaakt:

    Schermopname van het toevoegen van een service-principal.

  5. Verdeel de beheerder van de service-principal toegang tot de werkruimte.

Uw geheim configureren

Voor de doelfase om verbinding te kunnen maken met Microsoft Fabric, moet deze toegang hebben tot een geheim dat de verificatiegegevens bevat. Een geheim maken:

  1. Gebruik de volgende opdracht om een geheim toe te voegen aan uw Azure Key Vault die het clientgeheim bevat dat u hebt genoteerd toen u de service-principal maakte:

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessFabricSecret --value <client-secret>
    
  2. Voeg de geheime verwijzing toe aan uw Kubernetes-cluster door de stappen in Geheimen beheren voor uw Azure IoT Operations Preview-implementatie te volgen.

De doelfase configureren

De JSON-configuratie van de fabric Lakehouse-doelfase definieert de details van de fase. Als u de fase wilt ontwerpen, kunt u communiceren met de gebruikersinterface op basis van formulieren of de JSON-configuratie opgeven op het tabblad Geavanceerd :

Veld Type Beschrijving Vereist Standaardinstelling Opmerking
Weergavenaam String Een naam die moet worden weergegeven in de gebruikersinterface van de gegevensverwerker. Ja - Azure IoT MQ output
Beschrijving String Een gebruiksvriendelijke beschrijving van wat de fase doet. Nee Write to topic default/topic1
WorkspaceId String De werkruimte-id van Lakehouse. Ja -
LakehouseId String De lakehouse Lakehouse ID. Ja -
Tabel String De naam van de tabel waarnaar moet worden geschreven. Ja -
Bestandspad1 Sjabloon Het bestandspad waarnaar het Parquet-bestand moet worden geschreven. Nee {{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}}
Batch2 Batch Gegevens batcheren. Nee 60s 10s
Verificatie4 String De verificatiegegevens om verbinding te maken met Azure Data Explorer. Service principal of Managed identity Service-principal Ja -
Opnieuw proberen Opnieuw proberen Het beleid voor opnieuw proberen dat moet worden gebruikt. Nee default fixed
Kolomnaam > tekenreeks De naam van de kolom. Ja temperature
Kolomtype >3 enum van tekenreeks Het type gegevens dat in de kolom is opgeslagen, met behulp van een van de primitieve typen Delta. Ja integer
Pad naar kolommen > Pad De locatie binnen elke record van de gegevens waaruit de waarde van de kolom moet worden gelezen. Nee .{{name}} .temperature

1Bestandspad: Als u bestanden naar Microsoft Fabric wilt schrijven, hebt u een bestandspad nodig. U kunt sjablonen gebruiken om bestandspaden te configureren. Bestandspaden moeten de volgende onderdelen in elke volgorde bevatten:

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

De bestandsnamen zijn incrementele gehele getallen, zoals aangegeven door fileNumber. Zorg ervoor dat u een bestandsextensie opneemt als u wilt dat uw systeem het bestandstype herkent.

2Batching: Batching is verplicht wanneer u gegevens naar Microsoft Fabric schrijft. De doelfase batcht berichten over een configureerbaar tijdsinterval.

Als u geen batchinterval configureert, gebruikt de fase 60 seconden als de standaardinstelling.

3Type: De gegevensverwerker schrijft naar Microsoft Fabric met behulp van de delta-indeling. De gegevensprocessor ondersteunt alle primitieve deltagegevenstypen , met uitzondering van decimal en timestamp without time zone.

Als u ervoor wilt zorgen dat alle datums en tijden correct worden weergegeven in Microsoft Fabric, moet u ervoor zorgen dat de waarde van de eigenschap een geldige RFC 3339-tekenreeks is en of het gegevenstype een date of timestamp.

1Verificatie: Momenteel ondersteunt de doelfase verificatie op basis van service-principal of beheerde identiteit wanneer deze verbinding maakt met Microsoft Fabric.

Verificatie op basis van service-principal

Als u verificatie op basis van een service-principal wilt configureren, geeft u de volgende waarden op. U hebt deze waarden genoteerd toen u de service-principal maakte en de geheime verwijzing naar uw cluster hebt toegevoegd.

Veld Beschrijving Vereist
TenantId De tenant-id. Ja
ClientId De app-id die u hebt genoteerd toen u de service-principal hebt gemaakt die toegang heeft tot de database. Ja
Geheim De geheime verwijzing die u in uw cluster hebt gemaakt. Ja

Voorbeeldconfiguratie

In het volgende JSON-voorbeeld ziet u een volledige configuratie van de doelfase van Microsoft Fabric Lakehouse waarmee het hele bericht naar de quickstart tabel in de database wordt geschreven':

{
    "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
    }
}

De configuratie definieert dat:

  • Berichten worden vijf seconden in batches geplaatst.
  • Gebruikt het batchpad .payload om de gegevens voor de kolommen te zoeken.

Opmerking

In het volgende voorbeeld ziet u een voorbeeld van een invoerbericht voor de doelfase van Microsoft Fabric Lakehouse:

{
  "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"
}