Condividi tramite


Output di Analisi di flusso di Azure

Un processo di Analisi di flusso di Azure è costituito da un input, una query e un output. È possibile inviare dati trasformati a diversi tipi di output. Questo articolo elenca gli output di Analisi di flusso supportati. Quando si progetta la query di Analisi di flusso, fare riferimento al nome dell'output usando la clausola INTO. È possibile usare un singolo output per processo o più output per ogni processo di streaming aggiungendo più clausole INTO alla query.

Per creare, modificare e testare gli output dei processi di Analisi di flusso, è possibile usare il portale di Azure, Azure PowerShell, l'API .NET, l'API REST, Visual Studio e Visual Studio Code.

Annotazioni

Per un'esperienza di sviluppo locale ottimale, usare gli strumenti di Analisi di flusso per Visual Studio Code. Gli strumenti di Analisi di flusso per Visual Studio 2019 (versione 2.6.3000.0) presentano lacune nelle funzionalità note e non verranno migliorati in futuro.

Alcuni tipi di output supportano il partizionamento , come illustrato nella tabella seguente.

Tutti gli output supportano l'invio in batch, ma solo alcuni supportano l'impostazione esplicita delle dimensioni del batch di output. Per ulteriori informazioni, consultare la sezione Dimensioni batch di output.

Tipo di output Partitioning Sicurezza
Esplora dati di Azure Identità gestita
Funzioni di Azure Chiave di accesso
Azure Synapse Analytics Autenticazione utente SQL,
identità gestita
Archiviazione BLOB e Azure Data Lake Gen 2 Chiave di accesso,
identità gestita
Azure Cosmos DB Chiave di accesso,
identità gestita
Azure Data Lake Storage Gen 2 Identità gestita dell'utente
di Microsoft Entra
Hub eventi di Azure Sì, è necessario impostare la colonna della chiave di partizione nella configurazione di output. Chiave di accesso,
identità gestita
Kafka (anteprima) Sì, è necessario impostare la colonna della chiave di partizione nella configurazione di output. Chiave di accesso,
identità gestita
Database di Azure per PostgreSQL Autenticazione con nome utente e password
Power BI NO Utente Microsoft Entra,
Identità gestita
Code del bus di servizio di Azure Chiave di accesso,
identità gestita
Argomenti del bus di servizio di Azure Chiave di accesso,
identità gestita
Database SQL di Azure Sì, facoltativo. Autenticazione utente SQL,
identità gestita
Archiviazione tabelle di Azure Chiave dell'account

Importante

Analisi di flusso di Azure usa l'API Inserisci o Sostituisci per impostazione predefinita. Questa operazione sostituisce un'entità esistente o inserisce una nuova entità se non esiste nella tabella.

Partitioning

Analisi di flusso supporta le partizioni per tutti gli output, ad eccezione di Power BI. Per ulteriori informazioni sulle chiavi di partizione e sul numero di processi di scrittura dell'output, consulta l'articolo relativo al tipo di output di tuo interesse. Gli articoli per i tipi di output sono collegati nella sezione precedente.

Per un'ottimizzazione più avanzata delle partizioni, è possibile controllare il numero degli scrittori di output usando una clausola INTO <partition count> (vedere INTO) nella query. Questa funzionalità consente di ottenere una topologia del processo lavorativo desiderata. Se l'adattatore di output non è partizionato, l'assenza di dati in una partizione di input può causare un ritardo pari al tempo di arrivo ritardato. In questi casi, l'output viene unito a un unico writer che può causare colli di bottiglia nella pipeline. Per ulteriori informazioni sulla politica di arrivo tardivo, vedere Considerazioni sull'ordine degli eventi di Azure Stream Analytics.

Dimensione del batch di output

Tutti gli output supportano l'invio in batch, ma solo alcuni supportano l'impostazione esplicita delle dimensioni del batch. Servizi di analisi di flusso di Azure utilizzano batch di dimensioni variabili per elaborare gli eventi e scrivere agli output. In genere, il motore di Analisi di Flusso non scrive un messaggio alla volta e utilizza lotti per una maggiore efficienza. Quando la frequenza degli eventi in ingresso e in uscita è elevata, Analisi di flusso usa batch più grandi. Quando la velocità in uscita è bassa, usa batch più piccoli per mantenere bassa la latenza.

Comportamento di suddivisione file Avro e Parquet

Una query di Analisi di flusso può generare più schemi per un determinato output. L'elenco di colonne proiettate e il loro tipo possono cambiare su base riga per riga. Per impostazione predefinita, i formati Avro e Parquet non supportano schemi variabili in un singolo file.

Quando si indirizza un flusso con schemi variabili a un output usando questi formati, possono verificarsi i comportamenti seguenti:

  • Se è possibile rilevare la modifica dello schema, il file di output corrente viene chiuso e un nuovo file inizializzato nel nuovo schema. La suddivisione di file come tale rallenta gravemente l'output quando le modifiche dello schema vengono apportate frequentemente. Questo comportamento può influire gravemente sulle prestazioni complessive del processo.
  • Se non è possibile rilevare la modifica dello schema, è molto probabile che la riga venga rifiutata e il processo si blocca perché la riga non può essere restituita. Le colonne annidate o le matrici multitipo sono situazioni che non vengono individuate e scartate.

Considerare gli output che usano il formato Avro o Parquet come fortemente tipizzati, o schema su scrittura, e scrivere query destinate a tali formati usando conversioni e proiezioni esplicite per uno schema uniforme.

Se è necessario generare più schemi, è consigliabile creare più output e suddividere i record in ogni destinazione usando una WHERE clausola .

Proprietà della finestra di invio in batch dell'output Parquet

Quando si usa la distribuzione di modelli di Azure Resource Manager o l'API REST, si impostano due proprietà della finestra di invio in batch:

  1. timeWindow

    Tempo di attesa massimo per batch. Impostare il valore come stringa di Timespan. Ad esempio, usare 00:02:00 per due minuti. Dopo questo momento, il batch viene scritto nell'output anche qualora il requisito del numero minimo di righe non venga soddisfatto. Il valore predefinito è di un minuto e il massimo consentito è di due ore. Se l'output BLOB ha la frequenza del pattern del percorso, il tempo di attesa non può essere superiore all'intervallo di tempo della partizione.

  2. sizeWindow

    Numero minimo di righe per batch. Per Parquet, ogni batch crea un nuovo file. Il valore predefinito corrente è 2.000 righe e il massimo consentito è 10.000 righe.

L'API versione 2017-04-01-preview o successiva supporta queste proprietà della finestra di invio in batch. Di seguito è riportato un esempio del payload JSON per una chiamata API REST:

"type": "stream",
      "serialization": {
        "type": "Parquet",
        "properties": {}
      },
      "timeWindow": "00:02:00",
      "sizeWindow": "2000",
      "datasource": {
        "type": "Microsoft.Storage/Blob",
        "properties": {
          "storageAccounts" : [
          {
            "accountName": "{accountName}",
            "accountKey": "{accountKey}",
          }
          ],

Passaggi successivi