Udostępnij za pośrednictwem


Kopiowanie i przekształcanie danych w usłudze Azure Blob Storage przy użyciu usługi Azure Data Factory lub Azure Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

W tym artykule opisano sposób używania działanie Kopiuj w potokach usługi Azure Data Factory i Azure Synapse do kopiowania danych z i do usługi Azure Blob Storage. W tym artykule opisano również sposób używania działania Przepływ danych do przekształcania danych w usłudze Azure Blob Storage. Aby dowiedzieć się więcej, przeczytaj artykuły z wprowadzeniem do usługi Azure Data Factory i Azure Synapse Analytics .

Napiwek

Aby dowiedzieć się więcej na temat scenariusza migracji dla usługi Data Lake lub magazynu danych, zobacz artykuł Migrowanie danych z usługi Data Lake lub magazynu danych na platformę Azure.

Obsługiwane możliwości

Ten łącznik usługi Azure Blob Storage jest obsługiwany w następujących funkcjach:

Obsługiwane możliwości IR Zarządzany prywatny punkt końcowy
działanie Kopiuj (źródło/ujście) (1) (2) √ Wykluczanie konta magazynu w wersji 1
Przepływ danych mapowania (źródło/ujście) (1) √ Wykluczanie konta magazynu w wersji 1
Działanie Lookup (1) (2) √ Wykluczanie konta magazynu w wersji 1
Działanie GetMetadata (1) (2) √ Wykluczanie konta magazynu w wersji 1
Działanie usuwania (1) (2) √ Wykluczanie konta magazynu w wersji 1

(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime

W przypadku działanie Kopiuj ten łącznik usługi Blob Storage obsługuje następujące funkcje:

  • Kopiowanie obiektów blob do i z kont usługi Azure Storage ogólnego przeznaczenia oraz magazynu gorących/chłodnych obiektów blob.
  • Kopiowanie obiektów blob przy użyciu klucza konta, sygnatury dostępu współdzielonego usługi (SAS), jednostki usługi lub tożsamości zarządzanych na potrzeby uwierzytelniania zasobów platformy Azure.
  • Kopiowanie obiektów blob z blokowych, uzupełnialnych lub stronicowych obiektów blob oraz kopiowanie danych tylko do blokowych obiektów blob.
  • Kopiowanie obiektów blob w taki sposób, jak to jest, analizowanie lub generowanie obiektów blob z obsługiwanymi formatami plików i koderami kompresji.
  • Zachowywanie metadanych pliku podczas kopiowania.

Rozpocznij

Aby wykonać działanie Kopiuj za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:

Tworzenie połączonej usługi Azure Blob Storage przy użyciu interfejsu użytkownika

Wykonaj poniższe kroki, aby utworzyć połączoną usługę Azure Blob Storage w interfejsie użytkownika witryny Azure Portal.

  1. Przejdź do karty Zarządzanie w obszarze roboczym usługi Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie wybierz pozycję Nowe:

  2. Wyszukaj obiekt blob i wybierz łącznik usługi Azure Blob Storage.

    Wybieranie połączenia z Azure Blob Storage.

  3. Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.

    Zrzut ekranu przedstawiający konfigurację połączonej usługi Azure Blob Storage.

Szczegóły konfiguracji łącznika

Poniższe sekcje zawierają szczegółowe informacje o właściwościach używanych do definiowania jednostek potoku usługi Data Factory i synapse specyficznych dla usługi Blob Storage.

Właściwości połączonej usługi

Ten łącznik usługi Blob Storage obsługuje następujące typy uwierzytelniania. Aby uzyskać szczegółowe informacje, zobacz odpowiednie sekcje.

Uwaga

  • Jeśli chcesz używać publicznego środowiska Azure Integration Runtime do nawiązywania połączenia z usługą Blob Storage, korzystając z opcji Zezwalaj zaufanym usługi firmy Microsoft na dostęp do tego konta magazynu włączonej w zaporze usługi Azure Storage, musisz użyć uwierzytelniania tożsamości zarządzanej. Aby uzyskać więcej informacji na temat ustawień zapór usługi Azure Storage, zobacz Konfigurowanie zapór i sieci wirtualnych usługi Azure Storage.
  • Jeśli używasz instrukcji PolyBase lub COPY do ładowania danych do usługi Azure Synapse Analytics, jeśli źródło lub przejściowy magazyn obiektów blob jest skonfigurowany z punktem końcowym usługi Azure Virtual Network, musisz użyć uwierzytelniania tożsamości zarządzanej zgodnie z wymaganiami usługi Azure Synapse. Aby uzyskać więcej wymagań wstępnych dotyczących konfiguracji, zobacz sekcję Uwierzytelnianie tożsamości zarządzanej.

Uwaga

Działania usługi Azure HDInsight i Azure Machine Learning obsługują tylko uwierzytelnianie korzystające z kluczy konta usługi Azure Blob Storage.

Uwierzytelnianie anonimowe

Następujące właściwości są obsługiwane w przypadku uwierzytelniania klucza konta magazynu w potokach usługi Azure Data Factory lub Synapse:

Właściwości Opis Wymagania
type Właściwość musi być ustawiona type na AzureBlobStorage (sugerowane) lub AzureStorage (zobacz następujące uwagi). Tak
containerUri Określ identyfikator URI kontenera obiektów blob platformy Azure, który włączył anonimowy dostęp do odczytu, przyjmując ten format https://<AccountName>.blob.core.windows.net/<ContainerName> i konfigurując anonimowy publiczny dostęp do odczytu dla kontenerów i obiektów blob Tak
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli ta właściwość nie zostanie określona, usługa używa domyślnego środowiska Azure Integration Runtime. Nie.

Przykład:


{
    "name": "AzureBlobStorageAnonymous",
    "properties": {
        "annotations": [],
        "type": "AzureBlobStorage",
        "typeProperties": {
            "containerUri": "https:// <accountname>.blob.core.windows.net/ <containername>",
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Przykładowy interfejs użytkownika:

Środowisko interfejsu użytkownika jest tak jak opisano na poniższej ilustracji. W tym przykładzie użyto otwartego zestawu danych platformy Azure jako źródła. Jeśli chcesz uzyskać otwarty zestaw danych bing_covid-19_data.csv, wystarczy wybrać opcję Typ uwierzytelniania jako Anonimowy i wypełnić identyfikator URI kontenera za pomocą polecenia https://pandemicdatalake.blob.core.windows.net/public.

Zrzut ekranu przedstawiający konfigurację interfejsu użytkownika przykładów anonimowych.

Uwierzytelnianie klucza konta

Następujące właściwości są obsługiwane w przypadku uwierzytelniania klucza konta magazynu w potokach usługi Azure Data Factory lub Synapse:

Właściwości Opis Wymagania
type Właściwość musi być ustawiona type na AzureBlobStorage (sugerowane) lub AzureStorage (zobacz następujące uwagi). Tak
Parametry połączenia Określ informacje potrzebne do nawiązania połączenia z usługą connectionString Storage dla właściwości .
Możesz również umieścić klucz konta w usłudze Azure Key Vault i ściągnąć konfigurację accountKey z parametry połączenia. Aby uzyskać więcej informacji, zobacz następujące przykłady i artykuł Store credentials in Azure Key Vault (Przechowywanie poświadczeń w usłudze Azure Key Vault ).
Tak
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli ta właściwość nie zostanie określona, usługa używa domyślnego środowiska Azure Integration Runtime. Nie.

Uwaga

Pomocniczy punkt końcowy usługi Blob Service nie jest obsługiwany w przypadku korzystania z uwierzytelniania za pomocą klucza konta. Możesz użyć innych typów uwierzytelniania.

Uwaga

Jeśli używasz połączonej AzureStorage usługi typu, nadal jest obsługiwana w ten sposób. Sugerujemy jednak użycie nowego AzureBlobStorage typu połączonej usługi w przyszłości.

Przykład:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
          "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        },
        "connectVia": {
          "referenceName": "<name of Integration Runtime>",
          "type": "IntegrationRuntimeReference"
        }
    }
}

Przykład: przechowywanie klucza konta w usłudze Azure Key Vault

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
            "accountKey": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Uwierzytelnianie sygnatury dostępu współdzielonego

Sygnatura dostępu współdzielonego zapewnia delegowany dostęp do zasobów na koncie magazynu. Sygnatura dostępu współdzielonego umożliwia przyznanie klientowi ograniczonych uprawnień do obiektów na koncie magazynu przez określony czas.

Nie musisz udostępniać kluczy dostępu do konta. Sygnatura dostępu współdzielonego to identyfikator URI, który zawiera w parametrach zapytania wszystkie informacje niezbędne do uwierzytelnionego dostępu do zasobu magazynu. Aby uzyskać dostęp do zasobów magazynu za pomocą sygnatury dostępu współdzielonego, klient musi przekazać tylko sygnaturę dostępu współdzielonego do odpowiedniego konstruktora lub metody.

Aby uzyskać więcej informacji na temat sygnatur dostępu współdzielonego, zobacz Sygnatury dostępu współdzielonego: Omówienie modelu sygnatury dostępu współdzielonego.

Uwaga

  • Usługa obsługuje teraz zarówno sygnatury dostępu współdzielonego usługi, jak i sygnatury dostępu współdzielonego konta. Aby uzyskać więcej informacji na temat sygnatur dostępu współdzielonego, zobacz Udzielanie ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatur dostępu współdzielonego.
  • W późniejszych konfiguracjach zestawu danych ścieżka folderu jest ścieżką bezwzględną rozpoczynającą się od poziomu kontenera. Musisz skonfigurować jedną ścieżkę zgodną ze ścieżką w identyfikatorze URI sygnatury dostępu współdzielonego.

Następujące właściwości są obsługiwane w przypadku korzystania z uwierzytelniania za pomocą sygnatury dostępu współdzielonego:

Właściwości Opis Wymagania
type Właściwość musi być ustawiona type na AzureBlobStorage (sugerowane) lub AzureStorage (patrz poniższa uwaga). Tak
sasUri Określ identyfikator URI sygnatury dostępu współdzielonego do zasobów magazynu, takich jak obiekt blob lub kontener.
Oznacz to pole jako SecureString , aby bezpiecznie je przechowywać. Możesz również umieścić token SAS w usłudze Azure Key Vault, aby użyć automatycznego obracania i usunąć część tokenu. Aby uzyskać więcej informacji, zobacz następujące przykłady i Przechowywanie poświadczeń w usłudze Azure Key Vault.
Tak
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli ta właściwość nie zostanie określona, usługa używa domyślnego środowiska Azure Integration Runtime. Nie.

Uwaga

Jeśli używasz połączonej AzureStorage usługi typu, nadal jest obsługiwana w ten sposób. Sugerujemy jednak użycie nowego AzureBlobStorage typu połączonej usługi w przyszłości.

Przykład:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource e.g. https://<accountname>.blob.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Przykład: przechowywanie klucza konta w usłudze Azure Key Vault

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.blob.core.windows.net/>"
            },
            "sasToken": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Podczas tworzenia identyfikatora URI sygnatury dostępu współdzielonego należy wziąć pod uwagę następujące kwestie:

  • Ustaw odpowiednie uprawnienia do odczytu/zapisu dla obiektów na podstawie sposobu użycia połączonej usługi (odczyt, zapis, odczyt/zapis).
  • Odpowiednio ustaw czas wygaśnięcia. Upewnij się, że dostęp do obiektów magazynu nie wygasa w aktywnym okresie potoku.
  • Identyfikator URI powinien zostać utworzony w odpowiednim kontenerze lub obiekcie blob w zależności od potrzeb. Identyfikator URI sygnatury dostępu współdzielonego do obiektu blob umożliwia usłudze Data Factory lub potokowi usługi Synapse dostęp do tego określonego obiektu blob. Identyfikator URI sygnatury dostępu współdzielonego do kontenera usługi Blob Storage umożliwia usłudze Data Factory lub potokowi usługi Synapse iterowanie za pośrednictwem obiektów blob w tym kontenerze. Aby zapewnić dostęp do większej liczby obiektów później lub zaktualizować identyfikator URI sygnatury dostępu współdzielonego, pamiętaj, aby zaktualizować połączoną usługę przy użyciu nowego identyfikatora URI.

Uwierzytelnianie nazwy głównej usługi

Aby uzyskać ogólne informacje na temat uwierzytelniania jednostki usługi Azure Storage, zobacz Uwierzytelnianie dostępu do usługi Azure Storage przy użyciu identyfikatora Entra firmy Microsoft.

Aby użyć uwierzytelniania jednostki usługi, wykonaj następujące kroki:

  1. Zarejestruj aplikację w Platforma tożsamości Microsoft. Aby dowiedzieć się, jak to zrobić, zobacz Szybki start: rejestrowanie aplikacji przy użyciu Platforma tożsamości Microsoft. Zanotuj te wartości, których użyjesz do zdefiniowania połączonej usługi:

    • Application ID
    • Klucz aplikacji
    • Identyfikator dzierżawy
  2. Przyznaj jednostce usługi odpowiednie uprawnienie w usłudze Azure Blob Storage. Aby uzyskać więcej informacji na temat ról, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych obiektów blob i kolejek za pomocą witryny Azure Portal.

    • Jako źródło w obszarze Kontrola dostępu (IAM) przyznaj co najmniej rolę Czytelnik danych obiektu blob usługi Storage.
    • Jako ujście w obszarze Kontrola dostępu (IAM) przyznaj co najmniej rolę Współautor danych obiektu blob usługi Storage.

Te właściwości są obsługiwane w przypadku połączonej usługi Azure Blob Storage:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na AzureBlobStorage. Tak
serviceEndpoint Określ punkt końcowy usługi Azure Blob Storage ze wzorcem https://<accountName>.blob.core.windows.net/. Tak
accountKind Określ rodzaj konta magazynu. Dozwolone wartości to: Storage (ogólnego przeznaczenia w wersji 1), StorageV2 (ogólnego przeznaczenia w wersji 2), BlobStorage lub BlockBlobStorage.

W przypadku korzystania z połączonej usługi Azure Blob w przepływie danych uwierzytelnianie tożsamości zarządzanej lub jednostki usługi nie jest obsługiwane, gdy rodzaj konta jest pusty ani "Magazyn". Określ odpowiedni rodzaj konta, wybierz inne uwierzytelnianie lub uaktualnij konto magazynu do ogólnego przeznaczenia w wersji 2.
Nie.
servicePrincipalId Określ identyfikator klienta aplikacji. Tak
servicePrincipalCredentialType Typ poświadczeń do użycia na potrzeby uwierzytelniania jednostki usługi. Dozwolone wartości to ServicePrincipalKey i ServicePrincipalCert. Tak
servicePrincipalCredential Poświadczenie jednostki usługi.
W przypadku użycia klucza ServicePrincipalKey jako typu poświadczeń określ klucz aplikacji. Oznacz to pole jako SecureString , aby bezpiecznie je przechowywać lub odwołuje się do wpisu tajnego przechowywanego w usłudze Azure Key Vault.
Jeśli używasz klasy ServicePrincipalCert jako poświadczenia, odwołaj się do certyfikatu w usłudze Azure Key Vault i upewnij się, że typ zawartości certyfikatu to PKCS #12.
Tak
tenant Określ informacje o dzierżawie (nazwę domeny lub identyfikator dzierżawy), w ramach których znajduje się aplikacja. Pobierz go, umieszczając wskaźnik myszy na prawym górnym rogu witryny Azure Portal. Tak
azureCloudType W przypadku uwierzytelniania jednostki usługi określ typ środowiska chmury platformy Azure, do którego zarejestrowano aplikację Firmy Microsoft Entra.
Dozwolone wartości to AzurePublic, AzureChina, AzureUsGovernment i AzureGermany. Domyślnie jest używane środowisko chmury potoku usługi Synapse lub fabryki danych.
Nie.
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli ta właściwość nie zostanie określona, usługa używa domyślnego środowiska Azure Integration Runtime. Nie.

Uwaga

  • Jeśli konto obiektu blob umożliwia usuwanie nietrwałe, uwierzytelnianie jednostki usługi nie jest obsługiwane w Przepływ danych.
  • Jeśli uzyskujesz dostęp do magazynu obiektów blob za pośrednictwem prywatnego punktu końcowego przy użyciu Przepływ danych, pamiętaj, że uwierzytelnianie jednostki usługi jest używane Przepływ danych łączy się z punktem końcowym usługi ADLS Gen2 zamiast punktu końcowego obiektu blob. Upewnij się, że utworzysz odpowiedni prywatny punkt końcowy w fabryce danych lub obszarze roboczym usługi Synapse, aby umożliwić dostęp.

Uwaga

Uwierzytelnianie jednostki usługi jest obsługiwane tylko przez połączoną usługę typu "AzureBlobStorage", a nie poprzednią połączoną usługę typu "AzureStorage".

Przykład:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Uwierzytelnianie tożsamości zarządzanej przypisanej przez system

Potok fabryki danych lub usługi Synapse może być skojarzony z tożsamością zarządzaną przypisaną przez system dla zasobów platformy Azure, która reprezentuje ten zasób do uwierzytelniania w innych usługach platformy Azure. Tę tożsamość zarządzaną przypisaną przez system można bezpośrednio użyć do uwierzytelniania usługi Blob Storage, co jest podobne do użycia własnej jednostki usługi. Dzięki temu wyznaczonemu zasobowi można uzyskiwać dostęp do usługi Blob Storage i kopiować je z lub do usługi Blob Storage. Aby dowiedzieć się więcej o tożsamościach zarządzanych dla zasobów platformy Azure, zobacz Tożsamości zarządzane dla zasobów platformy Azure

Aby uzyskać ogólne informacje na temat uwierzytelniania usługi Azure Storage, zobacz Uwierzytelnianie dostępu do usługi Azure Storage przy użyciu identyfikatora Entra firmy Microsoft. Aby użyć tożsamości zarządzanych na potrzeby uwierzytelniania zasobów platformy Azure, wykonaj następujące kroki:

  1. Pobieranie informacji o tożsamości zarządzanej przypisanej przez system przez skopiowanie wartości identyfikatora obiektu tożsamości zarządzanej przypisanej przez system wraz z fabryką lub obszarem roboczym usługi Synapse.

  2. Udziel uprawnień tożsamości zarządzanej w usłudze Azure Blob Storage. Aby uzyskać więcej informacji na temat ról, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych obiektów blob i kolejek za pomocą witryny Azure Portal.

    • Jako źródło w obszarze Kontrola dostępu (IAM) przyznaj co najmniej rolę Czytelnik danych obiektu blob usługi Storage.
    • Jako ujście w obszarze Kontrola dostępu (IAM) przyznaj co najmniej rolę Współautor danych obiektu blob usługi Storage.

Te właściwości są obsługiwane w przypadku połączonej usługi Azure Blob Storage:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na AzureBlobStorage. Tak
serviceEndpoint Określ punkt końcowy usługi Azure Blob Storage ze wzorcem https://<accountName>.blob.core.windows.net/. Tak
accountKind Określ rodzaj konta magazynu. Dozwolone wartości to: Storage (ogólnego przeznaczenia w wersji 1), StorageV2 (ogólnego przeznaczenia w wersji 2), BlobStorage lub BlockBlobStorage.

W przypadku korzystania z połączonej usługi Azure Blob w przepływie danych uwierzytelnianie tożsamości zarządzanej lub jednostki usługi nie jest obsługiwane, gdy rodzaj konta jest pusty ani "Magazyn". Określ odpowiedni rodzaj konta, wybierz inne uwierzytelnianie lub uaktualnij konto magazynu do ogólnego przeznaczenia w wersji 2.
Nie.
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli ta właściwość nie zostanie określona, usługa używa domyślnego środowiska Azure Integration Runtime. Nie.

Przykład:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Uwierzytelnianie tożsamości zarządzanej przypisanej przez użytkownika

Fabrykę danych można przypisać za pomocą jednej lub wielu tożsamości zarządzanych przypisanych przez użytkownika. Tej tożsamości zarządzanej przypisanej przez użytkownika można użyć do uwierzytelniania usługi Blob Storage, co umożliwia dostęp do danych i kopiowanie ich z usługi Blob Storage lub do usługi Blob Storage. Aby dowiedzieć się więcej o tożsamościach zarządzanych dla zasobów platformy Azure, zobacz Tożsamości zarządzane dla zasobów platformy Azure

Aby uzyskać ogólne informacje na temat uwierzytelniania usługi Azure Storage, zobacz Uwierzytelnianie dostępu do usługi Azure Storage przy użyciu identyfikatora Entra firmy Microsoft. Aby użyć uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika, wykonaj następujące kroki:

  1. Utwórz jedną lub wiele tożsamości zarządzanych przypisanych przez użytkownika i przyznaj uprawnienie w usłudze Azure Blob Storage. Aby uzyskać więcej informacji na temat ról, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych obiektów blob i kolejek za pomocą witryny Azure Portal.

    • Jako źródło w obszarze Kontrola dostępu (IAM) przyznaj co najmniej rolę Czytelnik danych obiektu blob usługi Storage.
    • Jako ujście w obszarze Kontrola dostępu (IAM) przyznaj co najmniej rolę Współautor danych obiektu blob usługi Storage.
  2. Przypisz jedną lub wiele tożsamości zarządzanych przypisanych przez użytkownika do fabryki danych i utwórz poświadczenia dla każdej tożsamości zarządzanej przypisanej przez użytkownika.

Te właściwości są obsługiwane w przypadku połączonej usługi Azure Blob Storage:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na AzureBlobStorage. Tak
serviceEndpoint Określ punkt końcowy usługi Azure Blob Storage ze wzorcem https://<accountName>.blob.core.windows.net/. Tak
accountKind Określ rodzaj konta magazynu. Dozwolone wartości to: Storage (ogólnego przeznaczenia w wersji 1), StorageV2 (ogólnego przeznaczenia w wersji 2), BlobStorage lub BlockBlobStorage.

W przypadku korzystania z połączonej usługi Azure Blob w przepływie danych uwierzytelnianie tożsamości zarządzanej lub jednostki usługi nie jest obsługiwane, gdy rodzaj konta jest pusty lub "Magazyn". Określ odpowiedni rodzaj konta, wybierz inne uwierzytelnianie lub uaktualnij konto magazynu do ogólnego przeznaczenia w wersji 2.
Nie.
poświadczenia Określ tożsamość zarządzaną przypisaną przez użytkownika jako obiekt poświadczeń. Tak
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli ta właściwość nie zostanie określona, usługa używa domyślnego środowiska Azure Integration Runtime. Nie.

Przykład:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Ważne

Jeśli używasz instrukcji PolyBase lub COPY do ładowania danych z usługi Blob Storage (jako źródła lub jako przemieszczania) do usługi Azure Synapse Analytics, podczas korzystania z uwierzytelniania tożsamości zarządzanej dla usługi Blob Storage upewnij się, że wykonasz również kroki od 1 do 3 w tych wskazówkach. Te kroki spowodują zarejestrowanie serwera przy użyciu identyfikatora Entra firmy Microsoft i przypisanie roli Współautor danych obiektu blob usługi Storage do serwera. Usługa Data Factory obsługuje resztę. Jeśli skonfigurujesz usługę Blob Storage przy użyciu punktu końcowego usługi Azure Virtual Network, musisz również mieć opcję Zezwalaj na zaufane usługi firmy Microsoft uzyskiwania dostępu do tego konta magazynu włączonego w obszarze Zapory konta usługi Azure Storage i menu ustawień sieci wirtualnych zgodnie z wymaganiami usługi Azure Synapse.

Uwaga

  • Jeśli konto obiektu blob umożliwia usuwanie nietrwałe, uwierzytelnianie tożsamości zarządzanej przypisanej przez system/użytkownika nie jest obsługiwane w Przepływ danych.
  • Jeśli uzyskujesz dostęp do magazynu obiektów blob za pośrednictwem prywatnego punktu końcowego przy użyciu Przepływ danych, pamiętaj, że w przypadku użycia uwierzytelniania tożsamości zarządzanej przypisanej przez system/użytkownika Przepływ danych łączy się z punktem końcowym usługi ADLS Gen2 zamiast punktu końcowego obiektu blob. Upewnij się, że utworzysz odpowiedni prywatny punkt końcowy w usłudze ADF, aby włączyć dostęp.

Uwaga

Uwierzytelnianie tożsamości zarządzanej przypisanej przez system/użytkownika jest obsługiwane tylko przez połączoną usługę typu "AzureBlobStorage", a nie poprzednią połączoną usługę typu "AzureStorage".

Właściwości zestawu danych

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz artykuł Zestawy danych.

Usługa Azure Data Factory obsługuje następujące formaty plików. Zapoznaj się z każdym artykułem, aby zapoznać się z ustawieniami opartymi na formacie.

Następujące właściwości są obsługiwane w usłudze Azure Blob Storage w ustawieniach location w zestawie danych opartym na formacie:

Właściwości Opis Wymagania
type Właściwość type lokalizacji w zestawie danych musi być ustawiona na Wartość AzureBlobStorageLocation. Tak
kontener Kontener obiektów blob. Tak
folderPath Ścieżka do folderu w ramach danego kontenera. Jeśli chcesz użyć symbolu wieloznakowego do filtrowania folderu, pomiń to ustawienie i określ je w ustawieniach źródła działań. Nie.
fileName Nazwa pliku w ramach podanego kontenera i ścieżki folderu. Jeśli chcesz używać symbolu wieloznakowego do filtrowania plików, pomiń to ustawienie i określ je w ustawieniach źródła działań. Nie.

Przykład:

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

Właściwości działania kopiowania

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz artykuł Pipelines (Potoki ). Ta sekcja zawiera listę właściwości, które obsługują źródło i ujście magazynu obiektów blob.

Magazyn obiektów blob jako typ źródłowy

Usługa Azure Data Factory obsługuje następujące formaty plików. Zapoznaj się z każdym artykułem, aby zapoznać się z ustawieniami opartymi na formacie.

Następujące właściwości są obsługiwane w usłudze Azure Blob Storage w ustawieniach storeSettings w źródle kopiowania opartym na formacie:

Właściwości Opis Wymagania
type Właściwość type w obszarze storeSettings musi być ustawiona na AzureBlobStorageReadSettings. Tak
Znajdź pliki do skopiowania:
OPCJA 1: ścieżka statyczna
Skopiuj z danego kontenera lub folderu/ścieżki pliku określonej w zestawie danych. Jeśli chcesz skopiować wszystkie obiekty blob z kontenera lub folderu, dodatkowo określ wildcardFileName wartość *.
OPCJA 2: prefiks obiektu blob
-przedrostek
Prefiks nazwy obiektu blob w ramach danego kontenera skonfigurowanego w zestawie danych do filtrowania źródłowych obiektów blob. Obiekty blob, których nazwy zaczynają się od container_in_dataset/this_prefix , są zaznaczone. Wykorzystuje filtr po stronie usługi dla usługi Blob Storage, który zapewnia lepszą wydajność niż filtr wieloznaczny.

Jeśli używasz prefiksu i zdecydujesz się skopiować do ujścia opartego na plikach z zachowaniem hierarchii, zwróć uwagę, że ścieżka podrzędna po ostatnim "/" w prefiksie zostanie zachowana. Na przykład masz źródłowy container/folder/subfolder/file.txtprefiks i skonfiguruj prefiks jako folder/sub, a następnie zachowaną ścieżkę pliku to subfolder/file.txt.
Nie.
OPCJA 3: symbol wieloznaczny
- symbol wieloznacznyFolderPath
Ścieżka folderu z symbolami wieloznacznymi w ramach danego kontenera skonfigurowanego w zestawie danych do filtrowania folderów źródłowych.
Dozwolone symbole wieloznaczne to: * (pasuje do zera lub większej liczby znaków) i ? (pasuje do zera lub pojedynczego znaku). Użyj ^ polecenia , aby uniknąć, jeśli nazwa folderu ma symbol wieloznaczny lub znak ucieczki wewnątrz.
Zobacz więcej przykładów w przykładach filtru folderów i plików.
Nie.
OPCJA 3: symbol wieloznaczny
- symbol wieloznacznyFileName
Nazwa pliku z symbolami wieloznacznymi w ramach podanego kontenera i ścieżki folderu (lub ścieżki folderu z symbolami wieloznacznymi) do filtrowania plików źródłowych.
Dozwolone symbole wieloznaczne to: * (pasuje do zera lub większej liczby znaków) i ? (pasuje do zera lub pojedynczego znaku). Użyj ^ polecenia , aby uniknąć, jeśli nazwa pliku ma symbol wieloznaczny lub znak ucieczki wewnątrz. Zobacz więcej przykładów w przykładach filtru folderów i plików.
Tak
OPCJA 4: lista plików
- fileListPath
Wskazuje, aby skopiować dany zestaw plików. Wskaż plik tekstowy zawierający listę plików, które chcesz skopiować, jeden plik na wiersz, czyli ścieżkę względną do ścieżki skonfigurowanej w zestawie danych.
W przypadku korzystania z tej opcji nie należy określać nazwy pliku w zestawie danych. Zobacz więcej przykładów na przykładach na liście plików.
Nie.
Dodatkowe ustawienia:
Cykliczne Wskazuje, czy dane są odczytywane rekursywnie z podfolderów, czy tylko z określonego folderu. Należy pamiętać, że gdy rekursywna ma wartość true, a ujście jest magazynem opartym na plikach, pusty folder lub podfolder nie jest kopiowany ani tworzony w ujściu.
Dozwolone wartości to true (wartość domyślna) i false.
Ta właściwość nie ma zastosowania podczas konfigurowania fileListPathelementu .
Nie.
deleteFilesAfterCompletion Wskazuje, czy pliki binarne zostaną usunięte z magazynu źródłowego po pomyślnym przeniesieniu do magazynu docelowego. Usunięcie pliku jest na plik. W związku z tym, gdy działanie kopiowania zakończy się niepowodzeniem, zobaczysz, że niektóre pliki zostały już skopiowane do miejsca docelowego i usunięte ze źródła, podczas gdy inne nadal pozostają w magazynie źródłowym.
Ta właściwość jest prawidłowa tylko w scenariuszu kopiowania plików binarnych. Wartość domyślna: false.
Nie.
modifiedDatetimeStart Pliki są filtrowane na podstawie atrybutu: ostatnia modyfikacja.
Pliki zostaną wybrane, jeśli ich czas ostatniej modyfikacji jest większy lub równy modifiedDatetimeStart i mniejszy niż modifiedDatetimeEnd. Czas jest stosowany do strefy czasowej UTC w formacie "2018-12-01T05:00:00Z".
Właściwości mogą mieć wartość NULL, co oznacza, że do zestawu danych nie zostanie zastosowany filtr atrybutu pliku. Jeśli modifiedDatetimeStart ma wartość data/godzina, ale modifiedDatetimeEnd ma wartość NULL, zostaną wybrane pliki, których ostatnio zmodyfikowany atrybut jest większy lub równy wartości daty/godziny. Jeśli modifiedDatetimeEnd ma wartość data/godzina, ale modifiedDatetimeStart ma wartość NULL, zostaną wybrane pliki, których ostatnio zmodyfikowany atrybut jest mniejszy niż wartość typu data/godzina.
Ta właściwość nie ma zastosowania podczas konfigurowania fileListPathelementu .
Nie.
modifiedDatetimeEnd Tak samo jak poprzednia właściwość. Nie.
enablePartitionDiscovery W przypadku plików podzielonych na partycje określ, czy analizować partycje ze ścieżki pliku i dodać je jako dodatkowe kolumny źródłowe.
Dozwolone wartości to false (wartość domyślna) i true.
Nie.
partitionRootPath Po włączeniu odnajdywania partycji określ bezwzględną ścieżkę katalogu głównego, aby odczytywać foldery podzielone na partycje jako kolumny danych.

Jeśli nie jest określony, domyślnie,
— Jeśli używasz ścieżki pliku w zestawie danych lub liście plików w źródle, ścieżka główna partycji jest ścieżką skonfigurowaną w zestawie danych.
— W przypadku używania filtru folderów wieloznacznych ścieżka główna partycji jest ścieżką podrzędną przed pierwszym symbolem wieloznacznymi.
— W przypadku używania prefiksu ścieżka główna partycji jest ścieżką podrzędną przed ostatnim "/".

Załóżmy na przykład, że ścieżka w zestawie danych zostanie skonfigurowana jako "root/folder/year=2020/month=08/day=27":
- Jeśli określisz ścieżkę główną partycji jako "root/folder/year=2020", działanie kopiowania wygeneruje dwie kolejne kolumny month i day z wartością "08" i "27" odpowiednio, oprócz kolumn wewnątrz plików.
— Jeśli ścieżka główna partycji nie zostanie określona, nie zostanie wygenerowana żadna dodatkowa kolumna.
Nie.
maxConcurrentConnections Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas uruchamiania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. Nie.

Uwaga

W przypadku formatu tekstowego Parquet/rozdzielany typ obiektu BlobSource dla źródła działanie Kopiuj wymienionego w następnej sekcji jest nadal obsługiwany, podobnie jak w przypadku zgodności z poprzednimi wersjami. Zalecamy użycie nowego modelu do momentu przełączenia interfejsu użytkownika tworzenia na generowanie tych nowych typów.

Przykład:

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

Uwaga

$logs Kontener, który jest tworzony automatycznie po włączeniu analityka magazynu dla konta magazynu, nie jest wyświetlany, gdy operacja wyświetlania listy kontenerów jest wykonywana za pośrednictwem interfejsu użytkownika. Ścieżka pliku musi być podana bezpośrednio dla fabryki danych lub potoku usługi Synapse w celu korzystania z plików z kontenera $logs .

Magazyn obiektów blob jako typ ujścia

Usługa Azure Data Factory obsługuje następujące formaty plików. Zapoznaj się z każdym artykułem, aby zapoznać się z ustawieniami opartymi na formacie.

Następujące właściwości są obsługiwane w usłudze Azure Blob Storage w ustawieniach storeSettings ujścia kopiowania opartego na formacie:

Właściwości Opis Wymagania
type Właściwość w obszarze storeSettings musi być ustawiona type na AzureBlobStorageWriteSettings. Tak
copyBehavior Definiuje zachowanie kopiowania, gdy źródłem są pliki z magazynu danych opartego na plikach.

Dozwolone wartości to:
- PreserveHierarchy (wartość domyślna): Zachowuje hierarchię plików w folderze docelowym. Ścieżka względna pliku źródłowego do folderu źródłowego jest identyczna ze ścieżką względną pliku docelowego do folderu docelowego.
- FlattenHierarchy: Wszystkie pliki z folderu źródłowego znajdują się na pierwszym poziomie folderu docelowego. Pliki docelowe mają automatycznie wygenerowane nazwy.
- MergeFiles: Scala wszystkie pliki z folderu źródłowego do jednego pliku. Jeśli określono nazwę pliku lub obiektu blob, scalona nazwa pliku jest określoną nazwą. W przeciwnym razie jest to automatycznie wygenerowana nazwa pliku.
Nie.
blockSizeInMB Określ rozmiar bloku w megabajtach używany do zapisywania danych w blokowych obiektach blob. Dowiedz się więcej o blokowych obiektach blob.
Dozwolona wartość wynosi od 4 MB do 100 MB.
Domyślnie usługa automatycznie określa rozmiar bloku na podstawie typu magazynu źródłowego i danych. W przypadku kopii niebinarnej do usługi Blob Storage domyślny rozmiar bloku wynosi 100 MB, dzięki czemu może mieścić się w (co najwyżej) 4,95 TB danych. Może to nie być optymalne, gdy dane nie są duże, zwłaszcza w przypadku korzystania z własnego środowiska Integration Runtime z słabymi połączeniami sieciowymi, które powodują przekroczenie limitu czasu operacji lub problemy z wydajnością. Można jawnie określić rozmiar bloku, zapewniając jednocześnie, że blockSizeInMB*50000 jest wystarczająco duży, aby przechowywać dane. W przeciwnym razie uruchomienie działanie Kopiuj zakończy się niepowodzeniem.
Nie.
maxConcurrentConnections Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas uruchamiania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. Nie.
metadane Ustaw metadane niestandardowe podczas kopiowania do ujścia. Każdy obiekt w tablicy metadata reprezentuje dodatkową kolumnę. Element name definiuje nazwę klucza metadanych i value wskazuje wartość danych tego klucza. Jeśli jest używana funkcja zachowania atrybutów, określone metadane będą union/overwrite z metadanymi pliku źródłowego.

Dozwolone wartości danych to:
- $$LASTMODIFIED: zmienna zarezerwowana wskazuje czas ostatniej modyfikacji plików źródłowych. Zastosuj do źródła opartego na plikach tylko z formatem binarnym.
-Wyrażenie
- Wartość statyczna
Nie.

Przykład:

"activities":[
    {
        "name": "CopyFromBlob",
        "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": "AzureBlobStorageWriteSettings",
                    "copyBehavior": "PreserveHierarchy",
                    "metadata": [
                        {
                            "name": "testKey1",
                            "value": "value1"
                        },
                        {
                            "name": "testKey2",
                            "value": "value2"
                        },
                        {
                            "name": "lastModifiedKey",
                            "value": "$$LASTMODIFIED"
                        }
                    ]
                }
            }
        }
    }
]

Przykłady filtrów folderów i plików

W tej sekcji opisano wynikowe zachowanie ścieżki folderu i nazwy pliku z filtrami wieloznacznymi.

folderPath fileName Cykliczne Struktura folderu źródłowego i wynik filtru (pobierane są pliki pogrubione )
container/Folder* (puste, użyj wartości domyślnej) fałsz kontener
    FolderA
        File1.csv
        File2.json
        Podfolder1
            File3.csv
            File4.json
            File5.csv
    InnyfolderB
        File6.csv
container/Folder* (puste, użyj wartości domyślnej) prawda kontener
    FolderA
        File1.csv
        File2.json
        Podfolder1
            File3.csv
            File4.json
            File5.csv
    InnyfolderB
        File6.csv
container/Folder* *.csv fałsz kontener
    FolderA
        File1.csv
        File2.json
        Podfolder1
            File3.csv
            File4.json
            File5.csv
    InnyfolderB
        File6.csv
container/Folder* *.csv prawda kontener
    FolderA
        File1.csv
        File2.json
        Podfolder1
            File3.csv
            File4.json
            File5.csv
    InnyfolderB
        File6.csv

Przykłady listy plików

W tej sekcji opisano wynikowe zachowanie używania ścieżki listy plików w źródle działanie Kopiuj.

Załóżmy, że masz następującą strukturę folderu źródłowego i chcesz skopiować pliki pogrubioną:

Przykładowa struktura źródła Zawartość w FileListToCopy.txt Konfigurowanie
kontener
    FolderA
        File1.csv
        File2.json
        Podfolder1
            File3.csv
            File4.json
            File5.csv
    Metadane
        FileListToCopy.txt
File1.csv
Podfolder1/File3.csv
Podfolder1/File5.csv
W zestawie danych:
-Kontener: container
- Ścieżka folderu: FolderA

W działanie Kopiuj źródle:
- Ścieżka listy plików: container/Metadata/FileListToCopy.txt

Ścieżka listy plików wskazuje plik tekstowy w tym samym magazynie danych zawierającym listę plików, które chcesz skopiować. Zawiera jeden plik na wiersz z ścieżką względną do ścieżki skonfigurowanej w zestawie danych.

Niektóre przykłady rekursywne i copyBehavior

W tej sekcji opisano wynikowe zachowanie operacji kopiowania dla różnych kombinacji wartości cyklicznych i copyBehavior .

Cykliczne copyBehavior Struktura folderu źródłowego Wynikowy element docelowy
prawda preserveHierarchy Folder1
    Plik1
    Plik2
    Podfolder1
        Plik3
        Plik4
        Plik5
Folder docelowy Folder1 jest tworzony z taką samą strukturą jak źródło:

Folder1
    Plik1
    Plik2
    Podfolder1
        Plik3
        Plik4
        Plik5
prawda flattenHierarchy Folder1
    Plik1
    Plik2
    Podfolder1
        Plik3
        Plik4
        Plik5
Folder docelowy Folder1 jest tworzony z następującą strukturą:

Folder1
    automatycznie wygenerowana nazwa pliku File1
    automatycznie wygenerowana nazwa dla pliku File2
    automatycznie wygenerowana nazwa dla pliku File3
    automatycznie wygenerowana nazwa dla pliku File4
    automatycznie wygenerowana nazwa dla pliku File5
prawda mergeFiles Folder1
    Plik1
    Plik2
    Podfolder1
        Plik3
        Plik4
        Plik5
Folder docelowy Folder1 jest tworzony z następującą strukturą:

Folder1
    Plik1 + Plik2 + Plik3 + Plik4 + Zawartość pliku5 są scalane w jeden plik z automatycznie wygenerowaną nazwą pliku.
fałsz preserveHierarchy Folder1
    Plik1
    Plik2
    Podfolder1
        Plik3
        Plik4
        Plik5
Folder docelowy Folder1 jest tworzony z następującą strukturą:

Folder1
    Plik1
    Plik2

Podfolder1 z plikiem File3, File4 i File5 nie jest pobierany.
fałsz flattenHierarchy Folder1
    Plik1
    Plik2
    Podfolder1
        Plik3
        Plik4
        Plik5
Folder docelowy Folder1 jest tworzony z następującą strukturą:

Folder1
    automatycznie wygenerowana nazwa pliku File1
    automatycznie wygenerowana nazwa dla pliku File2

Podfolder1 z plikiem File3, File4 i File5 nie jest pobierany.
fałsz mergeFiles Folder1
    Plik1
    Plik2
    Podfolder1
        Plik3
        Plik4
        Plik5
Folder docelowy Folder1 jest tworzony z następującą strukturą:

Folder1
    Zawartość file1 + File2 jest scalona z jednym plikiem z automatycznie wygenerowaną nazwą pliku. automatycznie wygenerowana nazwa pliku File1

Podfolder1 z plikiem File3, File4 i File5 nie jest pobierany.

Zachowywanie metadanych podczas kopiowania

Podczas kopiowania plików z usług Amazon S3, Azure Blob Storage lub Azure Data Lake Storage Gen2 do usługi Azure Data Lake Storage Gen2 lub Azure Blob Storage można zachować metadane plików wraz z danymi. Dowiedz się więcej na temat zachowywania metadanych.

Właściwości przepływu mapowania danych

Podczas przekształcania danych w przepływach danych mapowania można odczytywać i zapisywać pliki z usługi Azure Blob Storage w następujących formatach:

Ustawienia specyficzne dla formatu znajdują się w dokumentacji dla tego formatu. Aby uzyskać więcej informacji, zobacz Przekształcanie źródła w przepływie mapowania danych i Przekształcanie ujścia w przepływie danych mapowania.

Przekształcanie źródła

W transformacji źródłowej można odczytywać dane z kontenera, folderu lub pojedynczego pliku w usłudze Azure Blob Storage. Użyj karty Opcje źródła, aby zarządzać sposobem odczytywania plików.

Zrzut ekranu przedstawiający kartę Opcje źródła w przekształcaniu źródła przepływu danych mapowania.

Ścieżki z symbolami wieloznacznymi: użycie wzorca z symbolami wieloznacznymi spowoduje, że usługa będzie przechodzić w pętli przez każdy pasujący folder i plik w ramach jednej transformacji źródłowej. Jest to skuteczny sposób przetwarzania wielu plików w ramach jednego przepływu. Dodaj wiele wzorców dopasowania symboli wieloznacznych z znakiem plusa wyświetlanym po umieszczeniu wskaźnika myszy na istniejącym wzorcu wieloznacznymi.

W kontenerze źródłowym wybierz serię plików pasujących do wzorca. W zestawie danych można określić tylko kontener. W związku z tym ścieżka wieloznaczny musi zawierać również ścieżkę folderu z folderu głównego.

Przykłady symboli wieloznacznych:

  • * Reprezentuje dowolny zestaw znaków.

  • ** Reprezentuje zagnieżdżanie katalogów cyklicznych.

  • ? Zamienia jeden znak.

  • [] Pasuje do co najmniej jednego znaku w nawiasach kwadratowych.

  • /data/sales/**/*.csv Pobiera wszystkie pliki .csv w obszarze /data/sales.

  • /data/sales/20??/**/ Pobiera wszystkie pliki w XX wieku.

  • /data/sales/*/*/*.csv Pobiera pliki .csv dwa poziomy w obszarze /data/sales.

  • /data/sales/2004/*/12/[XY]1?.csv Pobiera wszystkie pliki .csv w grudniu 2004 r., począwszy od X lub Y poprzedzonej dwucyfrową liczbą.

Ścieżka główna partycji: jeśli foldery partycjonowane w źródle key=value pliku mają format (na przykład year=2019), możesz przypisać najwyższy poziom drzewa folderów partycji do nazwy kolumny w strumieniu danych przepływu danych.

Najpierw ustaw symbol wieloznaczny, aby zawierał wszystkie ścieżki, które są folderami podzielonymi na partycje oraz plikami liścia, które chcesz odczytać.

Zrzut ekranu przedstawiający ustawienia pliku źródłowego partycji w przekształcaniu źródła przepływu danych mapowania.

Użyj ustawienia Ścieżka główna partycji, aby zdefiniować, jaki jest najwyższy poziom struktury folderów. Podczas wyświetlania zawartości danych za pośrednictwem podglądu danych zobaczysz, że usługa dodaje rozpoznane partycje znalezione na każdym poziomie folderów.

Ścieżka główna partycji

Lista plików: jest to zestaw plików. Utwórz plik tekstowy zawierający listę plików ścieżki względnej do przetworzenia. Wskaż ten plik tekstowy.

Kolumna do przechowywania nazwy pliku: zapisz nazwę pliku źródłowego w kolumnie w danych. Wprowadź tutaj nową nazwę kolumny, aby zapisać ciąg nazwy pliku.

Po zakończeniu: wybierz opcję wykonania niczego z plikiem źródłowym po uruchomieniu przepływu danych, usunięciu pliku źródłowego lub przeniesieniu pliku źródłowego. Ścieżki przenoszenia są względne.

Aby przenieść pliki źródłowe do innej lokalizacji po przetworzeniu, najpierw wybierz pozycję "Przenieś" dla operacji na plikach. Następnie ustaw katalog "from". Jeśli nie używasz żadnych symboli wieloznacznych dla ścieżki, ustawienie "from" będzie tym samym folderem co folder źródłowy.

Jeśli masz ścieżkę źródłową z symbolem wieloznacznymi, składnia jest następująca:

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

Możesz określić wartość "from" jako:

/data/sales

Możesz również określić wartość "do":

/backup/priorSales

W takim przypadku wszystkie pliki, które zostały pozyskane w obszarze /data/sales , są przenoszone do /backup/priorSales.

Uwaga

Operacje na plikach są uruchamiane tylko po uruchomieniu przepływu danych z uruchomienia potoku (przebiegu debugowania lub wykonywania potoku), które używa działania Wykonaj Przepływ danych w potoku. Operacje na plikach nie są uruchamiane w trybie debugowania Przepływ danych.

Filtruj według ostatniej modyfikacji: można filtrować pliki do przetworzenia, określając zakres dat ostatniej modyfikacji. Wszystkie daty/godziny są w formacie UTC.

Włącz przechwytywanie zmian danych: jeśli wartość true, uzyskasz nowe lub zmienione pliki tylko z ostatniego uruchomienia. Początkowe ładowanie pełnych danych migawki będzie zawsze uzyskiwane w pierwszym uruchomieniu, a następnie przechwytywanie nowych lub zmienionych plików tylko w następnych uruchomieniach.

Zrzut ekranu przedstawiający włączanie przechwytywania danych zmian.

Właściwości ujścia

W transformacji ujścia można zapisywać w kontenerze lub folderze w usłudze Azure Blob Storage. Użyj karty Ustawienia, aby zarządzać sposobem zapisywania plików.

Opcje ujścia

Wyczyść folder: określa, czy folder docelowy zostanie wyczyszczone przed zapisem danych.

Opcja nazwy pliku: określa, w jaki sposób pliki docelowe są nazwane w folderze docelowym. Opcje nazwy pliku to:

  • Ustawienie domyślne: Zezwalaj platformie Spark na nadawanie nazw plikom na podstawie wartości domyślnych PART.
  • Wzorzec: wprowadź wzorzec wyliczający pliki wyjściowe na partycję. Na przykład loans[n].csv tworzy elementy loans1.csv, loans2.csvi tak dalej.
  • Na partycję: wprowadź jedną nazwę pliku na partycję.
  • Jako dane w kolumnie: ustaw plik wyjściowy na wartość kolumny. Ścieżka jest względna względem kontenera zestawu danych, a nie folderu docelowego. Jeśli masz ścieżkę folderu w zestawie danych, zostanie ona zastąpiona.
  • Dane wyjściowe do pojedynczego pliku: połącz partycjonowane pliki wyjściowe w jeden nazwany plik. Ścieżka jest względna względem folderu zestawu danych. Należy pamiętać, że operacja scalania może zakończyć się niepowodzeniem na podstawie rozmiaru węzła. Nie zalecamy tej opcji dla dużych zestawów danych.

Cytat wszystkie: określa, czy należy ująć wszystkie wartości w cudzysłów.

Właściwości działania wyszukiwania

Aby dowiedzieć się więcej o właściwościach, sprawdź działanie Wyszukiwania.

Właściwości działania GetMetadata

Aby dowiedzieć się więcej o właściwościach, sprawdź działanie GetMetadata.

Usuń właściwości działania

Aby dowiedzieć się więcej o właściwościach, zobacz Działanie Usuń.

Starsze modele

Uwaga

Następujące modele są nadal obsługiwane w celu zapewnienia zgodności z poprzednimi wersjami. Zalecamy użycie nowego modelu wymienionego wcześniej. Interfejs użytkownika tworzenia został przełączony na generowanie nowego modelu.

Starszy model zestawu danych

Właściwości Opis Wymagania
type Właściwość type zestawu danych musi być ustawiona na AzureBlob. Tak
folderPath Ścieżka do kontenera i folderu w usłudze Blob Storage.

Filtr wieloznaczny jest obsługiwany dla ścieżki, z wyłączeniem nazwy kontenera. Dozwolone symbole wieloznaczne to: * (pasuje do zera lub większej liczby znaków) i ? (pasuje do zera lub pojedynczego znaku). Użyj ^ polecenia , aby uniknąć, jeśli nazwa folderu ma symbol wieloznaczny lub znak ucieczki wewnątrz.

Przykładem jest: myblobcontainer/myblobfolder/. Zobacz więcej przykładów w przykładach filtru folderów i plików.
Tak dla działania Kopiowania lub Wyszukiwania, Nie dla działania GetMetadata
fileName Filtr nazw lub symboli wieloznacznych dla obiektów blob w ramach określonej folderPath wartości. Jeśli nie określisz wartości dla tej właściwości, zestaw danych wskazuje wszystkie obiekty blob w folderze.

W przypadku filtru dozwolone symbole wieloznaczne to: * (pasuje do zera lub większej liczby znaków) i ? (pasuje do zera lub pojedynczego znaku).
- Przykład 1: "fileName": "*.csv"
— Przykład 2: "fileName": "???20180427.txt"
Użyj ^ polecenia , aby uniknąć, jeśli nazwa pliku ma symbol wieloznaczny lub znak ucieczki wewnątrz.

Jeśli fileName nie zostanie określony dla wyjściowego zestawu danych i preserveHierarchy nie zostanie określony w ujściu działania, działanie Kopiuj automatycznie generuje nazwę obiektu blob z następującym wzorcem: "Dane.[ identyfikator GUID przebiegu działania]. [IDENTYFIKATOR GUID, jeśli FlattenHierarchy]. [format, jeśli został skonfigurowany]. [kompresja, jeśli została skonfigurowana]". Na przykład: "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz".

Jeśli kopiujesz ze źródła tabelarycznego przy użyciu nazwy tabeli zamiast zapytania, wzorzec nazwy to [table name].[format].[compression if configured]. Na przykład: "MyTable.csv".
Nie.
modifiedDatetimeStart Pliki są filtrowane na podstawie atrybutu: ostatnia modyfikacja. Pliki zostaną wybrane, jeśli ich czas ostatniej modyfikacji jest większy lub równy modifiedDatetimeStart i mniejszy niż modifiedDatetimeEnd. Czas jest stosowany do strefy czasowej UTC w formacie "2018-12-01T05:00:00Z".

Należy pamiętać, że włączenie tego ustawienia wpływa na ogólną wydajność przenoszenia danych, gdy chcesz filtrować ogromne ilości plików.

Właściwości mogą mieć NULLwartość , co oznacza, że do zestawu danych nie zostanie zastosowany filtr atrybutu pliku. Jeśli modifiedDatetimeStart ma wartość data/godzina, ale modifiedDatetimeEnd ma NULLwartość , zostaną wybrane pliki, których ostatnio zmodyfikowany atrybut jest większy lub równy wartości daty/godziny. Jeśli modifiedDatetimeEnd ma wartość data/godzina, ale modifiedDatetimeStart to NULL, zostaną wybrane pliki, których ostatnio zmodyfikowany atrybut jest mniejszy niż wartość daty/godziny.
Nie.
modifiedDatetimeEnd Pliki są filtrowane na podstawie atrybutu: ostatnia modyfikacja. Pliki zostaną wybrane, jeśli ich czas ostatniej modyfikacji jest większy lub równy modifiedDatetimeStart i mniejszy niż modifiedDatetimeEnd. Czas jest stosowany do strefy czasowej UTC w formacie "2018-12-01T05:00:00Z".

Należy pamiętać, że włączenie tego ustawienia wpływa na ogólną wydajność przenoszenia danych, gdy chcesz filtrować ogromne ilości plików.

Właściwości mogą mieć NULLwartość , co oznacza, że do zestawu danych nie zostanie zastosowany filtr atrybutu pliku. Jeśli modifiedDatetimeStart ma wartość data/godzina, ale modifiedDatetimeEnd ma NULLwartość , zostaną wybrane pliki, których ostatnio zmodyfikowany atrybut jest większy lub równy wartości daty/godziny. Jeśli modifiedDatetimeEnd ma wartość data/godzina, ale modifiedDatetimeStart to NULL, zostaną wybrane pliki, których ostatnio zmodyfikowany atrybut jest mniejszy niż wartość daty/godziny.
Nie.
format Jeśli chcesz skopiować pliki w postaci między magazynami opartymi na plikach (kopiowanie binarne), pomiń sekcję formatowania zarówno w definicjach zestawu danych wejściowych, jak i wyjściowych.

Jeśli chcesz przeanalizować lub wygenerować pliki w określonym formacie, obsługiwane są następujące typy formatów plików: TextFormat, JsonFormat, AvroFormat, OrcFormat i ParquetFormat. Ustaw właściwość type w formacie na jedną z tych wartości. Aby uzyskać więcej informacji, zobacz sekcje Format tekstu, Format JSON, Format Avro, Format Orc i Parquet.
Nie (tylko w scenariuszu kopiowania binarnego)
kompresja Określ typ i poziom kompresji danych. Aby uzyskać więcej informacji, zobacz Obsługiwane formaty plików i koderów kompresji.
Obsługiwane typy to GZip, Deflate, BZip2 i ZipDeflate.
Obsługiwane poziomy są optymalne i najszybsze.
Nie.

Napiwek

Aby skopiować wszystkie obiekty blob w folderze, określ tylko folderPath .
Aby skopiować pojedynczy obiekt blob o podanej nazwie, określ folderPath dla części folderu i fileName jako nazwę pliku.
Aby skopiować podzbiór obiektów blob w folderze, określ folderPath dla części folderu i fileName z filtrem wieloznacznymi.

Przykład:

{
    "name": "AzureBlobDataset",
    "properties": {
        "type": "AzureBlob",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "mycontainer/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"
            }
        }
    }
}

Starszy model źródłowy dla działanie Kopiuj

Właściwości Opis Wymagania
type Właściwość type źródła działanie Kopiuj musi być ustawiona na BlobSourcewartość . Tak
Cykliczne Wskazuje, czy dane są odczytywane rekursywnie z podfolderów, czy tylko z określonego folderu. Gdy recursive jest ustawiona wartość i true ujście jest magazynem opartym na plikach, pusty folder lub podfolder nie jest kopiowany ani tworzony w ujściu.
Dozwolone wartości to true (wartość domyślna) i false.
Nie.
maxConcurrentConnections Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas uruchamiania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. Nie.

Przykład:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Blob input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Starszy model ujścia dla działanie Kopiuj

Właściwości Opis Wymagania
type Właściwość type ujścia działanie Kopiuj musi być ustawiona na BlobSink. Tak
copyBehavior Definiuje zachowanie kopiowania, gdy źródłem są pliki z magazynu danych opartego na plikach.

Dozwolone wartości to:
- PreserveHierarchy (wartość domyślna): Zachowuje hierarchię plików w folderze docelowym. Względna ścieżka pliku źródłowego do folderu źródłowego jest identyczna ze względną ścieżką pliku docelowego do folderu docelowego.
- FlattenHierarchy: Wszystkie pliki z folderu źródłowego znajdują się na pierwszym poziomie folderu docelowego. Pliki docelowe mają automatycznie wygenerowane nazwy.
- MergeFiles: Scala wszystkie pliki z folderu źródłowego do jednego pliku. Jeśli określono nazwę pliku lub obiektu blob, scalona nazwa pliku jest określoną nazwą. W przeciwnym razie jest to automatycznie wygenerowana nazwa pliku.
Nie.
maxConcurrentConnections Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas uruchamiania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. Nie.

Przykład:

"activities":[
    {
        "name": "CopyToBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Blob output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "BlobSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Przechwytywanie danych dotyczących zmian

Usługa Azure Data Factory może pobierać nowe lub zmienione pliki tylko z usługi Azure Blob Storage, włączając **Włącz przechwytywanie zmian danych ** w przekształceniu źródła przepływu danych mapowania. Dzięki tej opcji łącznika można odczytywać tylko nowe lub zaktualizowane pliki i stosować przekształcenia przed załadowaniem przekształconych danych do docelowych zestawów danych. Szczegółowe informacje można znaleźć w artykule Change Data Capture (Przechwytywanie zmian danych).

Aby uzyskać listę magazynów danych obsługiwanych przez działanie Kopiuj jako źródła i ujścia, zobacz Obsługiwane magazyny danych.