Set di dati in Azure Data FactoryDatasets in Azure Data Factory

In questo articolo vengono descritti i set di dati, la procedura di definizione dei set in formato JSON e le modalità di utilizzo nelle pipeline di Azure Data Factory.This article describes what datasets are, how they are defined in JSON format, and how they are used in Azure Data Factory pipelines.

Se non si ha dimestichezza con Data Factory, vedere Introduzione al servizio Azure Data Factory.If you are new to Data Factory, see Introduction to Azure Data Factory for an overview.

PanoramicaOverview

Una data factory può comprendere una o più pipeline.A data factory can have one or more pipelines. Una pipeline è un raggruppamento logico di attività che insieme eseguono un compito.A pipeline is a logical grouping of activities that together perform a task. Le attività in una pipeline definiscono le azioni da eseguire sui dati.The activities in a pipeline define actions to perform on your data. Un set di dati è una visualizzazione dati denominata che punta o fa riferimento ai dati usati come input e output nelle attività.Now, a dataset is a named view of data that simply points or references the data you want to use in your activities as inputs and outputs. I set di dati identificano i dati all'interno dei diversi archivi dati, come tabelle, file, cartelle e documenti.Datasets identify data within different data stores, such as tables, files, folders, and documents. Un set di dati BLOB di Azure, ad esempio, specifica il contenitore BLOB e la cartella nell'archiviazione BLOB da cui l'attività deve leggere i dati.For example, an Azure Blob dataset specifies the blob container and folder in Blob storage from which the activity should read the data.

Prima di creare un set di dati, è necessario creare un servizio collegato per collegare l'archivio dati al data factory.Before you create a dataset, you must create a linked service to link your data store to the data factory. I servizi collegati sono molto simili a stringhe di connessione e definiscono le informazioni necessarie per la connessione di Data Factory a risorse esterne.Linked services are much like connection strings, which define the connection information needed for Data Factory to connect to external resources. In altre parole, il set di dati rappresenta la struttura dei dati all'interno degli archivi dati collegati e il servizio collegato definisce la connessione all'origine dati.Think of it this way; the dataset represents the structure of the data within the linked data stores, and the linked service defines the connection to the data source. Il servizio collegato Archiviazione di Azure,ad esempio, collega l'account di archiviazione alla data factory.For example, an Azure Storage linked service links a storage account to the data factory. Un set di dati BLOB di Azure rappresenta il contenitore BLOB e la cartella all'interno dell'account di archiviazione di Azure che contiene i BLOB di input da elaborare.An Azure Blob dataset represents the blob container and the folder within that Azure storage account that contains the input blobs to be processed.

Di seguito è riportato uno scenario di esempio.Here is a sample scenario. Per copiare i dati da un'archiviazione BLOB a un database SQL, si creano due servizi collegati: Archiviazione di Azure e database SQL di Azure.To copy data from Blob storage to a SQL database, you create two linked services: Azure Storage and Azure SQL Database. Si creano quindi due set di dati: un set di dati BLOB di Azure, che si riferisce al servizio collegato Archiviazione di Azure, e un set di dati della tabella SQL di Azure, che si riferisce al servizio collegato Database SQL di Azure.Then, create two datasets: Azure Blob dataset (which refers to the Azure Storage linked service) and Azure SQL Table dataset (which refers to the Azure SQL Database linked service). I servizi collegati Archiviazione di Azure e Database SQL di Azure contengono stringhe di connessione usate da Data Factory in fase di runtime per connettersi rispettivamente all'archiviazione di Azure e al database SQL di Azure.The Azure Storage and Azure SQL Database linked services contain connection strings that Data Factory uses at runtime to connect to your Azure Storage and Azure SQL Database, respectively. Il set di dati BLOB di Azure specifica il contenitore e una cartella BLOB che contengono i BLOB di input presenti nell'archiviazione BLOB di Azure.The Azure Blob dataset specifies the blob container and blob folder that contains the input blobs in your Blob storage. Il set di dati della tabella SQL di Azure specifica la tabella SQL del database SQL in cui verranno copiati i dati.The Azure SQL Table dataset specifies the SQL table in your SQL database to which the data is to be copied.

Nel diagramma seguente viene illustrata la relazione tra pipeline, attività, set di dati e il servizio collegato in Data Factory:The following diagram shows the relationships among pipeline, activity, dataset, and linked service in Data Factory:

Relazione tra pipeline, attività, set di dati, i servizi collegati

Set di dati JSONDataset JSON

Un set di dati in Data Factory viene definito nel formato JSON seguente:A dataset in Data Factory is defined in the following JSON format:

{
    "name": "<name of dataset>",
    "properties": {
        "type": "<type of dataset: AzureBlob, AzureSql etc...>",
        "linkedServiceName": {
                "referenceName": "<name of linked service>",
                "type": "LinkedServiceReference",
        },
        "structure": [
            {
                "name": "<Name of the column>",
                "type": "<Name of the type>"
            }
        ],
        "typeProperties": {
            "<type specific property>": "<value>",
            "<type specific property 2>": "<value 2>",
        }
    }
}

La tabella seguente descrive le proprietà nel codice JSON precedente:The following table describes properties in the above JSON:

ProprietàProperty DescrizioneDescription ObbligatorioRequired
namename Nome del set di dati.Name of the dataset. Vedere Azure Data Factory - Regole di denominazione.See Azure Data Factory - Naming rules. YesYes
typetype Tipo del set di dati.Type of the dataset. Specificare uno dei tipi supportati da Data Factory, ad esempio AzureBlob o AzureSqlTable.Specify one of the types supported by Data Factory (for example: AzureBlob, AzureSqlTable).

Per informazioni dettagliate, vedere Tipi di set di dati.For details, see Dataset types.
YesYes
structurestructure Schema del set di dati.Schema of the dataset. Per informazioni dettagliate, vedere schema del set di dati.For details, see Dataset schema. NoNo
typePropertiestypeProperties Le proprietà del tipo sono diverse per ogni tipo, ad esempio BLOB di Azure Blob, tabella SQL di Azure.The type properties are different for each type (for example: Azure Blob, Azure SQL table). Per informazioni dettagliate sui tipi supportati e le relative proprietà, vedere la sezione Tipo di set di dati.For details on the supported types and their properties, see Dataset type. YesYes

Set di dati compatibile con il flusso di datiData flow compatible dataset

Per un elenco dei tipi di set di dati compatibili con il flusso di dati , vedere tipi di set di dati supportati.See supported dataset types for a list of dataset types that are Data Flow compatible. Per i set di dati compatibili con il flusso di dati sono necessarie definizioni di set di dati con granularità fine per le trasformazioni.Datasets that are compatible for Data Flow require fine-grained dataset definitions for transformations. Quindi, la definizione JSON è leggermente diversa.Thus, the JSON definition is slightly different. Anziché una proprietà di struttura , i set di dati compatibili con il flusso di dati hanno una proprietà dello schema .Instead of a structure property, datasets that are Data Flow compatible have a schema property.

Nel flusso di dati i set di dati vengono usati nelle trasformazioni di origine e sink.In Data Flow, datasets are used in source and sink transformations. I set di dati definiscono gli schemi di dati di base.The datasets define the basic data schemas. Se i dati non hanno alcuno schema, è possibile usare la deriva dello schema per l'origine e il sink.If your data has no schema, you can use schema drift for your source and sink. Lo schema nel DataSet rappresenta il tipo di dati fisico e la forma.The schema in the dataset represents the physical data type and shape.

Definendo lo schema dal set di dati, si otterranno i tipi di dati correlati, i formati dati, il percorso del file e le informazioni di connessione dal servizio collegato associato.By defining the schema from the dataset, you'll get the related data types, data formats, file location, and connection information from the associated Linked service. I metadati dei set di dati vengono visualizzati nella trasformazione origine come proiezionedi origine.Metadata from the datasets appears in your source transformation as the source projection. La proiezione nella trasformazione origine rappresenta i dati del flusso di dati con nomi e tipi definiti.The projection in the source transformation represents the Data Flow data with defined names and types.

Quando si importa lo schema di un set di dati del flusso di dati, selezionare il pulsante Importa schema e scegliere di importare dall'origine o da un file locale.When you import the schema of a Data Flow dataset, select the Import Schema button and choose to import from the source or from a local file. Nella maggior parte dei casi, lo schema viene importato direttamente dall'origine.In most cases, you'll import the schema directly from the source. Tuttavia, se si dispone già di un file di schema locale (un file parquet o CSV con intestazioni), è possibile indirizzare Data Factory per basare lo schema su tale file.But if you already have a local schema file (a Parquet file or CSV with headers), you can direct Data Factory to base the schema on that file.

{
    "name": "<name of dataset>",
    "properties": {
        "type": "<type of dataset: AzureBlob, AzureSql etc...>",
        "linkedServiceName": {
                "referenceName": "<name of linked service>",
                "type": "LinkedServiceReference",
        },
        "schema": [
            {
                "name": "<Name of the column>",
                "type": "<Name of the type>"
            }
        ],
        "typeProperties": {
            "<type specific property>": "<value>",
            "<type specific property 2>": "<value 2>",
        }
    }
}

La tabella seguente descrive le proprietà nel codice JSON precedente:The following table describes properties in the above JSON:

ProprietàProperty DescrizioneDescription ObbligatorioRequired
namename Nome del set di dati.Name of the dataset. Vedere Azure Data Factory - Regole di denominazione.See Azure Data Factory - Naming rules. YesYes
typetype Tipo del set di dati.Type of the dataset. Specificare uno dei tipi supportati da Data Factory, ad esempio AzureBlob o AzureSqlTable.Specify one of the types supported by Data Factory (for example: AzureBlob, AzureSqlTable).

Per informazioni dettagliate, vedere Tipi di set di dati.For details, see Dataset types.
YesYes
schemaschema Schema del set di dati.Schema of the dataset. Per informazioni dettagliate, vedere set di dati compatibili con il flusso di dati.For details, see Data Flow compatible datasets. NoNo
typePropertiestypeProperties Le proprietà del tipo sono diverse per ogni tipo, ad esempio BLOB di Azure Blob, tabella SQL di Azure.The type properties are different for each type (for example: Azure Blob, Azure SQL table). Per informazioni dettagliate sui tipi supportati e le relative proprietà, vedere la sezione Tipo di set di dati.For details on the supported types and their properties, see Dataset type. YesYes

Esempio di set di datiDataset example

Nell'esempio seguente il set di dati rappresenta la tabella MyTable in un database SQL.In the following example, the dataset represents a table named MyTable in a SQL database.

{
    "name": "DatasetSample",
    "properties": {
        "type": "AzureSqlTable",
        "linkedServiceName": {
                "referenceName": "MyAzureSqlLinkedService",
                "type": "LinkedServiceReference",
        },
        "typeProperties":
        {
            "tableName": "MyTable"
        },
    }
}

Tenere presente quanto segue:Note the following points:

  • type è impostato su AzureSqlTable.type is set to AzureSqlTable.
  • La proprietà del tipo tableName, specifica del tipo AzureSqlTable, è impostata su MyTable.tableName type property (specific to AzureSqlTable type) is set to MyTable.
  • linkedServiceName fa riferimento a un servizio collegato di tipo AzureSqlDatabase, che è definito nel frammento di codice JSON successivo.linkedServiceName refers to a linked service of type AzureSqlDatabase, which is defined in the next JSON snippet.

Tipo di set di datiDataset type

Esistono molti tipi diversi di set di dati, a seconda dell'archivio dati usato.There are many different types of datasets, depending on the data store you use. È possibile trovare l'elenco dei dati archiviati supportati da Data Factory dall'articolo Panoramica del connettore .You can find the list of data stored supported by Data Factory from Connector overview article. Fare clic su un archivio dati per informazioni su come creare un servizio collegato e un set di dati per tale archivio dati.Click a data store to learn how to create a linked service and a dataset for that data store.

Nell'esempio della sezione precedente, il tipo di set di dati è impostato su AzureSqlTable.In the example in the previous section, the type of the dataset is set to AzureSqlTable. Analogamente, per un set di dati BLOB di Azure, il tipo di set di dati è impostato su AzureBlob come illustrato nel codice JSON seguente:Similarly, for an Azure Blob dataset, the type of the dataset is set to AzureBlob, as shown in the following JSON:

{
    "name": "AzureBlobInput",
    "properties": {
        "type": "AzureBlob",
        "linkedServiceName": {
                "referenceName": "MyAzureStorageLinkedService",
                "type": "LinkedServiceReference",
        },

        "typeProperties": {
            "fileName": "input.log",
            "folderPath": "adfgetstarted/inputdata",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ","
            }
        }
    }
}

Struttura o schema del set di datiDataset structure or schema

I set di dati della sezione della struttura o dello schema (compatibile con il flusso di dati) sono facoltativi.The structure section or schema (Data Flow compatible) section datasets is optional. Definisce lo schema del set di dati presentando una raccolta di nomi e tipi di dati delle colonne.It defines the schema of the dataset by containing a collection of names and data types of columns. Usare la sezione structure per inserire informazioni sul tipo da usare per convertire i tipi e mappare le colonne dall'origine alla destinazione.You use the structure section to provide type information that is used to convert types and map columns from the source to the destination.

Ogni colonna della struttura contiene le proprietà seguenti:Each column in the structure contains the following properties:

ProprietàProperty DescrizioneDescription ObbligatorioRequired
namename Nome della colonna.Name of the column. YesYes
typetype Tipo di dati della colonna.Data type of the column. Data Factory supporta come valori consentiti i tipi di dati provvisori seguenti: Int16, Int32, Int64, Single, Double, Decimal, Byte[], Boolean, String, Guid, Datetime, Datetimeoffset e TimespanData Factory supports the following interim data types as allowed values: Int16, Int32, Int64, Single, Double, Decimal, Byte[], Boolean, String, Guid, Datetime, Datetimeoffset, and Timespan NoNo
cultureculture Cultura basata su .NET da usare quando il tipo è un tipo .NET: Datetime o Datetimeoffset..NET-based culture to be used when the type is a .NET type: Datetime or Datetimeoffset. Il valore predefinito è en-us.The default is en-us. NoNo
formatformat Stringa di formato da usare quando il tipo è un tipo .NET: Datetime o Datetimeoffset.Format string to be used when the type is a .NET type: Datetime or Datetimeoffset. Per informazioni su come formattare datetime, vedere Stringhe di formato di data e ora personalizzato.Refer to Custom Date and Time Format Strings on how to format datetime. NoNo

EsempioExample

Nell'esempio seguente si supponga che i dati BLOB di origine siano in formato CSV e contengano tre colonne: userid, name e lastlogindate.In the following example, suppose the source Blob data is in CSV format and contains three columns: userid, name, and lastlogindate. Sono di tipo Int64, String e Datetime con un formato datetime personalizzato che usa nomi abbreviati francesi per il giorno della settimana.They are of type Int64, String, and Datetime with a custom datetime format using abbreviated French names for day of the week.

Definire la struttura dei set di dati BLOB come indicato di seguito e le definizioni di tipo per le colonne:Define the Blob dataset structure as follows along with type definitions for the columns:

"structure":
[
    { "name": "userid", "type": "Int64"},
    { "name": "name", "type": "String"},
    { "name": "lastlogindate", "type": "Datetime", "culture": "fr-fr", "format": "ddd-MM-YYYY"}
]

Materiale sussidiarioGuidance

Seguire queste linee guida per sapere quando includere le informazioni sulla struttura e quali elementi inserire nella sezione structure.The following guidelines help you understand when to include structure information, and what to include in the structure section. Per altre informazioni sul modo in cui la data factory esegue il mapping dei dati di origine al sink e su quando specificare le informazioni sulla struttura, vedere Mapping dello schema e dei tipi.Learn more on how data factory maps source data to sink and when to specify structure information from Schema and type mapping.

  • Per le origini dati con schema sicuro, specificare la sezione structure solo se si vuole eseguire il mapping delle colonne di origine alle colonne del sink e i nomi delle colonne non sono uguali.For strong schema data sources, specify the structure section only if you want map source columns to sink columns, and their names are not the same. Questa tipologia di origine dati strutturata archivia le informazioni relative al tipo e allo schema dei dati insieme ai dati stessi.This kind of structured data source stores data schema and type information along with the data itself. Alcuni esempi di origini dati strutturate sono SQL Server, Oracle e il database SQL di Azure.Examples of structured data sources include SQL Server, Oracle, and Azure SQL Database.

    Poiché per le origini dati strutturate le informazioni sul tipo sono già disponibili, non includere le informazioni sul tipo quando si include la sezione structure.As type information is already available for structured data sources, you should not include type information when you do include the structure section.
  • Per le origini dati senza schema o con schema vulnerabile, ad esempio un file di testo nell'archivio BLOB, includere la sezione structure anche quando il set di dati è un input per un'attività di copia e i tipi di dati del set di dati di origine devono essere convertiti in tipi nativi per il sink.For no/weak schema data sources e.g. text file in blob storage, include structure when the dataset is an input for a copy activity, and data types of source dataset should be converted to native types for the sink. Includere inoltre la sezione structure per eseguire il mapping delle colonne di origine alle colonne del sink.And include structure when you want to map source columns to sink columns..

Creare set di datiCreate datasets

È possibile creare set di dati tramite uno di questi strumenti o SDK: API .NET, PowerShell, API REST, modello di Azure Resource Manager e portale di AzureYou can create datasets by using one of these tools or SDKs: .NET API, PowerShell, REST API, Azure Resource Manager Template, and Azure portal

Set di dati della versione corrente e set di dati della versione 1Current version vs. version 1 datasets

Di seguito sono riportate alcune differenze tra i set di dati di Data Factory e quelli di Data Factory versione 1:Here are some differences between Data Factory and Data Factory version 1 datasets:

  • La proprietà external non è supportata nella versione corrente.The external property is not supported in the current version. e viene sostituita da un trigger.It's replaced by a trigger.
  • Le proprietà policy e availability non sono supportate nella versione corrente.The policy and availability properties are not supported in the current version. L'ora di inizio di una pipeline dipende da trigger.The start time for a pipeline depends on triggers.
  • I set di dati con ambito (set di dati definiti in una pipeline) non sono supportati nella versione corrente.Scoped datasets (datasets defined in a pipeline) are not supported in the current version.

Passaggi successiviNext steps

Vedere le esercitazioni seguenti per istruzioni dettagliate sulla creazione di pipeline e set di dati tramite uno di questi strumenti o SDK.See the following tutorial for step-by-step instructions for creating pipelines and datasets by using one of these tools or SDKs.