Uso dei dati di riferimento o delle tabelle di ricerca in un flusso di input di Analisi di flussoUsing reference data or lookup tables in a Stream Analytics input stream

I dati di riferimento (noti anche come tabella di ricerca) sono un set di dati limitato di natura statica o che cambiano molto lentamente, usati per eseguire una ricerca o la correlazione con il flusso di dati.Reference data (also known as a lookup table) is a finite data set that is static or slowing changing in nature, used to perform a lookup or to correlate with your data stream. Per usare i dati di riferimento in un processo di Analisi di flusso di Azure, si usa in genere un JOIN dei dati di riferimento nella query.To make use of reference data in your Azure Stream Analytics job, you will generally use a Reference Data Join in your Query. Analisi di flusso usa l'archivio BLOB di Azure come livello di archiviazione per i dati di riferimento e Azure Data Factory consente di trasformare e/o copiare nell'archivio BLOB di Azure i dati da usare come dati di riferimento da qualsiasi numero di archivi dati locali e basati sul cloud.Stream Analytics uses Azure Blob storage as the storage layer for Reference Data, and with Azure Data Factory reference data can be transformed and/or copied to Azure Blob storage, for use as Reference Data, from any number of cloud-based and on-premises data stores. I dati di riferimento sono modellati come una sequenza di BLOB (definiti nella configurazione di input) in ordine crescente in base alla data/ora specificata nel nome di BLOB.Reference data is modeled as a sequence of blobs (defined in the input configuration) in ascending order of the date/time specified in the blob name. Supporta solo l'aggiunta alla fine della sequenza usando una data/ora successiva rispetto a quella specificata dall'ultimo BLOB nella sequenza.It only supports adding to the end of the sequence by using a date/time greater than the one specified by the last blob in the sequence.

Analisi di flusso ha un limite di 100 MB per BLOB, ma i processi possono elaborare più BLOB di riferimento usando la proprietà del modello di percorso.Stream Analytics has a limit of 100 MB per blob but jobs can process multiple reference blobs by using the path pattern property.

Configurazione dei dati di riferimentoConfiguring reference data

Per configurare i dati di riferimento, è prima di tutto necessario creare un input che sia di tipo Dati di riferimento.To configure your reference data, you first need to create an input that is of type Reference Data. La tabella seguente illustra ogni proprietà che è necessario fornire durante la creazione di input di dati di riferimento con la relativa descrizione:The table below explains each property that you will need to provide while creating the reference data input with its description:

Nome proprietàProperty Name DescrizioneDescription
Alias di inputInput Alias Nome descrittivo che verrà usato nella query di processo per fare riferimento a questo input.A friendly name that will be used in the job query to reference this input.
Account di archiviazioneStorage Account Nome dell'account di archiviazione in cui si trovano i BLOB.The name of the storage account where your blobs are located. Se è incluso nella stessa sottoscrizione del processo di Analisi di flusso, può essere selezionato nell'elenco a discesa.If it’s in the same subscription as your Stream Analytics Job, you can select it from the drop-down.
Chiave dell'account di archiviazioneStorage Account Key Chiave privata associata all'account di archiviazione.The secret key associated with the storage account. Viene compilata automaticamente se l'account di archiviazione si trova nella stessa sottoscrizione del processo di analisi di flusso.This gets automatically populated if the storage account is in the same subscription as your Stream Analytics job.
Contenitore di archiviazioneStorage Container I contenitori forniscono un raggruppamento logico per gli oggetti BLOB archiviati nel servizio BLOB di Microsoft Azure.Containers provide a logical grouping for blobs stored in the Microsoft Azure Blob service. Quando si carica un oggetto BLOB nel servizio BLOB, è necessario specificare un contenitore per il BLOB.When you upload a blob to the Blob service, you must specify a container for that blob.
Modello di percorsoPath Pattern Percorso usato per individuare i BLOB nel contenitore specificato.The path used to locate your blobs within the specified container. All'interno del percorso è possibile scegliere di specificare una o più istanze delle 2 variabili seguenti:Within the path, you may choose to specify one or more instances of the following 2 variables:
{date}, {time}{date}, {time}
Esempio 1: products/{date}/{time}/product-list.csvExample 1: products/{date}/{time}/product-list.csv
Esempio 2: products/{date}/product-list.csvExample 2: products/{date}/product-list.csv
Formato data [facoltativo]Date Format [optional] Se è stata usata la variabile {date} nel modello di percorso specificato, è possibile selezionare il formato di data in cui sono organizzati i BLOB nell'elenco a discesa dei formati supportati.If you have used {date} within the Path Pattern that you specified, then you can select the date format in which your blobs are organized from the drop-down of supported formats.
Esempio: AAAA/MM/GG, MM/GG/AAAA e così viaExample: YYYY/MM/DD, MM/DD/YYYY, etc.
Formato ora [facoltativo]Time Format [optional] Se è stata usata la variabile {time} nel modello di percorso specificato, è possibile selezionare il formato di ora in cui sono organizzati i BLOB nell'elenco a discesa dei formati supportati.If you have used {time} within the Path Pattern that you specified, then you can select the time format in which your blobs are organized from the drop-down of supported formats.
Esempio: HH, HH/mm o HH-mmExample: HH, HH/mm, or HH-mm
Formato di serializzazione eventiEvent Serialization Format Per accertarsi che le query funzionino come previsto, l'analisi di flusso deve conoscere il formato di serializzazione usato per i flussi di dati in entrata.To make sure your queries work the way you expect, Stream Analytics needs to know which serialization format you're using for incoming data streams. Per i dati di riferimento, i formati dati supportati sono CSV e JSON.For Reference Data, the supported formats are CSV and JSON.
CodificaEncoding Al momento UTF-8 è l'unico formato di codifica supportatoUTF-8 is the only supported encoding format at this time

Generazione di dati di riferimento in una pianificazioneGenerating reference data on a schedule

Se i dati di riferimento sono costituiti da un set di dati che cambia lentamente, è possibile abilitare il supporto per l'aggiornamento dei dati di riferimento specificando un modello di percorso nella configurazione di input con i token di sostituzione {date} e {time}.If your reference data is a slowly changing data set, then support for refreshing reference data is enabled by specifying a path pattern in the input configuration using the {date} and {time} substitution tokens. Analisi di flusso seleziona le definizioni dei dati di riferimento aggiornate in base a questo modello di percorso.Stream Analytics picks up the updated reference data definitions based on this path pattern. Ad esempio, un modello sample/{date}/{time}/products.csv con formato di data "AAAA-MM-GG" e formato di ora "HH-mm" indica ad Analisi di flusso di selezionare il BLOB aggiornato sample/2015-04-16/17-30/products.csv alle 17.30 del 16 aprile 2015 nel fuso orario UTC.For example, a pattern of sample/{date}/{time}/products.csv with a date format of “YYYY-MM-DD” and a time format of “HH-mm” instructs Stream Analytics to pick up the updated blob sample/2015-04-16/17-30/products.csv at 5:30 PM on April 16th, 2015 UTC time zone.

Nota

Attualmente i processi di analisi di flusso cercano l'aggiornamento del BLOB solo quando la data/ora del computer precede quella codificata nel nome del BLOB.Currently Stream Analytics jobs look for the blob refresh only when the machine time advances to the time encoded in the blob name. Ad esempio, il processo cercherà sample/2015-04-16/17-30/products.csv non appena possibile ma non prima delle 17.30 del 16 aprile 2015 nel fuso orario UTC.For example, the job will look for sample/2015-04-16/17-30/products.csv as soon as possible but no earlier than 5:30 PM on April 16th, 2015 UTC time zone. Il processo non cercherà mai un BLOB con data/ora codificata precedente all'ultima individuata.It will never look for a blob with an encoded time earlier than the last one that is discovered.

Ad esempio,E.g. quando il processo trova il BLOB sample/2015-04-16/17-30/products.csv ignora tutti i file con data/ora codificata precedente alle 17.30 del 16 aprile 2015. Di conseguenza, se nello stesso contenitore viene creato un BLOB sample/2015-04-16/17-25/products.csv arrivato in ritardo, questo non viene usato dal processo.once the job finds the blob sample/2015-04-16/17-30/products.csv it will ignore any files with an encoded date earlier than 5:30 PM April 16th, 2015 so if a late arriving sample/2015-04-16/17-25/products.csv blob gets created in the same container the job will not use it.

Analogamente, se il file sample/2015-04-16/17-30/products.csv viene generato solo alle 22.03 del 16 aprile 2015, ma nel contenitore non è presente alcun BLOB con data/ora precedente, il processo usa questo file a partire dalle 22.03 del 16 aprile 2015 e i dati di riferimento precedenti fino a quel momento.Likewise if sample/2015-04-16/17-30/products.csv is only produced at 10:03 PM April 16th, 2015 but no blob with an earlier date is present in the container, the job will use this file starting at 10:03 PM April 16th, 2015 and use the previous reference data until then.

Un'eccezione a questo si verifica quando il processo deve elaborare nuovamente dei dati indietro nel tempo o quando il processo viene in primo luogo avviato.An exception to this is when the job needs to re-process data back in time or when the job is first started. All'avvio, il processo cerca il BLOB più recente generato prima dell'ora di inizio del processo specificata.At start time the job is looking for the most recent blob produced before the job start time specified. Questa operazione viene eseguita per verificare la presenza di un set di dati di riferimento non vuoto all'avvio del processo.This is done to ensure that there is a non-empty reference data set when the job starts. Se non viene trovato, il processo restituisce il messaggio di diagnostica seguente: Initializing input without a valid reference data blob for UTC time <start time>.If one cannot be found, the job displays the following diagnostic: Initializing input without a valid reference data blob for UTC time <start time>.

È possibile usare Azure Data Factory per orchestrare l'attività di creazione dei BLOB aggiornati richiesti da Analisi di flusso per aggiornare le definizioni dei dati di riferimento.Azure Data Factory can be used to orchestrate the task of creating the updated blobs required by Stream Analytics to update reference data definitions. Data factory è un servizio di integrazione delle informazioni basato sul cloud che permette di automatizzare lo spostamento e la trasformazione dei dati.Data Factory is a cloud-based data integration service that orchestrates and automates the movement and transformation of data. Data factory supporta la connessione a un numero elevato di archivi dati basati su cloud e locali e il semplice trasferimento dei dati in base a una pianificazione regolare specificata dall'utente.Data Factory supports connecting to a large number of cloud based and on-premises data stores and moving data easily on a regular schedule that you specify. Per altre informazioni e per istruzioni dettagliate su come configurare una pipeline di Data factory per generare dati di riferimento per l'analisi di flusso che vengano aggiornati in base a una pianificazione predefinita, consultare questo esempio di GitHub.For more information and step by step guidance on how to set up a Data Factory pipeline to generate reference data for Stream Analytics which refreshes on a pre-defined schedule, check out this GitHub sample.

Suggerimenti sull'aggiornamento dei dati di riferimentoTips on refreshing your reference data

  1. Sovrascrittura dei BLOB dei dati di riferimento non farà verificare l’analisi di flusso per ricaricare il BLOB e in alcuni casi può comportare il mancato completamento del processo.Overwriting reference data blobs will not cause Stream Analytics to reload the blob and in some cases it can cause the job to fail. Il modo consigliato per modificare i dati di riferimento è quello di aggiungere un nuovo BLOB usando lo stesso contenitore e il modello di percorso definito nell'input del processo e usare una data/ora maggiore rispetto a quella specificata dall'ultimo BLOB nella sequenza.The recommended way to change reference data is to add a new blob using the same container and path pattern defined in the job input and use a date/time greater than the one specified by the last blob in the sequence.
  2. I BLOB dei dati di riferimento non vengono ordinati in base all'ora dell'ultima modifica del BLOB, ma solo in base all'ora e alla data specificate nel nome del BLOB con le sostituzioni di {date} e {time}.Reference data blobs are not ordered by the blob’s “Last Modified” time but only by the time and date specified in the blob name using the {date} and {time} substitutions.
  3. In alcuni casi un processo deve tornare indietro nel tempo, quindi i BLOB dei dati di riferimento non devono essere modificati o eliminati.On a few occasions, a job must go back in time, therefore reference data blobs must not be altered or deleted.

Ottenere aiutoGet help

Per assistenza, provare il Forum di Analisi di flusso di AzureFor further assistance, try our Azure Stream Analytics forum

Passaggi successiviNext steps

È stato presentato Analisi di flusso, un servizio gestito per l'analisi di flusso su dati provenienti da Internet delle cose.You've been introduced to Stream Analytics, a managed service for streaming analytics on data from the Internet of Things. Per altre informazioni su questo servizio, vedere:To learn more about this service, see: