Kopírování dat do nebo z Azure Data Lake Storage Gen1 pomocí Azure Data Factory nebo Azure Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tento článek popisuje, jak kopírovat data do a z Azure Data Lake Storage Gen1. Další informace najdete v úvodním článku pro Azure Data Factory nebo Azure Synapse Analytics.

Podporované funkce

Tento konektor Azure Data Lake Storage Gen1 se podporuje pro následující funkce:

Podporované funkce IR
aktivita Copy (zdroj/jímka) ① ②
Mapování toku dat (zdroj/jímka)
Aktivita Lookup ① ②
Aktivita GetMetadata ① ②
Odstranit aktivitu ① ②

(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime

Konkrétně s tímto konektorem můžete:

Důležité

Pokud kopírujete data pomocí místního prostředí Integration Runtime, nakonfigurujte podnikovou bránu firewall tak, aby povoloval odchozí provoz na portu 443 a login.microsoftonline.com/<tenant>/oauth2/token na <ADLS account name>.azuredatalakestore.net portu 443. Druhá je služba tokenů zabezpečení Azure, se kterou musí prostředí Integration Runtime komunikovat, aby získalo přístupový token.

Začínáme

Tip

Návod, jak používat konektor Azure Data Lake Store, najdete v tématu Načtení dat do Azure Data Lake Store.

K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvoření propojené služby pro Azure Data Lake Storage Gen1 pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu pro Azure Data Lake Storage Gen1 v uživatelském rozhraní Azure Portal.

  1. V pracovním prostoru Azure Data Factory nebo Synapse přejděte na kartu Spravovat, vyberte Propojené služby a klikněte na Nový:

  2. Vyhledejte Azure Data Lake Storage Gen1 a vyberte konektor Azure Data Lake Storage Gen1.

    Snímek obrazovky konektoru Azure Data Lake Storage Gen1

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Snímek obrazovky s konfigurací propojené služby pro Azure Data Lake Storage Gen1

Podrobnosti o konfiguraci konektoru

Následující části obsahují informace o vlastnostech, které se používají k definování entit specifických pro Azure Data Lake Store Gen1.

Vlastnosti propojené služby

Propojená služba Azure Data Lake Store podporuje následující vlastnosti:

Vlastnost Popis Povinné
typ Vlastnost type musí být nastavená na AzureDataLakeStore. Yes
dataLakeStoreUri Informace o účtu Azure Data Lake Store Tyto informace mají jeden z následujících formátů: https://[accountname].azuredatalakestore.net/webhdfs/v1 nebo adl://[accountname].azuredatalakestore.net/. Yes
subscriptionId ID předplatného Azure, ke kterému patří účet Data Lake Store. Požadováno pro jímku
resourceGroupName Název skupiny prostředků Azure, ke které patří účet Data Lake Store. Požadováno pro jímku
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Pokud je vaše úložiště dat umístěné v privátní síti, můžete použít prostředí Azure Integration Runtime nebo místní prostředí Integration Runtime. Pokud tato vlastnost není zadaná, použije se výchozí prostředí Azure Integration Runtime. Ne

Použití ověřování instančního objektu

Pokud chcete použít ověřování instančního objektu, postupujte podle těchto kroků.

  1. Zaregistrujte entitu aplikace v Azure Active Directory a udělte jí přístup ke službě Data Lake Store. Podrobné kroky najdete v tématu Ověřování mezi službami. Poznamenejte si následující hodnoty, které použijete k definování propojené služby:

    • ID aplikace
    • Klíč aplikace
    • ID tenanta
  2. Udělte instančnímu objektu správná oprávnění. Podívejte se na příklady, jak funguje oprávnění v Data Lake Storage Gen1 z řízení přístupu v Azure Data Lake Storage Gen1.

    • Jako zdroj: V Accessu průzkumníka> dat udělte alespoň oprávnění ke spuštění pro všechny nadřazené složky včetně kořenového adresáře a oprávnění ke čtení souborů ke kopírování. Můžete se rozhodnout přidat do této složky a všechny podřízené položky pro rekurzivní a přidat jako přístupové oprávnění a výchozí položku oprávnění. Řízení přístupu na úrovni účtu (IAM) nevyžaduje.
    • Jako jímka: V Accessu průzkumníka> dat udělte alespoň oprávnění ke spuštění pro VŠECHNY nadřazené složky včetně kořenové složky a oprávnění k zápisu pro složku jímky. Můžete se rozhodnout přidat do této složky a všechny podřízené položky pro rekurzivní a přidat jako přístupové oprávnění a výchozí položku oprávnění.

Podporují se následující vlastnosti:

Vlastnost Popis Povinné
servicePrincipalId Zadejte ID klienta aplikace. Yes
servicePrincipalKey Zadejte klíč aplikace. Označte toto pole jako SecureString , abyste ho bezpečně uložili, nebo odkažte na tajný kód uložený v Azure Key Vault. Yes
Nájemce Zadejte informace o tenantovi, jako je název domény nebo ID tenanta, pod kterým se nachází vaše aplikace. Můžete ho načíst tak, že narazíte myší v pravém horním rohu Azure Portal. Yes
typ azureCloudu Pro ověřování instančního objektu zadejte typ cloudového prostředí Azure, ke kterému je vaše aplikace Azure Active Directory zaregistrovaná.
Povolené hodnoty jsou AzurePublic, AzureChina, AzureUsGovernment a AzureGermany. Ve výchozím nastavení se používá cloudové prostředí služby.
Ne

Příklad:

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Použití ověřování spravované identity přiřazené systémem

Ke spravované identitě přiřazené systémem, která představuje službu pro ověřování, je možné přidružit datovou továrnu nebo pracovní prostor Synapse. Tuto spravovanou identitu přiřazenou systémem můžete použít přímo k ověřování Data Lake Store, podobně jako při použití vlastního instančního objektu. Umožňuje tomuto určenému prostředku přistupovat k datům a kopírovat je do nebo z Data Lake Store.

Pokud chcete použít ověřování spravované identity přiřazené systémem, postupujte podle těchto kroků.

  1. Načtěte informace o spravované identitě přiřazené systémem zkopírováním hodnoty ID aplikace identity služby vygenerované společně s vaší továrnou nebo pracovním prostorem Synapse.

  2. Udělte spravované identitě přiřazené systémem přístup ke službě Data Lake Store. Podívejte se na příklady toho, jak oprávnění fungují v Data Lake Storage Gen1 z řízení přístupu v Azure Data Lake Storage Gen1.

    • Jako zdroj: V Accessu v Průzkumníku> dat udělte aspoň oprávnění Ke spuštění PRO VŠECHNY nadřazené složky včetně kořenového adresáře spolu s oprávněním ke čtení pro soubory ke kopírování. Můžete zvolit přidání do této složky a všech podřízených položek pro rekurzivní a přidání jako přístupové oprávnění a výchozí položky oprávnění. Řízení přístupu na úrovni účtu (IAM) nevyžaduje.
    • Jako jímka: V Aplikaci Data Explorer>Access udělte aspoň oprávnění Ke spuštění pro VŠECHNY upstreamové složky včetně kořenové složky spolu s oprávněním k zápisu do složky jímky. Můžete zvolit přidání do této složky a všech podřízených položek pro rekurzivní a přidání jako přístupové oprávnění a výchozí položky oprávnění.

V propojené službě nemusíte zadávat žádné jiné vlastnosti než obecné informace Data Lake Store.

Příklad:

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Použití ověřování spravované identity přiřazené uživatelem

Datovou továrnu je možné přiřadit k jedné nebo několika spravovaným identitám přiřazeným uživatelem. Tuto spravovanou identitu přiřazenou uživatelem můžete použít k ověřování úložiště objektů blob, které umožňuje přístup k datům a kopírování dat ze služby Data Lake Store nebo do něj. Další informace o spravovaných identitách pro prostředky Azure najdete v tématu Spravované identity pro prostředky Azure.

Pokud chcete použít ověřování spravované identity přiřazené uživatelem, postupujte takto:

  1. Vytvořte jednu nebo několik spravovaných identit přiřazených uživatelem a udělte přístup ke službě Azure Data Lake. Podívejte se na příklady toho, jak oprávnění fungují v Data Lake Storage Gen1 z řízení přístupu v Azure Data Lake Storage Gen1.

    • Jako zdroj: V Accessu v Průzkumníku> dat udělte aspoň oprávnění Ke spuštění PRO VŠECHNY nadřazené složky včetně kořenového adresáře spolu s oprávněním ke čtení pro soubory ke kopírování. Můžete zvolit přidání do této složky a všech podřízených položek pro rekurzivní a přidání jako přístupové oprávnění a výchozí položky oprávnění. Řízení přístupu na úrovni účtu (IAM) nevyžaduje.
    • Jako jímka: V Aplikaci Data Explorer>Access udělte aspoň oprávnění Ke spuštění pro VŠECHNY upstreamové složky včetně kořenové složky spolu s oprávněním k zápisu do složky jímky. Můžete zvolit přidání do této složky a všech podřízených položek pro rekurzivní a přidání jako přístupové oprávnění a výchozí položky oprávnění.
  2. Přiřaďte ke své datové továrně jednu nebo několik spravovaných identit přiřazených uživatelem a vytvořte přihlašovací údaje pro každou spravovanou identitu přiřazenou uživatelem.

Podporuje se následující vlastnost:

Vlastnost Popis Povinné
Přihlašovací údaje Jako objekt přihlašovacích údajů zadejte spravovanou identitu přiřazenou uživatelem. Yes

Příklad:

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Vlastnosti datové sady

Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v článku Datové sady .

Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních na základě formátu najdete v jednotlivých článcích.

Pro Azure Data Lake Store Gen1 se v nastavení location datové sady založené na formátu podporují následující vlastnosti:

Vlastnost Popis Povinné
typ Vlastnost type v datové location sadě musí být nastavená na AzureDataLakeStoreLocation. Yes
folderPath Cesta ke složce. Pokud chcete k filtrování složek použít zástupný znak, toto nastavení přeskočte a zadejte ho v nastavení zdroje aktivity. Ne
fileName Název souboru v dané složcePath. Pokud chcete k filtrování souborů použít zástupný znak, toto nastavení přeskočte a zadejte ho v nastavení zdroje aktivity. Ne

Příklad:

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

Vlastnosti aktivity kopírování

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v tématu Kanály. Tato část obsahuje seznam vlastností podporovaných zdrojem a jímkou Azure Data Lake Store.

Azure Data Lake Store jako zdroj

Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních na základě formátu najdete v jednotlivých článcích.

Azure Data Lake Store Gen1 podporuje následující vlastnosti v nastavení storeSettings ve zdroji kopií založeném na formátu:

Vlastnost Popis Povinné
typ Vlastnost type v části storeSettings musí být nastavená na AzureDataLakeStoreReadSettings. Yes
Vyhledejte soubory, které chcete zkopírovat:
MOŽNOST 1: statická cesta
Zkopírujte z dané složky nebo cesty k souboru zadané v datové sadě. Pokud chcete zkopírovat všechny soubory ze složky, zadejte wildcardFileName navíc jako *.
MOŽNOST 2: rozsah názvů
- listAfter
Načtěte složky nebo soubory, jejichž název je za touto hodnotou abecedně (výhradně). Využívá filtr na straně služby pro ADLS Gen1, který poskytuje lepší výkon než filtr zástupných znaků.
Služba použije tento filtr na cestu definovanou v datové sadě a podporuje se pouze jedna úroveň entity. Další příklady najdete v tématu Příklady filtrů rozsahů názvů.
Ne
MOŽNOST 2: rozsah názvů
- listBefore
Načtěte složky nebo soubory, jejichž název je před touto hodnotou abecedně (včetně). Využívá filtr na straně služby pro ADLS Gen1, který poskytuje lepší výkon než filtr zástupných znaků.
Služba použije tento filtr na cestu definovanou v datové sadě a podporuje se pouze jedna úroveň entity. Další příklady najdete v tématu Příklady filtrů rozsahů názvů.
Ne
MOŽNOST 3: zástupný znak
– zástupný znakFolderPath
Cesta ke složce se zástupnými znaky pro filtrování zdrojových složek
Povolené zástupné znaky jsou: * (odpovídá nule nebo více znakům) a ? (odpovídá nule nebo jednomu znaku). Pokud má váš skutečný název složky zástupný znak nebo řídicí znak uvnitř, použijte ^ k řídicímu znaku.
Další příklady najdete v tématu Příklady filtrů složek a souborů.
Ne
MOŽNOST 3: zástupný znak
– zástupný znakFileName
Název souboru se zástupnými znaky v dané složcePath/wildcardFolderPath pro filtrování zdrojových souborů.
Povolené zástupné znaky jsou: * (odpovídají nule nebo více znakům) a ? (odpovídají nule nebo jednomu znaku). Pokud má váš skutečný název souboru zástupný znak nebo tento řídicí znak uvnitř, použijte ^ k řídicímu znaku. Další příklady najdete v tématu Příklady filtrů složek a souborů.
Yes
MOŽNOST 4: seznam souborů
- fileListPath
Označuje zkopírování dané sady souborů. Přejděte na textový soubor, který obsahuje seznam souborů, které chcete zkopírovat, jeden soubor na řádek, což je relativní cesta k cestě nakonfigurované v datové sadě.
Při použití této možnosti nezadávejte název souboru v datové sadě. Další příklady najdete v tématu Příklady seznamu souborů.
Ne
Další nastavení:
Rekurzivní Určuje, zda se data čtou rekurzivně z podsložek nebo pouze ze zadané složky. Všimněte si, že pokud je rekurzivní nastavena na hodnotu true a jímka je úložiště založené na souborech, prázdná složka nebo podsložka se v jímce nezkopíruje ani nevytvoří.
Povolené hodnoty jsou true (výchozí) a false.
Tato vlastnost se nepoužije, pokud nakonfigurujete fileListPath.
Ne
deleteFilesAfterCompletion Určuje, zda budou binární soubory odstraněny ze zdrojového úložiště po úspěšném přesunutí do cílového úložiště. Odstranění souboru je pro jednotlivé soubory, takže když se aktivita kopírování nezdaří, uvidíte, že některé soubory už byly zkopírovány do cíle a odstraněny ze zdroje, zatímco jiné zůstávají ve zdrojovém úložišti.
Tato vlastnost je platná pouze ve scénáři kopírování binárních souborů. Výchozí hodnota: false.
Ne
modifiedDatetimeStart Filtr souborů na základě atributu: Naposledy změněno.
Soubory budou vybrány, pokud je jejich čas poslední změny větší nebo roven modifiedDatetimeStart a menší než modifiedDatetimeEnd. Čas se použije na časové pásmo UTC ve formátu "2018-12-01T05:00:00Z".
Vlastnosti můžou mít hodnotu NULL, což znamená, že se na datovou sadu nepoužije žádný filtr atributů souboru. Pokud modifiedDatetimeStart má hodnotu datetime, ale modifiedDatetimeEnd hodnotu NULL, znamená to, že budou vybrány soubory, jejichž atribut poslední změny je větší nebo roven hodnotě datetime. Pokud modifiedDatetimeEnd má hodnotu datetime, ale modifiedDatetimeStart hodnotu NULL, znamená to, že budou vybrány soubory, jejichž atribut poslední změny je menší než hodnota datetime.
Tato vlastnost se nepoužije, pokud nakonfigurujete fileListPath.
Ne
modifiedDatetimeEnd Platí to samé jako výše. Ne
enablePartitionDiscovery U dělených souborů určete, jestli se mají oddíly analyzovat z cesty k souboru a přidat je jako další zdrojové sloupce.
Povolené hodnoty jsou false (výchozí) a true.
Ne
partitionRootPath Pokud je zjišťování oddílů povolené, zadejte absolutní kořenovou cestu, aby bylo možné číst dělené složky jako datové sloupce.

Pokud není ve výchozím nastavení zadán,
– Pokud použijete cestu k souboru v datové sadě nebo v seznamu souborů ve zdroji, kořenová cesta oddílu je cesta nakonfigurovaná v datové sadě.
– Když použijete filtr složky se zástupnými cardy, kořenová cesta oddílu je dílčí cestou před prvním zástupným znakem.

Například za předpokladu, že cestu v datové sadě nakonfigurujete jako "root/folder/year=2020/month=08/day=27":
- Pokud zadáte kořenovou cestu oddílu jako "root/folder/year=2020", aktivita kopírování vygeneruje kromě sloupců v souborech další dva sloupce month s day hodnotami "08" a "27".
– Pokud není zadaná kořenová cesta oddílu, nebude vygenerován žádný sloupec navíc.
Ne
maxConcurrentConnections Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity Hodnotu zadejte pouze v případech, kdy chcete omezit souběžná připojení. Ne

Příklad:

"activities":[
    {
        "name": "CopyFromADLSGen1",
        "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": "AzureDataLakeStoreReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Data Lake Store jako jímka

Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních založených na formátu najdete v jednotlivých článcích.

Následující vlastnosti jsou podporované pro Azure Data Lake Store Gen1 v storeSettings nastavení v jímce kopírování založené na formátu:

Vlastnost Popis Povinné
typ Vlastnost type v části storeSettings musí být nastavená na AzureDataLakeStoreWriteSettings. Yes
copyBehavior Definuje chování kopírování, když zdrojem jsou soubory ze souborového úložiště dat.

Povolené hodnoty jsou následující:
- PreserveHierarchy (výchozí): Zachová hierarchii souborů v cílové složce. Relativní cesta zdrojového souboru ke zdrojové složce je shodná s relativní cestou cílového souboru k cílové složce.
- FlattenHierarchy: Všechny soubory ze zdrojové složky jsou v první úrovni cílové složky. Cílové soubory mají automaticky vygenerované názvy.
- MergeFiles: Sloučí všechny soubory ze zdrojové složky do jednoho souboru. Pokud je název souboru zadaný, je název sloučeného souboru zadaným názvem. V opačném případě se jedná o automaticky vygenerovaný název souboru.
Ne
expiryDateTime Určuje čas vypršení platnosti zapsaných souborů. Čas se použije na čas UTC ve formátu "2020-03-01T08:00:00Z". Ve výchozím nastavení je null, což znamená, že platnost zapsaných souborů nikdy nevypršela. Ne
maxConcurrentConnections Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Hodnotu zadejte pouze v případech, kdy chcete omezit souběžná připojení. Ne

Příklad:

"activities":[
    {
        "name": "CopyToADLSGen1",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Parquet output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "ParquetSink",
                "storeSettings":{
                    "type": "AzureDataLakeStoreWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

Příklady filtrů rozsahů názvů

Tato část popisuje výsledné chování filtrů rozsahů názvů.

Ukázková zdrojová struktura Konfigurace Výsledek
kořen
    pro
        file.csv
    Ax
        file2.csv
    ax.csv
    b
        file3.csv
    bx.csv
    c
        file4.csv
    cx.csv
V datové sadě:
- Cesta ke složce: root

Ve zdroji aktivity kopírování:
- Seznam po: a
- Seznam před: b
Pak se zkopírují následující soubory:

kořen
    Ax
        file2.csv
    ax.csv
    b
        file3.csv

Příklady filtrů složek a souborů

Tato část popisuje výsledné chování cesty ke složce a názvu souboru pomocí filtrů zástupných znaků.

folderPath fileName Rekurzivní Struktura zdrojové složky a výsledek filtru (soubory se načtou tučně )
Folder* (Prázdné, použijte výchozí.) false (nepravda) Složka A
    File1.csv
    Soubor2.json
    Podsložka 1
        File3.csv
        Soubor4.json
        File5.csv
DalšífolderB
    File6.csv
Folder* (Prázdné, použijte výchozí.) true Složka A
    File1.csv
    Soubor2.json
    Podsložka 1
        File3.csv
        Soubor4.json
        File5.csv
DalšífolderB
    File6.csv
Folder* *.csv false (nepravda) Složka A
    File1.csv
    Soubor2.json
    Podsložka 1
        File3.csv
        Soubor4.json
        File5.csv
DalšífolderB
    File6.csv
Folder* *.csv true Složka A
    File1.csv
    Soubor2.json
    Podsložka 1
        File3.csv
        Soubor4.json
        File5.csv
DalšífolderB
    File6.csv

Příklady seznamu souborů

Tato část popisuje výsledné chování při použití cesty k seznamu souborů ve zdroji aktivity kopírování.

Za předpokladu, že máte následující strukturu zdrojových složek a chcete soubory zkopírovat tučně:

Ukázková zdrojová struktura Obsah v FileListToCopy.txt Konfigurace
kořen
    Složka A
        File1.csv
        Soubor2.json
        Podsložka 1
            File3.csv
            Soubor4.json
            File5.csv
    Metadata
        FileListToCopy.txt
File1.csv
Podsložka1/File3.csv
Podsložka1/File5.csv
V datové sadě:
- Cesta ke složce: root/FolderA

Ve zdroji aktivity kopírování:
- Cesta k seznamu souborů: root/Metadata/FileListToCopy.txt

Cesta k seznamu souborů odkazuje na textový soubor ve stejném úložišti dat, které obsahuje seznam souborů, které chcete zkopírovat, jeden soubor na řádek s relativní cestou k cestě nakonfigurované v datové sadě.

Příklady chování operace kopírování

Tato část popisuje výsledné chování operace kopírování pro různé kombinace recursive hodnot a copyBehavior .

Rekurzivní copyBehavior Struktura zdrojových složek Výsledný cíl
true preserveHierarchy Složka1
    Soubor1
    Soubor2
    Podsložka 1
        Soubor3
        Soubor4
        Soubor5
Cílová složka1 se vytvoří se stejnou strukturou jako zdroj:

Složka1
    Soubor1
    Soubor2
    Podsložka 1
        Soubor3
        Soubor4
        Soubor5.
true flattenHierarchy Složka1
    Soubor1
    Soubor2
    Podsložka 1
        Soubor3
        Soubor4
        Soubor5
Cílová složka1 se vytvoří s následující strukturou:

Složka1
    automaticky vygenerovaný název pro Soubor1
    automaticky vygenerovaný název pro Soubor2
    automaticky vygenerovaný název souboru 3
    automaticky vygenerovaný název pro Soubor4
    automaticky vygenerovaný název pro Soubor5
true mergeFiles Složka1
    Soubor1
    Soubor2
    Podsložka 1
        Soubor3
        Soubor4
        Soubor5
Cílová složka1 se vytvoří s následující strukturou:

Složka1
    Soubor1 + Soubor2 + Soubor3 + Soubor4 + Obsah souboru5 se sloučí do jednoho souboru s automaticky vygenerovaným názvem souboru.
false (nepravda) preserveHierarchy Složka1
    Soubor1
    Soubor2
    Podsložka 1
        Soubor3
        Soubor4
        Soubor5
Cílová složka1 se vytvoří s následující strukturou:

Složka1
    Soubor1
    Soubor2

Podsložka1 se soubory File3, File4 a File5 se nezvednou.
false (nepravda) flattenHierarchy Složka1
    Soubor1
    Soubor2
    Podsložka 1
        Soubor3
        Soubor4
        Soubor5
Cílová složka1 se vytvoří s následující strukturou:

Složka1
    automaticky vygenerovaný název pro Soubor1
    automaticky vygenerovaný název pro Soubor2

Podsložka1 se soubory File3, File4 a File5 se nezvednou.
false (nepravda) mergeFiles Složka1
    Soubor1
    Soubor2
    Podsložka 1
        Soubor3
        Soubor4
        Soubor5
Cílová složka1 se vytvoří s následující strukturou:

Složka1
    Obsah File1 + File2 se sloučí do jednoho souboru s automaticky vygenerovaným názvem souboru. automaticky vygenerovaný název pro Soubor1

Podsložka1 se soubory File3, File4 a File5 se nezvednou.

Zachovat seznamy ACL pro Data Lake Storage Gen2

Tip

Pokud chcete kopírovat data z Azure Data Lake Storage Gen1 do Gen2 obecně, přečtěte si téma Kopírování dat z Azure Data Lake Storage Gen1 do Gen2, kde najdete návod a osvědčené postupy.

Pokud chcete replikovat seznamy řízení přístupu (ACL) spolu s datovými soubory při upgradu z Data Lake Storage Gen1 na Data Lake Storage Gen2, přečtěte si téma Zachování seznamů ACL z Data Lake Storage Gen1.

Mapování vlastností toku dat

Při transformaci dat v mapování toků dat můžete číst a zapisovat soubory z Azure Data Lake Storage Gen1 v následujících formátech:

Nastavení specifická pro formát najdete v dokumentaci k danému formátu. Další informace najdete v tématech Transformace zdroje v mapování toku dat a Transformace jímky v mapování toku dat.

Transformace zdroje

Ve zdrojové transformaci můžete číst z kontejneru, složky nebo jednotlivého souboru v Azure Data Lake Storage Gen1. Karta Možnosti zdroje umožňuje spravovat způsob čtení souborů.

Snímek obrazovky s kartou možností zdroje v mapování toku dat transformace zdroje

Cesta se zástupným znakem: Použití vzoru se zástupným znakem dá službě pokyn, aby prošel každou odpovídající složku a soubor v jedné zdrojové transformaci. Jedná se o efektivní způsob zpracování více souborů v rámci jednoho toku. Přidejte několik vzorů porovnávání se zástupnými znaménkami, které se zobrazí, když najedete myší na existující vzor zástupných znaků.

Ve zdrojovém kontejneru zvolte řadu souborů, které odpovídají vzoru. V datové sadě je možné zadat pouze kontejner. Cesta se zástupným znakem proto musí obsahovat také cestu ke složce z kořenové složky.

Příklady zástupných znaků:

  • * Představuje libovolnou sadu znaků.

  • ** Představuje rekurzivní vnoření adresářů.

  • ? Nahradí jeden znak.

  • [] Odpovídá jednomu z více znaků v hranatých závorkách.

  • /data/sales/**/*.csv Získá všechny soubory CSV v /data/sales.

  • /data/sales/20??/**/ Získá všechny soubory rekurzivně v rámci všech odpovídajících složek 20xx.

  • /data/sales/*/*/*.csv Získá soubory CSV na dvou úrovních pod /data/sales.

  • /data/sales/2004/12/[XY]1?.csv Získá všechny soubory CSV od prosince 2004, počínaje písmenem X nebo Y, za ním 1 a libovolným jedním znakem.

Kořenová cesta oddílu: Pokud máte ve zdroji souborů rozdělené složky ve key=value formátu (například year=2019), můžete k názvu sloupce v datovém streamu toku dat přiřadit nejvyšší úroveň stromové struktury složek oddílů.

Nejprve nastavte zástupný znak tak, aby zahrnoval všechny cesty, které jsou dělenými složkami a soubory listu, které chcete číst.

Snímek obrazovky s nastavením zdrojového souboru oddílu v transformaci zdroje toku dat mapování

Pomocí nastavení Kořenová cesta oddílu můžete definovat, jaká je nejvyšší úroveň struktury složek. Při zobrazení obsahu dat prostřednictvím náhledu dat uvidíte, že služba přidá vyřešené oddíly, které najdete v jednotlivých úrovních složek.

Kořenová cesta oddílu

Seznam souborů: Toto je sada souborů. Vytvořte textový soubor, který obsahuje seznam souborů relativní cesty ke zpracování. Přejděte na tento textový soubor.

Sloupec pro uložení názvu souboru: Uložte název zdrojového souboru do sloupce v datech. Zadejte sem nový název sloupce pro uložení řetězce názvu souboru.

Po dokončení: Po spuštění toku dat se zdrojovým souborem nic nedělejte, odstraňte zdrojový soubor nebo zdrojový soubor přesuňte. Cesty pro přesun jsou relativní.

Pokud chcete po zpracování přesunout zdrojové soubory do jiného umístění, nejprve pro operaci se soubory vyberte Přesunout. Pak nastavte adresář "from". Pokud pro cestu nepoužíváte žádné zástupné cardy, bude nastavení "od" stejná složka jako zdrojová složka.

Pokud máte zdrojovou cestu se zástupným znakem, syntaxe bude vypadat takto:

/data/sales/20??/**/*.csv

Můžete zadat "from" jako

/data/sales

A "to" jako

/backup/priorSales

V tomto případě se všechny soubory, které byly zdrojem v souboru /data/sales, přesunou do složky /backup/priorSales.

Poznámka

Operace se soubory se spouští pouze v případě, že spustíte tok dat ze spuštění kanálu (spuštění ladění kanálu nebo spuštění), které v kanálu používá aktivitu Spustit Tok dat. Operace se soubory se nespouštějí v režimu Tok dat ladění.

Filtrovat podle poslední změny: Soubory, které zpracováváte, můžete filtrovat zadáním rozsahu dat, kdy byly naposledy změněny. Všechna data a časy jsou v UTC.

Povolit zachytávání dat změn: Pokud ano, nové nebo změněné soubory se zobrazí až při posledním spuštění. Při prvním spuštění se vždy načte úplná data snímků a teprve v dalších spuštěních se zachytí nové nebo změněné soubory. Další podrobnosti najdete v tématu Změna zachytávání dat.

Snímek obrazovky s povolením zachytávání dat změn

Vlastnosti jímky

V transformaci jímky můžete zapisovat do kontejneru nebo složky v Azure Data Lake Storage Gen1. Karta Nastavení umožňuje spravovat způsob zápisu souborů.

Možnosti jímky

Vymažte složku: Určuje, zda se cílová složka vymaže před zápisem dat.

Možnost názvu souboru: Určuje název cílových souborů v cílové složce. Možnosti názvu souboru jsou:

  • Výchozí: Povolte Sparku pojmenovat soubory na základě výchozích nastavení části.
  • Vzor: Zadejte vzor, který vytvoří výčet výstupních souborů na oddíl. Například půjčky[n].csv vytvoří loans1.csv, loans2.csv atd.
  • Na oddíl: Zadejte jeden název souboru pro každý oddíl.
  • Jako data ve sloupci: Nastavte výstupní soubor na hodnotu sloupce. Cesta je relativní ke kontejneru datové sady, nikoli k cílové složce. Pokud máte v datové sadě cestu ke složce, přepíše se.
  • Výstup do jednoho souboru: Zkombinujte rozdělené výstupní soubory do jednoho pojmenovaného souboru. Cesta je relativní ke složce datové sady. Mějte na paměti, že operace sloučení může selhat v závislosti na velikosti uzlu. Tato možnost se nedoporučuje pro velké datové sady.

Citovat vše: Určuje, zda se mají uzavřít všechny hodnoty v uvozovkách.

Vlastnosti aktivity vyhledávání

Podrobnosti o vlastnostech najdete v tématu Aktivita vyhledávání.

Vlastnosti aktivity GetMetadata

Podrobnosti o vlastnostech najdete v aktivitě GetMetadata.

Odstranit vlastnosti aktivity

Podrobnosti o vlastnostech najdete v tématu Aktivita odstranění.

Starší modely

Poznámka

Z důvodu zpětné kompatibility jsou následující modely stále podporovány tak, jak jsou. V budoucnu se vám doporučuje používat nový model uvedený v předchozích částech a uživatelské rozhraní pro vytváření obsahu se přepnulo na generování nového modelu.

Starší model datové sady

Vlastnost Popis Povinné
typ Vlastnost type datové sady musí být nastavená na AzureDataLakeStoreFile. Yes
folderPath Cesta ke složce ve službě Data Lake Store Pokud není zadaný, odkazuje na kořen.

Filtr zástupných znaků je podporovaný. Povolené zástupné znaky jsou * (odpovídají nule nebo více znakům) a ? (odpovídají nule nebo jednomu znaku). Pokud váš skutečný název složky obsahuje zástupný znak, nebo tento řídicí znak uvnitř, použijte ^ řídicí znak.

Příklad: rootfolder/podsložka/. Další příklady najdete v tématu Příklady filtrů složek a souborů.
Ne
fileName Name or wildcard filter for the files under specified "folderPath". Pokud hodnotu pro tuto vlastnost nezadáte, datová sada odkazuje na všechny soubory ve složce.

Pro filtr jsou * povolené zástupné znaky (odpovídají nule nebo více znakům) a ? (odpovídají nule nebo jednomu znaku).
– Příklad 1: "fileName": "*.csv"
– Příklad 2: "fileName": "???20180427.txt"
Pokud váš skutečný název souboru obsahuje zástupný znak, nebo tento řídicí znak uvnitř, použijte ^ k řídicímu znaku.

Pokud pro výstupní datovou sadu není zadaný fileName a v jímce aktivit není zadána vlastnost preserveHierarchy , aktivita kopírování automaticky vygeneruje název souboru s následujícím vzorem: Data.[ GUID ID spuštění aktivity]. [GUID, pokud FlattenHierarchy] [formát, pokud je nakonfigurovaný]. [komprese, pokud je nakonfigurována]", například "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz". Pokud kopírujete z tabulkového zdroje pomocí názvu tabulky místo dotazu, vzor názvů je "[název tabulky].[ formát]. [komprese, pokud je nakonfigurována]", například "MyTable.csv".
Ne
modifiedDatetimeStart Soubory se filtrují na základě atributu Naposledy změněno. Soubory jsou vybrány, pokud je čas jejich poslední změny větší nebo roven modifiedDatetimeStart a menší než modifiedDatetimeEnd. Čas se použije pro časové pásmo UTC ve formátu "2018-12-01T05:00:00Z".

Povolením tohoto nastavení má vliv na celkový výkon přesunu dat, když chcete filtrovat soubory s velkými objemy souborů.

Vlastnosti můžou mít hodnotu NULL, což znamená, že na datovou sadu se nepoužije žádný filtr atributů souboru. Pokud modifiedDatetimeStart má hodnotu datetime, ale modifiedDatetimeEnd má hodnotu NULL, znamená to, že jsou vybrány soubory, jejichž atribut poslední úpravy je větší nebo roven hodnotě datetime. Pokud modifiedDatetimeEnd má hodnotu datetime, ale modifiedDatetimeStart má hodnotu NULL, znamená to, že jsou vybrány soubory, jejichž atribut poslední změny je menší než hodnota datetime.
Ne
modifiedDatetimeEnd Soubory se filtrují na základě atributu Naposledy změněno. Soubory jsou vybrány, pokud je čas jejich poslední změny větší nebo roven modifiedDatetimeStart a menší než modifiedDatetimeEnd. Čas se použije pro časové pásmo UTC ve formátu "2018-12-01T05:00:00Z".

Povolením tohoto nastavení má vliv na celkový výkon přesunu dat, když chcete filtrovat soubory s velkými objemy souborů.

Vlastnosti můžou mít hodnotu NULL, což znamená, že na datovou sadu se nepoužije žádný filtr atributů souboru. Pokud modifiedDatetimeStart má hodnotu datetime, ale modifiedDatetimeEnd má hodnotu NULL, znamená to, že jsou vybrány soubory, jejichž atribut poslední úpravy je větší nebo roven hodnotě datetime. Pokud modifiedDatetimeEnd má hodnotu datetime, ale modifiedDatetimeStart má hodnotu NULL, znamená to, že jsou vybrány soubory, jejichž atribut poslední změny je menší než hodnota datetime.
Ne
formát Pokud chcete kopírovat soubory tak, jak jsou mezi souborovými úložišti (binární kopie), přeskočte oddíl format (formát) v definicích vstupní i výstupní datové sady.

Pokud chcete analyzovat nebo generovat soubory v určitém formátu, jsou podporovány následující typy formátů souborů: TextFormat, JsonFormat, AvroFormat, OrcFormat a ParquetFormat. Vlastnost type v části Format nastavte na jednu z těchto hodnot. Další informace najdete v částech Formát textu, Formát JSON, Formát Avro, Orc a Parquet .
Ne (pouze pro scénář binárního kopírování)
komprese Zadejte typ a úroveň komprese dat. Další informace najdete v tématu Podporované formáty souborů a kompresní kodeky.
Podporované typy jsou GZip, Deflate, BZip2 a ZipDeflate.
Podporované úrovně jsou Optimální a Nejrychlejší.
Ne

Tip

Pokud chcete zkopírovat všechny soubory ve složce, zadejte pouze folderPath .
Pokud chcete zkopírovat jeden soubor s konkrétním názvem, zadejte folderPath s částí složky a fileName s názvem souboru.
Pokud chcete zkopírovat podmnožinu souborů ve složce, zadejte folderPath s částí složky a fileName se zástupným filtrem.

Příklad:

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

Starší verze modelu zdroje aktivity kopírování

Vlastnost Popis Povinné
typ Vlastnost type zdroje aktivity kopírování musí být nastavená na AzureDataLakeStoreSource. Yes
Rekurzivní Určuje, jestli se data čtou rekurzivně z podsložek, nebo jenom ze zadané složky. Pokud recursive je nastavená hodnota true a jímka je souborové úložiště, prázdná složka nebo podsložka se v jímce nezkopíruje ani nevytvoří. Povolené hodnoty jsou true (výchozí) a false. Ne
maxConcurrentConnections Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Hodnotu zadejte pouze v případech, kdy chcete omezit souběžná připojení. Ne

Příklad:

"activities":[
    {
        "name": "CopyFromADLSGen1",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ADLS Gen1 input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzureDataLakeStoreSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Starší model jímky aktivity kopírování

Vlastnost Popis Povinné
typ Vlastnost type jímky aktivity kopírování musí být nastavená na AzureDataLakeStoreSink. Yes
copyBehavior Definuje chování kopírování, pokud zdrojem jsou soubory ze souborového úložiště dat.

Povolené hodnoty jsou následující:
- PreserveHierarchy (výchozí): Zachová hierarchii souborů v cílové složce. Relativní cesta zdrojového souboru ke zdrojové složce je shodná s relativní cestou cílového souboru k cílové složce.
- FlattenHierarchy: Všechny soubory ze zdrojové složky jsou na první úrovni cílové složky. Cílové soubory mají automaticky vygenerované názvy.
- MergeFiles: Sloučí všechny soubory ze zdrojové složky do jednoho souboru. Pokud je název souboru zadaný, je název sloučeného souboru zadaným názvem. V opačném případě se název souboru vygeneruje automaticky.
Ne
maxConcurrentConnections Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Hodnotu zadejte pouze v případech, kdy chcete omezit souběžná připojení. Ne

Příklad:

"activities":[
    {
        "name": "CopyToADLSGen1",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<ADLS Gen1 output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureDataLakeStoreSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Change Data Capture (Preview)

Azure Data Factory můžou získávat nové nebo změněné soubory jenom z Azure Data Lake Storage Gen1 povolením možnosti Povolit zachytávání změn dat (Preview) v transformaci zdroje toku dat mapování. S touto možností konektoru můžete číst jenom nové nebo aktualizované soubory a použít transformace před načtením transformovaných dat do cílových datových sad podle vašeho výběru.

Ujistěte se, že název kanálu a aktivity zůstane beze změny, aby bylo možné kontrolní bod vždy zaznamenat od posledního spuštění, aby se odsud změny získaly. Pokud změníte název kanálu nebo název aktivity, kontrolní bod se resetuje a v dalším spuštění začnete od začátku.

Při ladění kanálu funguje také možnost Povolit zachytávání dat změn (Preview). Mějte na paměti, že kontrolní bod se resetuje, když během ladění aktualizujete prohlížeč. Jakmile budete s výsledkem spuštění ladění spokojeni, můžete kanál publikovat a aktivovat. Vždy se spustí od začátku bez ohledu na předchozí kontrolní bod zaznamenaný spuštěním ladění.

V části monitorování máte vždy možnost znovu spustit kanál. Když to uděláte, změny se vždy zobrazí ze záznamu kontrolního bodu ve vybraném spuštění kanálu.

Další kroky

Seznam úložišť dat podporovaných jako zdroje a jímky aktivitou kopírování najdete v tématu Podporovaná úložiště dat.