Configurare una fase di origine di SQL Server nell'anteprima di Azure IoT Data Processor
Importante
Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente disponibile in ANTEPRIMA. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.
Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.
La fase di origine è la prima e obbligatoria in una pipeline di anteprima del processore di dati IoT di Azure. La fase di origine recupera i dati nella pipeline di elaborazione dati e lo prepara per un'ulteriore elaborazione. La fase di origine di SQL Server consente di leggere i dati da un database di Microsoft SQL Server a un intervallo definito dall'utente.
Nella fase di origine si definiscono:
- Dettagli della connessione per SQL Server.
- Intervallo in cui eseguire query sul database di SQL Server. La fase attende un risultato prima di reimpostare il timer dell'intervallo.
- Configurazione del partizionamento in base ai requisiti specifici per l'elaborazione dei dati.
Prerequisiti
- Istanza distribuita di Azure IoT Data Processor Preview che include il componente facoltativo responsabile del trattamento dei dati.
- Un database di SQL Server con tutti i dati non elaborati necessari disponibili è operativo e raggiungibile.
Preparare il database di SQL Server
Prima di poter leggere dal database di SQL Server, è necessario concedere l'accesso al database dalla pipeline. È possibile usare Username/Password
, Managed identity
o Service principal
per autenticare la pipeline nel database. Il vantaggio dell'uso di un'identità gestita è che non è necessario gestire il ciclo di vita dell'entità servizio o i dettagli della password. L'identità gestita viene gestita automaticamente da Azure ed è associata al ciclo di vita della risorsa a cui viene assegnata.
Per creare un'entità servizio con un segreto client:
Usare il comando seguente dell'interfaccia della riga di comando di Azure per creare un'entità servizio.
az ad sp create-for-rbac --name <YOUR_SP_NAME>
L'output di questo comando include un
appId
oggetto ,displayName
,password
etenant
. Prendere nota di questi valori da usare quando si configura l'accesso alla risorsa cloud, ad esempio Microsoft Fabric, creare un segreto e configurare una destinazione della pipeline:{ "appId": "<app-id>", "displayName": "<name>", "password": "<client-secret>", "tenant": "<tenant-id>" }
Per concedere l'accesso all'ID entità nel database di SQL Server, eseguire il comando seguente nel database:
CREATE USER processor FROM EXTERNAL PROVIDER WITH OBJECT_ID=<principalId>;
Nota
Per eseguire il comando precedente, è necessario usare l'ID Entra elencato come amministratore in SQL Server.
Affinché la fase di origine si connetta al database di SQL Server, deve accedere a un segreto che contiene i dettagli di autenticazione. Per creare un segreto:
Usare il comando seguente per aggiungere un segreto all'insieme di credenziali delle chiavi di Azure contenente il segreto client annotato quando è stata creata l'entità servizio:
az keyvault secret set --vault-name <your-key-vault-name> --name AccessADXSecret --value <client-secret>
Aggiungere il riferimento al segreto al cluster Kubernetes seguendo la procedura descritta in Gestire i segreti per la distribuzione di Operazioni IoT di Azure.
Configurare l'origine di SQL Server
Per configurare l'origine di SQL Server:
- Specificare i dettagli del database di SQL Server. Questa configurazione include il nome del server e una query per recuperare i dati.
- Specificare il metodo di autenticazione. Attualmente limitato all'autenticazione basata su nome utente/password o basata su entità servizio.
La tabella seguente descrive i parametri di configurazione dell'origine di SQL Server:
Campo | Tipo | Descrizione | Richiesto | Valore predefinito | Esempio |
---|---|---|---|---|---|
Nome | string | Nome visibile al cliente per la fase di origine. | Richiesto | ND | erp-database |
Descrizione | Stringa | Descrizione visibile al cliente della fase di origine. | Facoltativo | ND | Enterprise database |
Host server | String | URL da usare per connettersi al server. | Richiesto | ND | https://contoso.com/some/url/path |
Porta server | Intero | Numero di porta a cui connettersi nel server. | Richiesto | 1433 |
1433 |
Autenticazione | Tipo di autenticazione | Metodo di autenticazione per la connessione al server. Uno di: None , Username/Password , Managed identity o Service principal . |
Facoltativo | NA |
Username/Password |
Nome utente/Nome utente password > | String | Nome utente per l'autenticazione nome utente/password | Sì | ND | myuser |
Nome utente/Segreto password > | String | Riferimento alla password archiviata in Azure Key Vault. | Sì | Sì | AKV_USERNAME_PASSWORD |
ID tenant dell'entità > servizio | String | ID tenant dell'entità servizio. | Sì | ND | <Tenant ID> |
ID client dell'entità > servizio | String | ID client dell'entità servizio. | Sì | ND | <Client ID> |
Segreto dell'entità > servizio | String | Riferimento al segreto client dell'entità servizio archiviato in Azure Key Vault. | Sì | ND | AKV_SERVICE_PRINCIPAL |
Database | String | Nome del database DI SQL Server su cui eseguire una query. | Richiesto | ND | erp_db |
Query sui dati | String | Query da eseguire sul database. | Richiesto | ND | SELECT * FROM your_table WHERE column_name = foo |
Intervallo di query | Durata | Rappresentazione di stringa del tempo di attesa prima della chiamata API successiva. | Richiesto | 10s |
24h |
Formato dati | Formato | Formato dati dei dati in ingresso | Richiesto | ND | {"type": "json"} |
Partizionamento | Partizionamento | Configurazione del partizionamento per la fase di origine. | Richiesto | ND | Vedere partizionamento |
Per altre informazioni sui segreti, vedere Gestire i segreti per la distribuzione di Azure IoT Operations Preview.
Nota
Richiede un timeout di 30 secondi se non è presente alcuna risposta da SQL Server.
Selezionare il formato dati
In una pipeline del processore di dati il campo formato nella fase di origine specifica come deserializzare i dati in ingresso. Per impostazione predefinita, la pipeline del processore di dati usa il raw
formato che significa che non converte i dati in ingresso. Per usare molte funzionalità del responsabile del trattamento dei dati, ad Filter
esempio o Enrich
fasi in una pipeline, è necessario deserializzare i dati nella fase di input. È possibile scegliere di deserializzare i dati in ingresso da JSON
, jsonStream
, MessagePack
, CBOR
, CSV
, o Protobuf
in un messaggio leggibile del responsabile del trattamento dei dati per usare la funzionalità completa del responsabile del trattamento dei dati.
Le tabelle seguenti descrivono le diverse opzioni di configurazione della deserializzazione:
Campo | Descrizione | Richiesto | Valore predefinito | Valore |
---|---|---|---|---|
Formato dati | Tipo del formato dati. | Sì | Raw |
Raw JSON jsonStream MessagePack CBOR CSV Protobuf |
Il Data Format
campo è obbligatorio e il relativo valore determina gli altri campi obbligatori.
Per deserializzare i messaggi CSV, è necessario specificare anche i campi seguenti:
Campo | Descrizione | Richiesto | valore | Esempio |
---|---|---|---|---|
Intestazione | Indica se i dati CSV includono una riga di intestazione. | Sì | Yes No |
No |
Nome | Nome della colonna in CSV | Sì | - | temp , asset |
Percorso | Percorso jq nel messaggio in cui sono state aggiunte le informazioni sulla colonna. | No | - | Il percorso jq predefinito è il nome della colonna |
Tipo di dati | Tipo di dati dei dati nella colonna e come viene rappresentato all'interno della pipeline del responsabile del trattamento dei dati. | No | String , Float , Integer , Boolean Bytes |
Impostazione predefinita: String |
Per deserializzare i messaggi Protobuf, è necessario specificare anche i campi seguenti:
Campo | Descrizione | Richiesto | valore | Esempio |
---|---|---|---|---|
Descrittore | Descrittore con codifica base64 per la definizione protobuf. | Sì | - | Zhf... |
Message | Nome del tipo di messaggio utilizzato per formattare i dati. | Sì | - | pipeline |
Pacchetto | Nome del pacchetto nel descrittore in cui è definito il tipo. | Sì | - | schedulerv1 |
Nota
Il responsabile del trattamento dei dati supporta un solo tipo di messaggio in ogni file con estensione proto .
Configurare il partizionamento
Il partizionamento in una pipeline divide i dati in ingresso in partizioni separate. Il partizionamento consente il parallelismo dei dati nella pipeline, che può migliorare la velocità effettiva e ridurre la latenza. Le strategie di partizionamento influiscono sul modo in cui i dati vengono elaborati nelle altre fasi della pipeline. Ad esempio, l'ultima fase del valore noto e la fase di aggregazione operano su ogni partizione logica.
Per partizionare i dati, specificare una strategia di partizionamento e il numero di partizioni da usare:
Campo | Descrizione | Richiesto | Valore predefinito | Esempio |
---|---|---|---|---|
Tipo di partizione | Tipo di partizionamento da usare: Partizione ID o Partizione Key |
Richiesto | ID |
ID |
Espressione di partizione | Espressione jq da usare nel messaggio in ingresso per calcolare la partizione ID o la partizione Key |
Richiesto | 0 |
.payload.header |
Numero di partizioni | Numero di partizioni in una pipeline del responsabile del trattamento dei dati. | Richiesto | 1 |
1 |
Il responsabile del trattamento dei dati aggiunge metadati al messaggio in arrivo. Per informazioni su come specificare correttamente l'espressione di partizionamento eseguita nel messaggio in arrivo, vedere Panoramica della struttura dei messaggi del responsabile del trattamento dei dati. Per impostazione predefinita, l'espressione di partizionamento è impostata su 0
con il tipo di partizione per ID
inviare tutti i dati in ingresso a una singola partizione.
Per consigli e per altre informazioni, vedere Che cos'è il partizionamento?
Contenuto correlato
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per