Udostępnij za pośrednictwem


Wysyłanie danych do usługi Azure Data Explorer z potoku przetwarzania danych usługi Azure IoT w wersji zapoznawczej

Ważne

Usługa Azure IoT Operations Preview — włączona przez usługę Azure Arc jest obecnie dostępna w wersji zapoznawczej. Nie należy używać tego oprogramowania w wersji zapoznawczej w środowiskach produkcyjnych.

Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.

Użyj miejsca docelowego usługi Azure Data Explorer, aby zapisywać dane w tabeli w usłudze Azure Data Explorer z potoku przetwarzania danych usługi Azure IoT w wersji zapoznawczej. Etap docelowy wsaduje komunikaty przed wysłaniem ich do usługi Azure Data Explorer.

Wymagania wstępne

Aby skonfigurować i użyć docelowego etapu potoku usługi Azure Data Explorer, potrzebne są następujące elementy:

  • Wdrożone wystąpienie procesora danych.
  • Klaster usługi Azure Data Explorer.
  • Baza danych w klastrze usługi Azure Data Explorer.

Konfigurowanie usługi Azure Data Explorer

Przed zapisaniem w usłudze Azure Data Explorer z potoku danych należy udzielić dostępu do bazy danych z potoku. Do uwierzytelniania potoku w bazie danych można użyć jednostki usługi lub tożsamości zarządzanej. Zaletą korzystania z tożsamości zarządzanej jest to, że nie trzeba zarządzać cyklem życia jednostki usługi. Tożsamość zarządzana jest automatycznie zarządzana przez platformę Azure i jest powiązana z cyklem życia przypisanego do niego zasobu.

Aby utworzyć jednostkę usługi z kluczem tajnym klienta:

  1. Użyj następującego polecenia interfejsu wiersza polecenia platformy Azure, aby utworzyć jednostkę usługi.

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. Dane wyjściowe tego polecenia obejmują appIdwartości , , displayNamepasswordi tenant. Zanotuj te wartości do użycia podczas konfigurowania dostępu do zasobu w chmurze, takiego jak Microsoft Fabric, tworzenia wpisu tajnego i konfigurowania miejsca docelowego potoku:

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

Aby udzielić administratorowi dostępu do bazy danych usługi Azure Data Explorer, uruchom następujące polecenie na karcie zapytania bazy danych:

.add database <DatabaseName> admins (<ApplicationId>) <Notes>

Aby etap docelowy łączył się z usługą Azure Data Explorer, musi mieć dostęp do wpisu tajnego zawierającego szczegóły uwierzytelniania. Aby utworzyć wpis tajny:

  1. Użyj następującego polecenia, aby dodać wpis tajny do usługi Azure Key Vault zawierający wpis tajny klienta zanotowy podczas tworzenia jednostki usługi:

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessADXSecret --value <client-secret>
    
  2. Dodaj odwołanie do wpisu tajnego do klastra Kubernetes, wykonując kroki opisane w temacie Zarządzanie wpisami tajnymi dla wdrożenia usługi Azure IoT Operations Preview.

Dzielenie na partie

Procesor danych zapisuje w usłudze Azure Data Explorer w partiach. Podczas przetwarzania wsadowego danych przed ich wysłaniem usługa Azure Data Explorer ma własne domyślne zasady dzielenia na partie. W związku z tym dane mogą nie być widoczne w usłudze Azure Data Explorer natychmiast po zapisaniu ich w miejscu docelowym usługi Azure Data Explorer.

Aby wyświetlić dane w usłudze Azure Data Explorer zaraz po wysłaniu potoku, możesz ustawić liczbę zasad pozyskiwania wsadowych na 1wartość . Aby edytować zasady dzielenia na partie pozyskiwania, uruchom następujące polecenie na karcie zapytania bazy danych:

.alter database <your-database-name> policy ingestionbatching
```
{
    "MaximumBatchingTimeSpan" : "00:00:30",
    "MaximumNumberOfItems" : 1,
    "MaximumRawDataSizeMB": 1024
}
```

Konfigurowanie etapu docelowego

Konfiguracja JSON etapu docelowego usługi Azure Data Explorer definiuje szczegóły etapu. Aby utworzyć etap, możesz wchodzić w interakcje z interfejsem użytkownika opartym na formularzach lub podać konfigurację JSON na karcie Zaawansowane :

Pole Typ Opis Wymagani Wartość domyślna Przykład
Display name String Nazwa wyświetlana w interfejsie użytkownika procesora danych. Tak - Azure IoT MQ output
opis String Przyjazny dla użytkownika opis tego, co robi etap. Nie. Write to topic default/topic1
Adres URL klastra String Identyfikator URI (ta wartość nie jest identyfikatorem URI pozyskiwania danych). Tak -
baza danych String Nazwa bazy danych. Tak -
Table String Nazwa tabeli do zapisu. Tak -
Batch Batch Jak wsadować dane. Nie. 60s 10s
Ponów próbę Ponów próbę Zasady ponawiania prób do użycia. Nie. default fixed
Uwierzytelnianie1 String Szczegóły uwierzytelniania do nawiązania połączenia z usługą Azure Data Explorer. Service principal lub Managed identity Jednostka usługi Tak -
Nazwa kolumn > string Nazwa kolumny. Tak temperature
Ścieżka kolumn > Ścieżka Lokalizacja w każdym rekordzie danych, z których powinna być odczytywana wartość kolumny. Nie. .{{name}} .temperature

1Uwierzytelnianie: Obecnie etap docelowy obsługuje uwierzytelnianie oparte na jednostce usługi lub tożsamość zarządzaną podczas nawiązywania połączenia z usługą Azure Data Explorer.

Aby skonfigurować uwierzytelnianie oparte na jednostce usługi, podaj następujące wartości. Zanotuj te wartości podczas tworzenia jednostki usługi i dodano odwołanie tajne do klastra.

Pole opis Wymagania
TenantId Identyfikator dzierżawy. Tak
ClientId Identyfikator aplikacji zanotował podczas tworzenia jednostki usługi, która ma dostęp do bazy danych. Tak
Klucz tajny Odwołanie do wpisu tajnego utworzonego w klastrze. Tak

Przykładowa konfiguracja

W poniższym przykładzie JSON przedstawiono pełną konfigurację etapu docelowego usługi Azure Data Explorer, która zapisuje cały komunikat w quickstart tabeli w bazie danych:"

{
    "displayName": "Azure data explorer - 71c308",
    "type": "output/dataexplorer@v1",
    "viewOptions": {
        "position": {
            "x": 0,
            "y": 784
        }
    },
    "clusterUrl": "https://clusterurl.region.kusto.windows.net",
    "database": "databaseName",
    "table": "quickstart",
    "authentication": {
        "type": "servicePrincipal",
        "tenantId": "tenantId",
        "clientId": "clientId",
        "clientSecret": "secretReference"
    },
    "batch": {
        "time": "5s",
        "path": ".payload"
    },
    "columns": [
        {
            "name": "Timestamp",
            "path": ".Timestamp"
        },
        {
            "name": "AssetName",
            "path": ".assetName"
        },
        {
            "name": "Customer",
            "path": ".Customer"
        },
        {
            "name": "Batch",
            "path": ".Batch"
        },
        {
            "name": "CurrentTemperature",
            "path": ".CurrentTemperature"
        },
        {
            "name": "LastKnownTemperature",
            "path": ".LastKnownTemperature"
        },
        {
            "name": "Pressure",
            "path": ".Pressure"
        },
        {
            "name": "IsSpare",
            "path": ".IsSpare"
        }
    ],
    "retry": {
        "type": "fixed",
        "interval": "20s",
        "maxRetries": 4
    }
}

Konfiguracja definiuje, że:

  • Komunikaty są wsadowe przez 5 sekund.
  • Używa ścieżki .payload wsadowej do lokalizowania danych dla kolumn.

Przykład

W poniższym przykładzie pokazano przykładowy komunikat wejściowy do etapu docelowego usługi Azure Data Explorer:

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