Output da Analisi di flusso di Azure

Un processo di Analisi di flusso di Azure è costituito da un input, una query e un output. Esistono diversi tipi di output a cui è possibile inviare dati trasformati. 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 (se necessario) aggiungendo più clausole INTO alla query.

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

Nota

È consigliabile usare gli strumenti di Analisi di flusso per Visual Studio Code per un'esperienza di sviluppo locale ottimale. Esistono lacune nelle funzionalità note negli strumenti di Analisi di flusso per Visual Studio 2019 (versione 2.6.3000.0) e non verrà migliorata 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 altre informazioni, vedere la sezione Dimensioni batch di output.

Tipo di output Partizionamento 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 Gen2 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 di Microsoft Entra,
identità gestita
bus di servizio di Azure code Chiave di accesso,
identità gestita
argomenti bus di servizio di Azure Chiave di accesso,
identità gestita
Database SQL di Azure Sì, facoltativo. Autenticazione utente SQL,
identità gestita
Archivio 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.

Partizionamento

Analisi di flusso supporta le partizioni per tutti gli output, ad eccezione di Power BI. Per altre informazioni sulle chiavi di partizione e sul numero di writer di output, vedere l'articolo relativo al tipo di output specifico a cui si è interessati. Gli articoli per i tipi di output sono collegati nella sezione precedente.

Inoltre, per un'ottimizzazione più avanzata delle partizioni, il numero di writer di output può essere controllato usando una INTO <partition count> clausola (vedere INTO) nella query, che può essere utile per ottenere una topologia di processo desiderata. Se l'adattatore di output non è partizionato, la mancanza di dati in una partizione di input causa un ritardo fino all'intervallo di tempo di arrivo in ritardo. In questi casi, l'output viene unito a un unico writer che può causare colli di bottiglia nella pipeline. Per altre informazioni sui criteri di arrivo in ritardo, vedere Considerazioni sull'ordine degli eventi con Analisi di flusso di Azure.

Dimensione del batch di output

Tutti gli output supportano l'invio in batch, ma solo alcune impostazioni supportano in modo esplicito le dimensioni del batch. Analisi di flusso di Azure usa batch di dimensioni variabili per l'elaborazione degli eventi e la scrittura negli output. Il motore di Analisi di flusso non scrive generalmente un messaggio alla volta e usa i batch per migliorare l'efficienza. Quando la frequenza degli eventi in ingresso e in uscita è elevata, Analisi di flusso usa batch più grandi. Quando la frequenza in uscita è bassa, usa batch di dimensioni minori per mantenere bassa la latenza.

Comportamento di suddivisione dei 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 relativo tipo possono cambiare in base alla 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 rifiutate.

È consigliabile prendere in considerazione l'uso del formato Avro o Parquet in modo che sia fortemente tipizzato o con schema in scrittura e che le query destinate a tali output vengano scritte come tali (conversioni esplicite e proiezioni 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 di output Parquet

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

  1. timeWindow

    Tempo massimo di attesa per batch. Il valore deve essere una stringa di Timespan. Ad esempio, 00:02:00 per due minuti. Dopo questa volta, il batch viene scritto nell'output anche se il requisito minimo delle righe non viene soddisfatto. Il valore predefinito è 1 minuto e il massimo consentito è 2 ore. Se l'output del BLOB ha una frequenza di pattern di 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 è 2000 righe e il valore massimo consentito è 10.000 righe.

Queste proprietà della finestra di invio in batch sono supportate solo dall'API versione 2017-04-01-preview o successiva. 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