Wysyłanie danych do usługi Azure Data Explorer z potoku procesora danych
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.
Po udostępnieniu ogólnie dostępnej wersji należy wdrożyć nową instalację operacji usługi Azure IoT. Nie będzie można uaktualnić instalacji w wersji zapoznawczej.
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 procesora danych. 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:
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>
Dane wyjściowe tego polecenia obejmują
appId
wartości , ,displayName
password
itenant
. 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:
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>
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 dane 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 przetwarzania wsadowego pozyskiwania. 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 1
wartość . 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 | - | MQTT broker 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"
}