Importante
Questa pagina include istruzioni per la gestione dei componenti di Operazioni IoT di Azure usando i manifesti di distribuzione kubernetes, disponibile in anteprima. Questa funzionalità viene fornita con diverse limitazioni e non deve essere usata per i carichi di lavoro 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.
Per inviare dati a Microsoft Fabric OneLake in Operazioni IoT di Azure, è possibile configurare un endpoint del flusso di dati. Questa configurazione consente di specificare l'endpoint di destinazione, il metodo di autenticazione, la tabella e altre impostazioni.
Prerequisiti
Assegnare l'autorizzazione all'identità gestita
Per configurare un endpoint del flusso di dati per Microsoft Fabric OneLake, è consigliabile usare un'identità gestita assegnata dall'utente o assegnata dal sistema. Questo approccio è sicuro ed elimina la necessità di gestire manualmente le credenziali.
Dopo aver creato Microsoft Fabric OneLake, è necessario assegnare un ruolo all'identità gestita di Azure IoT Operations che concede l'autorizzazione per la scrittura nel lakehouse di Fabric.
Se si usa l'identità gestita assegnata dal sistema, in portale di Azure passare all'istanza di Operazioni IoT di Azure e selezionare Panoramica. Copiare il nome dell'estensione elencata dopo l'estensione Azure IoT Operations Arc. Ad esempio, azure-iot-operations-xxxx7. L'identità gestita assegnata dal sistema è disponibile usando lo stesso nome dell'estensione Azure IoT Operations Arc.
Passare all'area di lavoro di Microsoft Fabric creata, selezionare Gestisci accesso>+ Aggiungi persone o gruppi.
- Cercare il nome dell'identità gestita assegnata dall'utente configurata per le connessioni cloud o l'identità gestita assegnata dal sistema. Ad esempio, azure-iot-operations-xxxx7.
- Selezionare Collaboratore come ruolo, quindi selezionare Aggiungi. In questo modo l'identità gestita fornisce le autorizzazioni necessarie per scrivere in Fabric lakehouse. Per altre informazioni, vedere Ruoli nelle aree di lavoro in Microsoft Fabric.
Creare un endpoint del flusso di dati per Microsoft Fabric OneLake
Nell'esperienza operativa selezionare la scheda Endpoint flusso di dati.
In Crea nuovo endpoint del flusso di dati selezionare Microsoft Fabric OneLake>New.
Immettere le impostazioni seguenti per l'endpoint:
Impostazione |
Descrizione |
Padrone di casa / Ospitante / Conduttore (depending on the intended context) |
Nome host dell'endpoint OneLake di Microsoft Fabric nel formato onelake.dfs.fabric.microsoft.com . |
Nome lakehouse |
Nome del lakehouse in cui archiviare i dati. |
Nome dell'area di lavoro |
Nome dell'area di lavoro associata alla lakehouse. |
Tipo di percorso OneLake |
Tipo di percorso usato in OneLake. Selezionare File o Tabelle. |
Metodo di autenticazione |
Metodo utilizzato per l'autenticazione. Scegliere Identità gestita assegnata dal sistema o Identità gestita assegnata dall'utente. |
ID client |
ID client dell'identità gestita assegnata dall'utente. Obbligatorio se si usa l'identità gestita assegnata dall'utente. |
ID tenant |
ID tenant dell'identità gestita assegnata dall'utente. Obbligatorio se si usa l'identità gestita assegnata dall'utente. |
Selezionare Applica per effettuare il provisioning dell'endpoint.
Creare o sostituire
Usare il comando az iot ops dataflow endpoint create fabric-onelake per creare o sostituire un endpoint del flusso di dati OneLake di Microsoft Fabric.
az iot ops dataflow endpoint create fabric-onelake --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --workspace <WorkspaceName> --lakehouse <LakehouseName> --path-type <PathType>
Il --workspace
parametro è il nome dell'area di lavoro di Microsoft Fabric.
--lakehouse
è il nome del lakehouse di Microsoft Fabric all'interno dell'area di lavoro. Il --path-type
parametro specifica il tipo di percorso OneLake, che può essere Tables
o Files
.
Ecco un comando di esempio per creare o sostituire un endpoint del flusso di dati OneLake di Microsoft Fabric denominato fabric-endpoint
:
az iot ops dataflow endpoint create fabric-onelake --resource-group myResourceGroup --instance myAioInstance --name fabric-endpoint --workspace myWorkspace --lakehouse myLakehouse --path-type Tables
Creare o modificare
Usare il comando az iot ops dataflow endpoint apply per creare o modificare un endpoint del flusso di dati OneLake di Microsoft Fabric.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
Il --config-file
parametro è il percorso e il nome file di un file di configurazione JSON contenente le proprietà della risorsa.
In questo esempio si supponga che un file di configurazione denominato fabric-endpoint.json
con il contenuto seguente archiviato nella home directory dell'utente:
{
"endpointType": "FabricOneLake",
"fabricOneLakeSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://onelake.dfs.fabric.microsoft.com",
"oneLakePathType": "Tables",
"names": {
"workspaceName": "<WorkspaceName>",
"lakehouseName": "<LakehouseName>"
}
}
}
Ecco un comando di esempio per creare un nuovo endpoint del flusso di dati OneLake di Microsoft Fabric denominato fabric-endpoint
:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name fabric-endpoint --config-file ~/fabric-endpoint.json
Creare un file Bicep .bicep
con il contenuto seguente.
param aioInstanceName string = '<AIO_INSTANCE_NAME>'
param customLocationName string = '<CUSTOM_LOCATION_NAME>'
param endpointName string = '<ENDPOINT_NAME>'
param workspaceName string = '<WORKSPACE_NAME>'
param lakehouseName string = '<LAKEHOUSE_NAME>'
resource aioInstance 'Microsoft.IoTOperations/instances@2024-11-01' existing = {
name: aioInstanceName
}
resource customLocation 'Microsoft.ExtendedLocation/customLocations@2021-08-31-preview' existing = {
name: customLocationName
}
resource oneLakeEndpoint 'Microsoft.IoTOperations/instances/dataflowEndpoints@2024-11-01' = {
parent: aioInstance
name: endpointName
extendedLocation: {
name: customLocation.id
type: 'CustomLocation'
}
properties: {
endpointType: 'FabricOneLake'
fabricOneLakeSettings: {
// The default Fabric OneLake host URL in most cases
host: 'https://onelake.dfs.fabric.microsoft.com'
authentication: {
// See available authentication methods section for method types
// method: <METHOD_TYPE>
}
oneLakePathType: 'Tables'
names: {
workspaceName: workspaceName
lakehouseName: lakehouseName
}
}
}
}
Distribuire quindi tramite l'interfaccia della riga di comando di Azure.
az deployment group create --resource-group <RESOURCE_GROUP> --template-file <FILE>.bicep
Creare un file manifesto .yaml
Kubernetes con il contenuto seguente.
apiVersion: connectivity.iotoperations.azure.com/v1
kind: DataflowEndpoint
metadata:
name: <ENDPOINT_NAME>
namespace: azure-iot-operations
spec:
endpointType: FabricOneLake
fabricOneLakeSettings:
# The default Fabric OneLake host URL in most cases
host: https://onelake.dfs.fabric.microsoft.com
authentication:
# See available authentication methods section for method types
# method: <METHOD_TYPE>
oneLakePathType: Tables
names:
workspaceName: <WORKSPACE_NAME>
lakehouseName: <LAKEHOUSE_NAME>
Applicare quindi il file manifesto al cluster Kubernetes.
kubectl apply -f <FILE>.yaml
Tipo di percorso OneLake
L'impostazione oneLakePathType
determina il tipo di percorso da usare nel percorso OneLake. Il valore predefinito è Tables
, che è il tipo di percorso consigliato per i casi d'uso più comuni. Il Tables
tipo di percorso è una tabella nella lakehouse di OneLake usata per archiviare i dati. Può anche essere impostato come Files
, ovvero un file nella lakehouse di OneLake usato per archiviare i dati. Il Files
tipo di percorso è utile quando si desidera archiviare i dati in un formato di file non supportato dal Tables
tipo di percorso.
Il tipo di percorso OneLake è impostato nella scheda Basic per l'endpoint del flusso di dati.
Se si usa il comando az iot ops dataflow endpoint create fabric-onelake , il --path-type
parametro specifica il tipo di percorso OneLake, che può essere Tables
o Files
.
az iot ops dataflow endpoint create fabric-onelake --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --workspace <WorkspaceName> --lakehouse <LakehouseName> --path-type <PathType>
Se si usa l'endpoint az iot ops dataflow apply, la oneLakePathType
proprietà viene impostata nel file di configurazione JSON.
{
"endpointType": "FabricOneLake",
"fabricOneLakeSettings": {
"oneLakePathType": "Tables"
}
}
fabricOneLakeSettings: {
oneLakePathType: 'Tables' // Or 'Files'
}
fabricOneLakeSettings:
oneLakePathType: Tables # Or Files
Metodi di autenticazione disponibili
Per gli endpoint del flusso di dati OneLake di Microsoft Fabric sono disponibili i metodi di autenticazione seguenti.
Identità gestita assegnata dal sistema
Prima di configurare l'endpoint del flusso di dati, assegnare un ruolo all'identità gestita di Operazioni IoT di Azure che concede l'autorizzazione per la scrittura in Fabric lakehouse:
- In portale di Azure passare all'istanza di Operazioni IoT di Azure e selezionare Panoramica.
- Copiare il nome dell'estensione elencata dopo l'estensione Azure IoT Operations Arc. Ad esempio, azure-iot-operations-xxxx7.
- Passare all'area di lavoro di Microsoft Fabric, selezionare Gestisci accesso>+ Aggiungi persone o gruppi.
- Cercare il nome dell'identità gestita assegnata dal sistema. Ad esempio, azure-iot-operations-xxxx7.
- Selezionare un ruolo appropriato e quindi selezionare Aggiungi.
Configurare quindi l'endpoint del flusso di dati con le impostazioni di identità gestite assegnate dal sistema.
Nella pagina delle impostazioni dell'endpoint del flusso di dati dell'esperienza operativa selezionare la scheda Basic e quindi scegliere Metodo di>autenticazione Identità gestita assegnata dal sistema.
Creare o sostituire
Usare il comando az iot ops dataflow endpoint create fabric-onelake per creare o sostituire un endpoint del flusso di dati OneLake di Microsoft Fabric.
az iot ops dataflow endpoint create fabric-onelake --auth-type SystemAssignedManagedIdentity --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --workspace <WorkspaceName> --lakehouse <LakehouseName> --path-type <PathType>
Il --workspace
parametro è il nome dell'area di lavoro di Microsoft Fabric.
--lakehouse
è il nome del lakehouse di Microsoft Fabric all'interno dell'area di lavoro. Il --path-type
parametro specifica il tipo di percorso OneLake, che può essere Tables
o Files
.
Ecco un comando di esempio per creare o sostituire un endpoint del flusso di dati OneLake di Microsoft Fabric denominato fabric-endpoint
:
az iot ops dataflow endpoint create fabric-onelake --resource-group myResourceGroup --instance myAioInstance --name fabric-endpoint --workspace myWorkspace --lakehouse myLakehouse --path-type Tables
Creare o modificare
Usare il comando az iot ops dataflow endpoint apply per creare o modificare un endpoint del flusso di dati OneLake di Microsoft Fabric.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
Il --config-file
parametro è il percorso e il nome file di un file di configurazione JSON contenente le proprietà della risorsa.
In questo esempio si supponga che un file di configurazione denominato fabric-endpoint.json
con il contenuto seguente archiviato nella home directory dell'utente:
{
"endpointType": "FabricOneLake",
"fabricOneLakeSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://onelake.dfs.fabric.microsoft.com",
"oneLakePathType": "Tables",
"names": {
"workspaceName": "<WorkspaceName>",
"lakehouseName": "<LakehouseName>"
}
}
}
Ecco un comando di esempio per creare un nuovo endpoint del flusso di dati OneLake di Microsoft Fabric denominato fabric-endpoint
:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name fabric-endpoint --config-file ~/fabric-endpoint.json
fabricOneLakeSettings: {
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {}
}
}
fabricOneLakeSettings:
authentication:
method: SystemAssignedManagedIdentity
systemAssignedManagedIdentitySettings:
{}
Se è necessario eseguire l'override del gruppo di destinatari dell'identità gestita assegnata dal sistema, è possibile specificare l'impostazione audience
.
Nella maggior parte dei casi, non è necessario specificare un gruppo di destinatari del servizio. Se non si specifica un gruppo di destinatari, viene creata un'identità gestita con l'ambito del gruppo di destinatari predefinito con l'account di archiviazione.
Creare o sostituire
Usare il comando az iot ops dataflow endpoint create fabric-onelake per creare o sostituire un endpoint del flusso di dati OneLake di Microsoft Fabric.
az iot ops dataflow endpoint create fabric-onelake --auth-type SystemAssignedManagedIdentity fabric-onelake --audience https://<account>.onelake.dfs.fabric.microsoft.com --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --workspace <WorkspaceName> --lakehouse <LakehouseName> --path-type <PathType>
Il --audience
parametro specifica il gruppo di destinatari per l'identità gestita assegnata dal sistema. Il gruppo di destinatari predefinito è https://<account>.onelake.dfs.fabric.microsoft.com
.
Ecco un comando di esempio per creare o sostituire un endpoint del flusso di dati OneLake di Microsoft Fabric denominato fabric-endpoint
:
az iot ops dataflow endpoint create fabric-onelake --auth-type SystemAssignedManagedIdentity --audience https://account.onelake.dfs.fabric.microsoft.com --resource-group myResourceGroup --instance myAioInstance --name fabric-endpoint --workspace myWorkspace --lakehouse myLakehouse --path-type Tables
Creare o modificare
Usare il comando az iot ops dataflow endpoint apply per creare o modificare un endpoint del flusso di dati OneLake di Microsoft Fabric.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
Il --config-file
parametro è il percorso e il nome file di un file di configurazione JSON contenente le proprietà della risorsa.
In questo esempio si supponga che un file di configurazione denominato fabric-endpoint.json
con il contenuto seguente archiviato nella home directory dell'utente:
{
"endpointType": "FabricOneLake",
"fabricOneLakeSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {
"audience": "https://<account>.onelake.dfs.fabric.microsoft.com"
}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://onelake.dfs.fabric.microsoft.com",
"oneLakePathType": "Tables",
"names": {
"workspaceName": "<WorkspaceName>",
"lakehouseName": "<LakehouseName>"
}
}
}
Ecco un comando di esempio per creare un nuovo endpoint del flusso di dati OneLake di Microsoft Fabric denominato fabric-endpoint
:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name fabric-endpoint --config-file ~/fabric-endpoint.json
fabricOneLakeSettings: {
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {
audience: 'https://<ACCOUNT>.onelake.dfs.fabric.microsoft.com'
}
}
}
fabricOneLakeSettings:
authentication:
method: SystemAssignedManagedIdentity
systemAssignedManagedIdentitySettings:
audience: https://<ACCOUNT>.onelake.dfs.fabric.microsoft.com
Identità gestita assegnata dall'utente
Per usare l'identità gestita assegnata dall'utente per l'autenticazione, è prima necessario distribuire le operazioni IoT di Azure con impostazioni sicure abilitate. È quindi necessario configurare un'identità gestita assegnata dall'utente per le connessioni cloud. Per altre informazioni, vedere Abilitare le impostazioni sicure nella distribuzione di Operazioni IoT di Azure.
Prima di configurare l'endpoint del flusso di dati, assegnare un ruolo all'identità gestita assegnata dall'utente che concede l'autorizzazione per la scrittura in Fabric lakehouse.
- Passare all'area di lavoro di Microsoft Fabric, selezionare Gestisci accesso>+ Aggiungi persone o gruppi.
- Cercare il nome dell'identità gestita assegnata dall'utente.
- Selezionare un ruolo appropriato e quindi selezionare Aggiungi.
Configurare quindi l'endpoint del flusso di dati con le impostazioni di identità gestite assegnate dall'utente.
Nella pagina Delle impostazioni dell'endpoint del flusso di dati dell'esperienza operativa selezionare la scheda Basic e quindi scegliere Metodo di autenticazione>Identità gestita assegnata dall'utente.
Immettere l'ID client dell'identità gestita assegnata dall'utente e l'ID tenant nei campi appropriati.
Creare o sostituire
Usare il comando az iot ops dataflow endpoint create fabric-onelake per creare o sostituire un endpoint del flusso di dati OneLake di Microsoft Fabric con l'identità gestita assegnata dall'utente.
az iot ops dataflow endpoint create fabric-onelake --auth-type UserAssignedManagedIdentity --client-id <ClientId> --tenant-id <TenantId> --scope <Scope> --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --workspace <WorkspaceName> --lakehouse <LakehouseName> --path-type <PathType>
Il --auth-type
parametro specifica il metodo di autenticazione, in UserAssignedManagedIdentity
questo caso. I parametri --client-id
, --tenant-id
e --scope
specificano rispettivamente l'ID client dell'identità gestita assegnata dall'utente, l'ID tenant e l'ambito.
Ecco un comando di esempio per creare o sostituire un endpoint del flusso di dati OneLake di Microsoft Fabric denominato fabric-endpoint
:
Comando di esempio:
az iot ops dataflow endpoint create fabric-onelake --auth-type UserAssignedManagedIdentity --client-id ClientId --tenant-id TenantId --scope https://storage.azure.com/.default --resource-group myResourceGroup --instance myAioInstance --name fabric-endpoint --workspace myWorkspace --lakehouse myLakehouse --path-type Tables
Creare o modificare
Usare il comando az iot ops dataflow endpoint apply per creare o modificare un endpoint del flusso di dati OneLake di Microsoft Fabric con l'identità gestita assegnata dall'utente.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
Il --config-file
parametro è il percorso e il nome file di un file di configurazione JSON contenente le proprietà della risorsa.
Esempio fabric-endpoint.json
:
{
"endpointType": "FabricOneLake",
"fabricOneLakeSettings": {
"authentication": {
"method": "UserAssignedManagedIdentity",
"userAssignedManagedIdentitySettings": {
"clientId": "<ClientId>",
"scope": "<Scope>",
"tenantId": "<TenantId>"
}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://onelake.dfs.fabric.microsoft.com",
"oneLakePathType": "Tables",
"names": {
"workspaceName": "<WorkspaceName>",
"lakehouseName": "<LakehouseName>"
}
}
}
Comando di esempio:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name fabric-endpoint --config-file ~/fabric-endpoint.json
fabricOneLakeSettings: {
authentication: {
method: 'UserAssignedManagedIdentity'
userAssignedManagedIdentitySettings: {
clientId: '<ID>'
tenantId: '<ID>'
// Optional, defaults to 'https://storage.azure.com/.default'
// scope: 'https://<SCOPE_URL>'
}
}
}
Per usare un'identità gestita assegnata dall'utente, specificare il UserAssignedManagedIdentity
metodo di autenticazione e fornire e clientId
tenantId
dell'identità gestita.
fabricOneLakeSettings:
authentication:
method: UserAssignedManagedIdentity
userAssignedManagedIdentitySettings:
clientId: <ID>
tenantId: <ID>
# Optional, defaults to 'https://storage.azure.com/.default'
# scope: https://<SCOPE_URL>
In questo caso, l'ambito è facoltativo e l'impostazione predefinita è https://storage.azure.com/.default
. Se è necessario eseguire l'override dell'ambito predefinito, specificare l'impostazione scope
usando Bicep o Kubernetes.
Impostazioni avanzate
È possibile impostare impostazioni avanzate per l'endpoint OneLake dell'infrastruttura, ad esempio la latenza di invio in batch e il numero di messaggi. È possibile impostare queste impostazioni nella scheda Portale avanzato dell'endpoint del flusso di dati o all'interno della risorsa personalizzata dell'endpoint del flusso di dati.
Batch
Usare le batching
impostazioni per configurare il numero massimo di messaggi e la latenza massima prima che i messaggi vengano inviati alla destinazione. Questa impostazione è utile quando si vuole ottimizzare la larghezza di banda di rete e ridurre il numero di richieste alla destinazione.
Campo |
Descrizione |
Richiesto |
latencySeconds |
Numero massimo di secondi di attesa prima dell'invio dei messaggi alla destinazione. Il valore predefinito è 60 secondi. |
NO |
maxMessages |
Numero massimo di messaggi da inviare alla destinazione. Il valore predefinito è 100000 messaggi. |
NO |
Ad esempio, per configurare il numero massimo di messaggi su 1000 e la latenza massima a 100 secondi, usare le impostazioni seguenti:
Nell'esperienza operativa selezionare la scheda Avanzate per l'endpoint del flusso di dati.
Usare il comando az iot ops dataflow endpoint apply per creare o modificare le impostazioni avanzate dell'endpoint del flusso di dati Di Microsoft Fabric OneLake.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
Il --config-file
parametro è il percorso e il nome file di un file di configurazione JSON contenente le proprietà della risorsa.
In questo esempio si supponga che un file di configurazione denominato fabric-endpoint.json
con il contenuto seguente archiviato nella home directory dell'utente:
{
"endpointType": "FabricOneLake",
"fabricOneLakeSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"batching": {
"latencySeconds": 100,
"maxMessages": 1000
},
"host": "https://onelake.dfs.fabric.microsoft.com",
"oneLakePathType": "Tables",
"names": {
"workspaceName": "<WorkspaceName>",
"lakehouseName": "<LakehouseName>"
}
}
}
Ecco un comando di esempio per creare un nuovo endpoint del flusso di dati OneLake di Microsoft Fabric denominato fabric-endpoint
:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name fabric-endpoint --config-file ~/fabric-endpoint.json
fabricOneLakeSettings: {
batching: {
latencySeconds: 100
maxMessages: 1000
}
}
fabricOneLakeSettings:
batching:
latencySeconds: 100
maxMessages: 1000
Passaggi successivi
Per altre informazioni sui flussi di dati, vedere Creare un flusso di dati.