Copiare dati dal server HDFS usando Azure Data Factory

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Questo articolo descrive come copiare i dati dal server Hadoop Distributed File System (HDFS). Per altre informazioni su Azure Data Factory, vedere l'articolo introduttivo.

Funzionalità supportate

Il connettore HDFS è supportato per le attività seguenti:

In particolare, il connettore HDFS supporta:

  • Copia di file tramite l'autenticazione di Windows (Kerberos) o anonima.
  • Copia di file usando il protocollo webhdfs o il supporto di DistCp predefinito.
  • Copia di file così com'è o tramite l'analisi o la generazione di file con i formati di file supportati e i codec di compressione.

Prerequisiti

Se l'archivio dati si trova all'interno di una rete locale, una rete virtuale di Azure o un cloud privato virtuale di Amazon, è necessario configurare un runtime di integrazione self-hosted per connettersi.

Se l'archivio dati è un servizio dati cloud gestito, è possibile usare il Azure Integration Runtime. Se l'accesso è limitato agli indirizzi IP approvati nelle regole del firewall, è possibile Azure Integration Runtime indirizzi IP consentiti.

È anche possibile usare la funzionalità runtime di integrazione della rete virtuale gestita in Azure Data Fatcory per accedere alla rete locale senza installare e configurare un runtime di integrazione self-hosted.

Per altre informazioni sui meccanismi di sicurezza di rete e sulle opzioni supportate da Data Factory, vedere strategie di accesso ai dati.

Nota

Assicurarsi che il runtime di integrazione possa accedere a tutti i [server del nodo dei nomi]:[porta nodo nome] e [server del nodo dati]:[porta nodo dati] del cluster Hadoop. Il valore predefinito [porta del nodo nome] è 50070 e il valore predefinito [porta nodo dati] è 50075.

Introduzione

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità di Data Factory specifiche per HDFS.

Proprietà del servizio collegato

Per il servizio collegato HDFS sono supportate le proprietà seguenti:

Proprietà Descrizione Obbligatoria
type La proprietà type deve essere impostata su Hdfs.
url URL di HDFS
authenticationType I valori consentiti sono Anonymous o Windows.

Per configurare l'ambiente locale, vedere la sezione Usare l'autenticazione Kerberos per il connettore HDFS.
userName Nome utente per autenticazione di Windows. Per l'autenticazione Kerberos, specificare <username> @ <domain> .com. Sì (per autenticazione di Windows)
password Password per autenticazione di Windows. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro nel data factory o fare riferimento a un segreto archiviato in un insieme di credenziali delle chiavi di Azure. Sì (per l'autenticazione di Windows)
connectVia Runtime di integrazione da usare per la connessione all'archivio dati. Per altre informazioni, vedere la sezione Prerequisiti. Se il runtime di integrazione non è specificato, il servizio usa il valore predefinito Azure Integration Runtime. No

Esempio: uso dell'autenticazione anonima

{
    "name": "HDFSLinkedService",
    "properties": {
        "type": "Hdfs",
        "typeProperties": {
            "url" : "http://<machine>:50070/webhdfs/v1/",
            "authenticationType": "Anonymous",
            "userName": "hadoop"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Esempio: uso dell'autenticazione di Windows

{
    "name": "HDFSLinkedService",
    "properties": {
        "type": "Hdfs",
        "typeProperties": {
            "url" : "http://<machine>:50070/webhdfs/v1/",
            "authenticationType": "Windows",
            "userName": "<username>@<domain>.com (for Kerberos auth)",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Proprietà del set di dati

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere Set di dati in Azure Data Factory.

Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.

Le proprietà seguenti sono supportate per HDFS nelle impostazioni nel set location di dati basato sul formato:

Proprietà Descrizione Obbligatoria
type La proprietà type in nel set di dati deve essere location impostata su HdfsLocation.
folderPath Percorso della cartella. Se si vuole usare un carattere jolly per filtrare la cartella, ignorare questa impostazione e specificare il percorso nelle impostazioni dell'origine dell'attività. No
fileName Nome del file nell'elemento folderPath specificato. Se si vuole usare un carattere jolly per filtrare i file, ignorare questa impostazione e specificare il nome del file nelle impostazioni dell'origine dell'attività. No

Esempio:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<HDFS linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "HdfsLocation",
                "folderPath": "root/folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Proprietà dell'attività di copia

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere Pipeline e attività in Azure Data Factory. Questa sezione fornisce un elenco delle proprietà supportate dall'origine HDFS.

HDFS come origine

Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.

Le proprietà seguenti sono supportate per HDFS nelle storeSettings impostazioni nell'origine di copia basata sul formato:

Proprietà Descrizione Obbligatoria
type La proprietà type in deve essere storeSettings impostata su HdfsReadSettings.
Individuare i file da copiare
OPZIONE 1: percorso statico
Copiare dalla cartella o dal percorso del file specificato nel set di dati. Se si vogliono copiare tutti i file da una cartella, specificare anche wildcardFileName come *.
OPZIONE 2: carattere jolly
- wildcardFolderPath
Percorso della cartella con caratteri jolly per filtrare le cartelle di origine.
I caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per eseguire l'escape se il nome effettivo della cartella contiene un carattere jolly o questo carattere di escape.
Per altri esempi, vedere Esempi di filtri di file e cartelle.
No
OPZIONE 2: carattere jolly
- wildcardFileName
Nome file con caratteri jolly nel percorso cartella/wildcardFolderPath specificato per filtrare i file di origine.
I caratteri jolly consentiti sono: (corrisponde a zero o più caratteri) e (corrisponde a zero o a un singolo carattere); usare per eseguire l'escape se il nome file effettivo contiene un carattere jolly o questo carattere * ? di escape ^ all'interno. Per altri esempi, vedere Esempi di filtri di file e cartelle.
OPZIONE 3: un elenco di file
- fileListPath
Indica di copiare un set di file specificato. Puntare a un file di testo che include un elenco di file da copiare (un file per riga, con il percorso relativo al percorso configurato nel set di dati).
Quando si usa questa opzione, non specificare il nome del file nel set di dati. Per altri esempi, vedere Esempi di elenco di file.
No
Impostazioni aggiuntive
ricorsiva Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata. Quando è impostato su true e il sink è un archivio basato su file, una cartella o una sottocartella vuota non viene copiata o creata recursive nel sink.
I valori consentiti sono true (predefinito) e false.
Questa proprietà non è applicabile quando si configura fileListPath.
No
deleteFilesAfterCompletion Indica se i file binari verranno eliminati dall'archivio di origine dopo il corretto spostamento nell'archivio di destinazione. L'eliminazione del file è per ogni file, quindi quando l'attività di copia ha esito negativo, alcuni file sono già stati copiati nella destinazione ed eliminati dall'origine, mentre altri sono ancora presenti nell'archivio di origine.
Questa proprietà è valida solo nello scenario di copia di file binari. Valore predefinito: false.
No
modifiedDatetimeStart I file vengono filtrati in base all'attributo Last Modified.
I file vengono selezionati se l'ora dell'ultima modifica rientra nell'intervallo compreso tra modifiedDatetimeStart e modifiedDatetimeEnd . L'ora viene applicata al fuso orario UTC nel formato 2018-12-01T05:00:00Z.
Le proprietà possono essere NULL, il che significa che al set di dati non viene applicato alcun filtro di attributi di file. Se ha un valore datetime ma è NULL, significa che vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore modifiedDatetimeStart modifiedDatetimeEnd datetime. Se ha un valore datetime ma è NULL, significa che vengono selezionati i file il cui ultimo attributo modificato è modifiedDatetimeEnd modifiedDatetimeStart minore del valore datetime.
Questa proprietà non è applicabile quando si configura fileListPath.
No
modifiedDatetimeEnd Come sopra.
enablePartitionDiscovery Per i file partizionati, specificare se analizzare le partizioni dal percorso del file e aggiungerle come colonne di origine aggiuntive.
I valori consentiti sono false (impostazione predefinita) e true.
No
partitionRootPath Quando l'individuazione delle partizioni è abilitata, specificare il percorso radice assoluto per leggere le cartelle partizionate come colonne di dati.

Se non è specificato, per impostazione predefinita,
- Quando si usa il percorso del file nel set di dati o nell'elenco di file nell'origine, il percorso radice della partizione è il percorso configurato nel set di dati.
- Quando si usa il filtro di cartelle con caratteri jolly, il percorso radice della partizione è il percorso secondario prima del primo carattere jolly.

Si supponga, ad esempio, di configurare il percorso nel set di dati come "root/folder/year=2020/month=08/day=27":
- Se si specifica il percorso radice della partizione come "root/folder/year=2020", l'attività di copia genererà altre due colonne e con valore month "08" e "27" rispettivamente, oltre alle colonne all'interno dei day file.
- Se il percorso radice della partizione non è specificato, non verrà generata alcuna colonna aggiuntiva.
No
maxConcurrentConnections Limite superiore di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. No
Impostazioni di DistCp
distcpSettings Gruppo di proprietà da usare quando si usa HDFS DistCp. No
resourceManagerEndpoint Endpoint YARN (Yet Another Resource Negotiator) Sì, se si usa DistCp
tempScriptPath Percorso della cartella usato per archiviare lo script del comando DistCp temporaneo. Il file script viene generato da Data Factory e verrà rimosso al termine del processo di copia. Sì, se si usa DistCp
distcpOptions Opzioni aggiuntive per il comando DistCp. No

Esempio:

"activities":[
    {
        "name": "CopyFromHDFS",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "HdfsReadSettings",
                    "recursive": true,
                    "distcpSettings": {
                        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
                        "tempScriptPath": "/usr/hadoop/tempscript",
                        "distcpOptions": "-m 100"
                    }
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Esempi di filtro file e cartelle

In questa sezione viene descritto il comportamento risultante se si usa un filtro con caratteri jolly con il percorso della cartella e il nome file.

folderPath fileName ricorsiva Struttura delle cartelle di origine e risultato del filtro (i file in grassetto sono stati recuperati)
Folder* (vuoto, usare valore predefinito) false CartellaA
    File1.csv
    File2.json
    Sottocartella1
        File3.csv
        File4.json
        File5.csv
AltraCartellaB
    File6.csv
Folder* (vuoto, usare valore predefinito) true CartellaA
    File1.csv
    File2.json
    Sottocartella1
        File3.csv
        File4.json
        File5.csv
AltraCartellaB
    File6.csv
Folder* *.csv false CartellaA
    File1.csv
    File2.json
    Sottocartella1
        File3.csv
        File4.json
        File5.csv
AltraCartellaB
    File6.csv
Folder* *.csv true CartellaA
    File1.csv
    File2.json
    Sottocartella1
        File3.csv
        File4.json
        File5.csv
AltraCartellaB
    File6.csv

Esempi di elenco di file

In questa sezione viene descritto il comportamento derivato dall'uso di un percorso di elenco di file attività Copy origine. Si presuppone che si abbia la struttura di cartelle di origine seguente e si voglia copiare i file in grassetto:

Esempio di struttura di origine Contenuto in FileListToCopy.txt Azure Data Factory configurazione
root
    CartellaA
        File1.csv
        File2.json
        Sottocartella1
            File3.csv
            File4.json
            File5.csv
    Metadati
        FileListToCopy.txt
File1.csv
Sottocartella1/File3.csv
Sottocartella1/File5.csv
Nel set di dati:
- Percorso cartella: root/FolderA

Nell'attività Copy seguente:
- Percorso elenco file: root/Metadata/FileListToCopy.txt

Il percorso dell'elenco di file punta a un file di testo nello stesso archivio dati che include un elenco di file da copiare (un file per riga, con il percorso relativo al percorso configurato nel set di dati).

Usare DistCp per copiare dati da HDFS

DistCp è uno strumento da riga di comando nativo di Hadoop per l'esecuzione di una copia distribuita in un cluster Hadoop. Quando si esegue un comando in DistCp, vengono prima elencati tutti i file da copiare e quindi vengono creati diversi processi di mapping nel cluster Hadoop. Ogni processo di mapping esegue una copia binaria dall'origine al sink.

Il attività Copy supporta l'uso di DistCp per copiare i file così come sono nell'archivio BLOB di Azure (inclusa la copia a fasi)o in un archivio data lake Azure. In questo caso, DistCp può sfruttare la potenza del cluster anziché essere in esecuzione nel runtime di integrazione self-hosted. L'uso di DistCp offre una velocità effettiva di copia migliore, soprattutto se il cluster è molto potente. In base alla configurazione nel data factory, il attività Copy crea automaticamente un comando DistCp, lo invia al cluster Hadoop e monitora lo stato della copia.

Prerequisiti

Per usare DistCp per copiare i file così come sono da HDFS all'archiviazione BLOB di Azure (inclusa la copia a fasi) o all'archivio di Azure data lake, assicurarsi che il cluster Hadoop soddisfi i requisiti seguenti:

  • I servizi MapReduce e YARN sono abilitati.

  • YARN versione 2.5 o successiva.

  • Il server HDFS è integrato con l'archivio dati di destinazione: Archiviazione BLOB di Azure o Azure Data Lake Store (ADLS Gen1):

    • Il FileSystem di BLOB di Azure è supportato in modo nativo a partire da Hadoop 2.7. È necessario specificare solo il percorso JAR nella configurazione dell'ambiente Hadoop.
    • Il FileSystem di Azure Data Lake Store è disponibile come pacchetto a partire da Hadoop 3.0.0-alpha1. Se la versione del cluster Hadoop è precedente a tale versione, è necessario importare manualmente i pacchetti JAR correlati ad Azure Data Lake Store (azure-datalake-store.jar) nel cluster da quie specificare il percorso del file JAR nella configurazione dell'ambiente Hadoop.
  • Preparare una cartella temporanea in HDFS. Questa cartella temporanea viene usata per archiviare uno script della shell DistCp, in modo che occupi spazio a livello di KB.

  • Assicurarsi che l'account utente fornito nel servizio collegato HDFS abbia l'autorizzazione per:

    • Inviare un'applicazione in YARN.
    • Creare una sottocartella e leggere/scrivere i file nella cartella temp.

Configurazioni

Per esempi e configurazioni correlate a DistCp, passare alla sezione HDFS come origine.

Usare l'autenticazione Kerberos per il connettore HDFS

Sono disponibili due opzioni per configurare l'ambiente locale per l'uso dell'autenticazione Kerberos per il connettore HDFS. È possibile scegliere quella più adatta alla propria situazione.

Per entrambe le opzioni, assicurarsi di attivare webhdfs per il cluster Hadoop:

  1. Creare l'entità HTTP e keytab per webhdfs.

    Importante

    L'entità Kerberos HTTP deve iniziare con "HTTP/" in base alla specifica SPNEGO HTTP Kerberos. Per altre informazioni, vedere qui.

    Kadmin> addprinc -randkey HTTP/<namenode hostname>@<REALM.COM>
    Kadmin> ktadd -k /etc/security/keytab/spnego.service.keytab HTTP/<namenode hostname>@<REALM.COM>
    
  2. Opzioni di configurazione HDFS: aggiungere le tre proprietà seguenti in hdfs-site.xml .

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.web.authentication.kerberos.principal</name>
        <value>HTTP/_HOST@<REALM.COM></value>
    </property>
    <property>
        <name>dfs.web.authentication.kerberos.keytab</name>
        <value>/etc/security/keytab/spnego.service.keytab</value>
    </property>
    

Opzione 1: Aggiungere un computer del runtime di integrazione self-hosted nell'area di autenticazione Kerberos

Requisiti

  • Il computer del runtime di integrazione self-hosted deve essere aggiunta all'area di autenticazione Kerberos e non può essere aggiunta ad alcun dominio di Windows.

Modalità di configurazione

Nel server KDC:

Creare un'entità Azure Data Factory da usare e specificare la password.

Importante

Il nome utente non deve contenere il nome host.

Kadmin> addprinc <username>@<REALM.COM>

Nel computer del runtime di integrazione self-hosted:

  1. Eseguire l'utilità Ksetup per configurare l'area di autenticazione e il server Centro distribuzione chiavi (KDC) Kerberos.

    Il computer deve essere configurato come membro di un gruppo di lavoro, perché un'area di autenticazione Kerberos è diversa da un dominio di Windows. È possibile ottenere questa configurazione impostando l'area di autenticazione Kerberos e aggiungendo un server KDC eseguendo i comandi seguenti. Sostituire REALM.COM con il proprio nome dell'area di autenticazione.

    C:> Ksetup /setdomain REALM.COM
    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    

    Dopo aver eseguito questi comandi, riavviare il computer.

  2. Verificare la configurazione con il Ksetup comando . L'output dovrebbe essere simile al seguente:

    C:> Ksetup
    default realm = REALM.COM (external)
    REALM.com:
        kdc = <your_kdc_server_address>
    

Nell'data factory:

  • Configurare il connettore HDFS usando autenticazione di Windows insieme al nome dell'entità Kerberos e alla password per connettersi all'origine dati HDFS. Per informazioni dettagliate sulla configurazione, vedere la sezione proprietà del servizio collegato HDFS.

Opzione 2: Abilitare il trust reciproco tra il dominio Windows e l'area di autenticazione Kerberos

Requisiti

  • Il computer runtime di integrazione self-hosted deve essere parte di un dominio di Windows.
  • È necessaria l'autorizzazione per aggiornare le impostazioni del controller di dominio.

Modalità di configurazione

Nota

Sostituire REALM.COM e AD.COM nell'esercitazione seguente con il nome dell'area di autenticazione e il controller di dominio.

Nel server KDC:

  1. Modificare la configurazione KDC nel file krb5.conf per consentire a KDC di considerare attendibile il dominio windows facendo riferimento al modello di configurazione seguente. Per impostazione predefinita, la configurazione si trova in /etc/krb5.conf.

    [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
     default_realm = REALM.COM
     dns_lookup_realm = false
     dns_lookup_kdc = false
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true
    
    [realms]
     REALM.COM = {
      kdc = node.REALM.COM
      admin_server = node.REALM.COM
     }
    AD.COM = {
     kdc = windc.ad.com
     admin_server = windc.ad.com
    }
    
    [domain_realm]
     .REALM.COM = REALM.COM
     REALM.COM = REALM.COM
     .ad.com = AD.COM
     ad.com = AD.COM
    
    [capaths]
     AD.COM = {
      REALM.COM = .
     }
    

    Dopo aver configurato il file, riavviare il servizio KDC.

  2. Preparare un'entità denominata krbtgt/REALM.COM @ AD.COM nel server KDC con il comando seguente:

    Kadmin> addprinc krbtgt/REALM.COM@AD.COM
    
  3. Nel file di configurazione del servizio HDFS hadoop.security.auth_to_local aggiungere RULE:[1:$1@$0](.*\@AD.COM)s/\@.*//.

Nel controller di dominio:

  1. Eseguire i comandi seguenti Ksetup per aggiungere una voce dell'area di autenticazione:

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    
  2. Stabilire il trust dal dominio Windows all'area di autenticazione Kerberos. [password] è la password per l'entità di sicurezza krbtgt/REALM.COM@AD.COM.

    C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]
    
  3. Selezionare l'algoritmo di crittografia usato in Kerberos.

    a. Selezionare Server Manager > Criteri di gruppo dominio di gestione > > Criteri di gruppo oggetti > predefiniti o Criteri di dominio attivi e quindi selezionare Modifica .

    b. Nel riquadro Editor Gestione Criteri di gruppo computer selezionare Criteri di configurazione computer Impostazioni di Windows Impostazioni di sicurezza Criteri locali Opzioni di sicurezza e quindi configurare Sicurezza di rete: Configurare i tipi di crittografia > > > > > consentiti per Kerberos.

    c. Selezionare l'algoritmo di crittografia da usare per la connessione al server KDC. È possibile selezionare tutte le opzioni.

    Screenshot del riquadro "Sicurezza di rete: Configurare i tipi di crittografia consentiti per Kerberos"

    d. Usare il Ksetup comando per specificare l'algoritmo di crittografia da usare nell'area di autenticazione specificata.

    C:> ksetup /SetEncTypeAttr REALM.COM DES-CBC-CRC DES-CBC-MD5 RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
    
  4. Creare il mapping tra l'account di dominio e l'entità Kerberos, in modo che sia possibile usare l'entità Kerberos nel dominio di Windows.

    a. Selezionare Strumenti di amministrazione > Utenti e computer di Active Directory.

    b. Configurare le funzionalità avanzate selezionando Visualizza > Funzionalità avanzate.

    c. Nel riquadro Funzionalità avanzate fare clic con il pulsante destro del mouse sull'account a cui si desidera creare i mapping e nel riquadro Mapping nomi selezionare la scheda Nomi Kerberos .

    d. Aggiungere un'entità di sicurezza dall'area di autenticazione.

    Riquadro "Mapping identità di sicurezza"

Nel computer del runtime di integrazione self-hosted:

  • Eseguire i comandi seguenti Ksetup per aggiungere una voce dell'area di autenticazione.

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    

Nell'data factory:

  • Configurare il connettore HDFS usando autenticazione di Windows con l'account di dominio o l'entità Kerberos per connettersi all'origine dati HDFS. Per informazioni dettagliate sulla configurazione, vedere la sezione Proprietà del servizio collegato HDFS.

Proprietà dell'attività Lookup

Per informazioni sulle proprietà dell'attività Ricerca, vedere Attività Lookup in Azure Data Factory.

Proprietà dell'attività Delete

Per informazioni sulle proprietà dell'attività Delete, vedere Delete activity in Azure Data Factory.

Modalità legacy

Nota

I modelli seguenti sono ancora supportati così come lo sono per la compatibilità con le versioni precedenti. È consigliabile usare il nuovo modello descritto in precedenza, perché l'interfaccia Azure Data Factory di creazione dei modelli è passata alla generazione del nuovo modello.

Modello di set di dati legacy

Proprietà Descrizione Obbligatoria
type La proprietà type del set di dati deve essere impostata su FileShare
folderPath Percorso della cartella. È supportato un filtro con caratteri jolly. I caratteri jolly consentiti sono (corrisponde a zero o più caratteri) e (corrisponde a zero o a un singolo carattere); usare per eseguire l'escape se il nome file effettivo contiene un carattere jolly o questo carattere * ? di escape ^ all'interno.

Esempi: cartellaradice/sottocartella/. Vedere altri esempi in Esempi di filtro file e cartelle.
fileName Il nome o il filtro con caratteri jolly per i file nel valore "folderPath" specificato. Se non si specifica alcun valore per questa proprietà, il set di dati punta a tutti i file nella cartella.

Per il filtro, i caratteri jolly consentiti sono (corrisponde a zero o * più caratteri) e ? (corrisponde a zero o a un singolo carattere).
- Esempio 1: "fileName": "*.csv"
- Esempio 2: "fileName": "???20180427.txt"
Usare ^ per eseguire l'escape se il nome effettivo della cartella contiene un carattere jolly o questo carattere di escape all'interno.
No
modifiedDatetimeStart I file vengono filtrati in base all'attributo Last Modified. I file vengono selezionati se l'ora dell'ultima modifica rientra nell'intervallo compreso tra modifiedDatetimeStart e modifiedDatetimeEnd . L'ora viene applicata al fuso orario UTC nel formato 2018-12-01T05:00:00Z.

Tenere presente che le prestazioni complessive dello spostamento dei dati saranno influenzate dall'abilitazione di questa impostazione quando si vuole applicare un filtro di file a un numero elevato di file.

Le proprietà possono essere NULL, il che significa che al set di dati non viene applicato alcun filtro di attributi di file. Se ha un valore datetime ma è NULL, significa che vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore modifiedDatetimeStart modifiedDatetimeEnd datetime. Se ha un valore datetime ma è NULL, significa che vengono selezionati i file il cui ultimo attributo modificato è modifiedDatetimeEnd modifiedDatetimeStart minore del valore datetime.
No
modifiedDatetimeEnd I file vengono filtrati in base all'attributo Last Modified. I file vengono selezionati se l'ora dell'ultima modifica rientra nell'intervallo compreso tra modifiedDatetimeStart e modifiedDatetimeEnd . L'ora viene applicata al fuso orario UTC nel formato 2018-12-01T05:00:00Z.

Tenere presente che le prestazioni complessive dello spostamento dei dati saranno influenzate dall'abilitazione di questa impostazione quando si vuole applicare un filtro di file a un numero elevato di file.

Le proprietà possono essere NULL, il che significa che al set di dati non viene applicato alcun filtro di attributi di file. Se ha un valore datetime ma è NULL, significa che vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore modifiedDatetimeStart modifiedDatetimeEnd datetime. Se ha un valore datetime ma è NULL, significa che vengono selezionati i file il cui ultimo attributo modificato è modifiedDatetimeEnd modifiedDatetimeStart minore del valore datetime.
No
format Per copiare i file così come sono tra archivi basati su file (copia binaria), è possibile ignorare la sezione del formato nelle definizioni dei set di dati di input e di output.

Se si vogliono analizzare file con un formato specifico, sono supportati i tipi di formato file seguenti: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat. Impostare la proprietà type nell'area format su uno di questi valori. Per altre informazioni, vedere le sezioni Formato testo, Formato JSON, Formato AVRO, Formato OCR e Formato Parquet.
No (solo per uno scenario di copia binaria)
compressione Specificare il tipo e il livello di compressione dei dati. Per altre informazioni, vedere l'articolo sui formati di file supportati e i codec di compressione.
I tipi supportati sono: Gzip, Deflate, Bzip2 e ZipDeflate.
I livelli supportati sono: Optimal (Ottimale) e Fastest (Più veloce).
No

Suggerimento

Per copiare tutti i file in una cartella, specificare solo folderPath.
Per copiare un singolo file con un nome specificato, specificare folderPath con folder part e fileName con il nome file.
Per copiare un subset di file in una cartella, specificare folderPath con il percorso della cartella e fileName con il filtro con caratteri jolly.

Esempio:

{
    "name": "HDFSDataset",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<HDFS linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "folder/subfolder/",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Modello di origine attività Copy legacy

Proprietà Descrizione Obbligatoria
type La proprietà type dell'origine attività Copy deve essere impostata su HdfsSource.
ricorsiva Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata. Quando recursive è impostato su true e il sink è un archivio basato su file, una cartella o una sottocartella vuota non verrà copiata o creata nel sink.
I valori consentiti sono true (predefinito) e false.
No
distcpSettings Gruppo di proprietà quando si usa HDFS DistCp. No
resourceManagerEndpoint Endpoint Resource Manager YARN Sì, se si usa DistCp
tempScriptPath Percorso della cartella usato per archiviare lo script del comando DistCp temporaneo. Il file script viene generato da Data Factory e verrà rimosso al termine del processo di copia. Sì, se si usa DistCp
distcpOptions Per il comando DistCp sono disponibili opzioni aggiuntive. No
maxConcurrentConnections Limite superiore di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. No

Esempio: origine HDFS in attività Copy con DistCp

"source": {
    "type": "HdfsSource",
    "distcpSettings": {
        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
        "tempScriptPath": "/usr/hadoop/tempscript",
        "distcpOptions": "-m 100"
    }
}

Passaggi successivi

Per un elenco degli archivi dati supportati come origini e sink dal attività Copy in Azure Data Factory, vedere archivi dati supportati.