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
Kopiuj działanie (źródło/odbiornik) (1) (2) √ Wyklucz konto magazynu w wersji 1
Mapowanie przepływu danych (źródło/ujście) (1) Wyklucz konto magazynowania wersja 1
Działanie Wyszukiwania (1) (2) Wyklucz konto magazynu V1
Działanie GetMetadata (1) (2) ✓ Wyklucz konto magazynu V1
Usuń aktywność 1. 2. √ Wyklucz konto magazynu V1

(1) Środowisko uruchomieniowe Azure Integration (2) Środowisko uruchomieniowe z lokalną obsługą

Dla działania Kopiuj, ten łącznik Blob Storage obsługuje:

  • Kopiowanie obiektów blobowych do i z kont magazynu ogólnego przeznaczenia Azure oraz magazynu gorących/chłodnych obiektów blobowych.
  • Kopiowanie obiektów blob przy użyciu klucza konta, sygnatury dostępu współdzielonego do usługi (SAS), jednostki usługi lub tożsamości zarządzanych na potrzeby uwierzytelniania zasobów platformy Azure.
  • Kopiowanie danych z obiektów danych typu blokowego, uzupełnialnego lub stronicowego oraz kopiowanie danych tylko do obiektów typu blokowego.
  • Kopiowanie obiektów blob w niezmienionej postaci, analizowanie lub generowanie obiektów blob z obsługiwanymi formatami plików i kodekami 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.

    Wybierz łącznik 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 potoków w usługach Data Factory i Synapse, które są specyficzne 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 Zezwól zaufanym usługom Microsoft na dostęp do tego konta magazynu włączonej w zaporze usługi Azure Storage, musisz użyć uwierzytelniania za pomocą 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:

Nieruchomość Opis Wymagane
rodzaj Właściwość type musi być ustawiona na AzureBlobStorage (sugerowane) lub AzureStorage (patrz poniższe 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 konfiguracji interfejsu użytkownika dla 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łasność Opis Wymagany
typ Właściwość type musi być ustawiona 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ą przechowywania dla właściwości connectionString.
Możesz również umieścić klucz konta w usłudze Azure Key Vault i wyciągnąć konfigurację accountKey z ciągu połączenia. Aby uzyskać więcej informacji, zobacz następujące przykłady oraz artykuł 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 usługi połączonej typu AzureStorage, nadal jest wspierana. Zalecamy jednak korzystanie z nowego typu połączonej usługi AzureBlobStorage 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 umożliwia delegowany dostęp do zasobów na koncie magazynu danych. Udostępniona sygnatura dostępu umożliwia przyznanie klientowi ograniczonych uprawnień do obiektów w koncie magazynowym 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ć element zgodny ze ścieżką w identyfikatorze URI SAS.

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

Własność Opis Wymagane
typ Właściwość type musi być ustawiona na AzureBlobStorage (sugerowane) lub na AzureStorage (patrz poniższa uwaga). Tak
sasUri Określ identyfikator URI sygnatury dostępu współdzielonego do zasobów pamięci masowej, 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 usługi typu AzureStorage, nadal jest obsługiwana w stanie obecnym. 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 magazynowych nie wygasa w aktywnym okresie działania 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 uzyskać dostęp do większej lub mniejszej liczby obiektów później lub zaktualizować identyfikator URI sygnatury dostępu współdzielonego, pamiętaj, aby zaktualizować połączoną usługę, korzystając z 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 platformie 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:

    • Identyfikator aplikacji
    • 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 Użyj portalu Azure, aby przypisać rolę platformy Azure do uzyskiwania dostępu do danych obiektów blob i kolejek.

    • Jako źródło w obszarze Kontrola dostępu (IAM) przyznaj co najmniej rolę Czytelnik danych obiektu blob usługi Storage.
    • Jako odbiornik w obszarze Kontrola dostępu (IAM) przyznaj co najmniej rolę Kontrybutora danych Blob usługi Storage.

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

Własność Opis Wymagane
typ 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 za pomocą tożsamości zarządzanej lub jednostki usługi nie jest obsługiwane, gdy rodzaj konta jest pusty lub "Storage". Określ odpowiedni rodzaj konta, wybierz inne uwierzytelnianie lub zaktualizuj konto magazynu do wersji ogólnego przeznaczenia 2.
Nie.
identyfikatorPodmiotuUsługi Określ identyfikator klienta aplikacji. Tak
TypPoświadczeniaPodmiotuUsługowego Typ poświadczeń do użycia do uwierzytelniania podmiotu 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łaj się do tajemnicy przechowywanej 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
najemca 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, w której zarejestrowano aplikację Microsoft Entra.
Dozwolone wartości to AzurePublic, AzureChina, AzureUsGovernment i AzureGermany. Domyślnie używane jest środowisko chmurowe fabryki danych lub potoku usługi Synapse.
Nie.
connectVia Środowisko Integration Runtime używane do 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 miękkie usuwanie, uwierzytelnianie jednostki usługi nie jest obsługiwane w Przepływie danych.
  • Jeśli uzyskujesz dostęp do magazynu obiektów blob za pośrednictwem prywatnego punktu końcowego przy użyciu Przepływu danych, pamiętaj, że gdy autoryzacja jest przeprowadzana za pomocą jednostki usługi, Przepływ danych łączy się z punktem końcowym ADLS Gen2 zamiast do 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, nadanej 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 magazynu Blob i kopiować dane z niego lub do niego. 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. Pobierz informacje o tożsamości zarządzanej przypisanej przez system poprzez skopiowanie wartości identyfikatora obiektu tożsamości zarządzanej przypisanej przez system wygenerowanej razem z twoją fabryką lub obszarem roboczym usługi Synapse.

  2. Przyznaj uprawnienia tożsamości zarządzanej w Azure Blob Storage. Aby uzyskać więcej informacji na temat ról, zobacz Używanie platformy Azure Portal do przypisywania roli Azure w celu uzyskania dostępu do danych obiektów blob i kolejek.

    • Jako źródło, w obszarze Kontrola dostępu (IAM), przyznaj co najmniej rolę Czytelnik danych Blob 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łasność Opis Wymagane
rodzaj 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
rodzaj konta 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 używania usługi połączonej Azure Blob w przepływie danych uwierzytelnianie przy użyciu tożsamości zarządzanej lub jednostki usługi nie jest obsługiwane, gdy typ 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.
connectVia Środowisko Integration Runtime służy do łączenia się 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 zarządzanej tożsamości przypisanej przez użytkownika

Fabrykę danych można przypisać do 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 za pomocą zarządzanej tożsamości przypisanej użytkownikowi, 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 Użyj portalu Azure do przypisania roli Azure w celu uzyskania dostępu do danych obiektów blob i kolejek.

    • 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 więcej tożsamości zarządzanych przez użytkownika do swojej fabryki danych i utwórz poświadczenia dla każdej z nich.

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

Nieruchomość Opis Wymagane
typ 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
rodzaj konta 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 za pomocą tożsamości zarządzanej lub jednostki usługi nie jest obsługiwane, gdy rodzaj konta jest pusty lub "Storage". Określ odpowiedni rodzaj konta, wybierz inną metodę uwierzytelniania lub uaktualnij konto magazynu do ogólnego przeznaczenia w wersji v2.
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 części pośredniej) 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 zarejestrują Twój serwer w Microsoft Entra ID i przypiszą rolę Współautora danych blob storage do Twojego serwera. Usługa Data Factory obsługuje resztę. Jeśli skonfigurujesz Blob storage z użyciem punktu końcowego sieci wirtualnej Azure, musisz również mieć włączoną opcję Zezwalaj zaufanym usługom Microsoft na dostęp do tego konta magazynu w obszarze Zapory i sieci wirtualne konta usługi Azure Storage zgodnie z wymaganiami usługi Azure Synapse.

Uwaga

  • Jeśli konto obiektu blob umożliwia miękkie usuwanie, uwierzytelnianie tożsamości zarządzanej przypisanej przez system/użytkownika nie jest obsługiwane w Data Flow.
  • Jeśli uzyskujesz dostęp do magazynu obiektów blob za pośrednictwem prywatnego punktu końcowego przy użyciu Przepływu danych, pamiętaj, że w przypadku użycia uwierzytelniania zarządzanej tożsamości przypisanej przez system lub użytkownika, łączy się on 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 Azure Data Factory (ADF), aby umożliwić dostęp.

Uwaga

Uwierzytelnianie tożsamości zarządzanej przypisanej przez system/użytkownika jest obsługiwane tylko przez usługę połączeniową typu "AzureBlobStorage", a nie poprzednią usługę połączeniową 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 Wymagane
typ Właściwość type lokalizacji w zestawie danych musi być ustawiona na AzureBlobStorageLocation. Tak
kontener Kontener blobów. 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.
nazwa pliku 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. Ta sekcja zawiera listę właściwości, które obsługują źródło i odbiornik magazynu obiektów blob.

Przechowywanie blobów 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 ramach ustawień storeSettings w źródle kopiowania opartym na formacie:

Własność Opis Wymagane
typ 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 jako *.
OPCJA 2: prefiks obiektu blob
-przedrostek
Prefiks nazwy obiektu blob w obrębie danego kontenera skonfigurowanego w zbiorze danych do filtrowania źródłowych obiektów blob. Obiekty blob, których nazwy zaczynają się od container_in_dataset/this_prefix, zostają zaznaczone. Wykorzystuje filtr po stronie serwera Blob Storage, który zapewnia lepszą wydajność niż filtr z symbolem wieloznacznym.

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ło container/folder/subfolder/file.txt, skonfiguruj prefiks jako folder/sub, a następnie zachowana ścieżka pliku to subfolder/file.txt.
Nie.
OPCJA 3: symbol wieloznaczny
- symbol wieloznacznyFolderPath
Ścieżka folderu zawierająca symbole wieloznaczne w ramach danego kontenera, skonfigurowana 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 w przykładach listy plików.
Nie.
Dodatkowe ustawienia:
rekurencyjny Wskazuje, czy dane są odczytywane rekursywnie z podfolderów, czy tylko z określonego folderu. Należy pamiętać, że gdy rekurencyjne ma wartość true, a miejsce docelowe jest magazynem opartym na plikach, pusty folder lub podfolder nie jest kopiowany ani tworzony w miejscu docelowym.
Dozwolone wartości to true (wartość domyślna) i false.
Ta właściwość nie ma zastosowania podczas konfigurowania elementu fileListPath.
Nie.
usuńPlikiPoZakończeniu Wskazuje, czy pliki binarne zostaną usunięte z magazynu źródłowego po pomyślnym przeniesieniu do magazynu docelowego. Usunięcie pliku jest przeprowadzane dla każdego pliku z osobna. 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.
zmodyfikowanaDataICzasPoczątku 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.
zmodyfikowanaDataCzasKoniec Tak samo jak poprzednia właściwość. Nie.
włączOdkrywaniePartycji 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 filtra folderów z symbolem wieloznacznym, ścieżka główna partycji jest ścieżką podrzędną przed pierwszym symbolem wieloznacznym.
— 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.
maksymalna liczba jednoczesnych połączeń Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas przebiegu zadania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. Nie.

Uwaga

W przypadku formatu tekstowego Parquet/rozdzielanego, typ obiektu BlobSource dla źródła działania Kopiuj, jak wspomniano w następnej sekcji, jest nadal obsługiwany dla zachowania zgodności z poprzednimi wersjami. Sugerujemy korzystanie z nowego modelu aż do przełączenia interfejsu tworzenia na generowanie 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 analizy magazynu dla konta magazynu, nie jest wyświetlany, gdy operacja listowania kontenerów jest wykonywana za pośrednictwem interfejsu użytkownika. Ścieżka pliku musi być podana bezpośrednio dla fabryki danych lub potoku Synapse, aby pobrać pliki 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:

Nieruchomość Opis Wymagane
typ Właściwość type dla storeSettings musi być ustawiona 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: Łączy wszystkie pliki z folderu źródłowego w jeden plik. Jeśli określono nazwę pliku lub obiektu blob, scalona nazwa pliku staje się 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 blobowych. Dowiedz się więcej o blokach 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 przeprowadzenie działania Kopiuj zakończy się niepowodzeniem.
Nie.
maksymalna liczba równoczesnych połączeń 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 zasobnika. Każdy obiekt w tablicy metadata reprezentuje dodatkową kolumnę. Element name definiuje nazwę klucza metadanych i value wskazuje wartość danych tego klucza. Jeśli używana jest funkcja zachowania atrybutów, określone metadane zostaną połączone/nadpisane z metadanymi pliku źródłowego.

Dozwolone wartości danych to:
- $$LASTMODIFIED: zarezerwowana zmienna służy do przechowywania czasu ostatniej modyfikacji plików źródłowych. Zastosuj tylko do źródła opartego na plikach o formacie 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 działanie ścieżki folderu i nazwy pliku z filtrami wieloznacznymi.

folderPath nazwaPliku Rekursywny 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
        Podkatalog1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
container/Folder* (puste, użyj wartości domyślnej) prawda kontener
    Folder A
         File1.csv
         File2.json
        Podkatalog1
             File3.csv
             File4.json
             File5.csv
    AnotherFolderB
        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
        Podkatalog1
             File3.csv
            File4.json
             File5.csv
    InnyFolderB
        File6.csv

Przykłady listy plików

W tej sekcji opisano zachowanie wynikające z użycia ścieżki do listy plików w źródle funkcji Kopiuj.

Załóżmy, że masz tę następującą strukturę folderu źródłowego oraz chcesz skopiować pliki pogrubione.

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

W źródle działania Kopiuj:
- Ś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 zachowania kopiowania

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

Rekurencyjny copyBehavior Struktura folderu źródłowego Cel wynikowy
prawda zachowajHierarchię Folder1
    Plik1
    Plik2
    Podfolder1
        Plik3
        Plik4
        Plik5
Folder docelowy Folder1 jest tworzony z taką samą strukturą jak źródło:

Folder1
    Plik1
    Plik2
    Podkatalog1
        Plik3
        Plik4
        Plik5
prawda spłaszczenie hierarchii Folder1
    Plik1
    Plik2
    Podkatalog1
        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
    Podkatalog1
        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 spłaszczenie hierarchii Folder 1
    Plik1
    Plik2
    Podkatalog1
        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
    Podkatalog1
        Plik3
        Plik4
        Plik5
Folder docelowy Folder1 jest tworzony z następującą strukturą:

Folder1
    Zawartość Plik1 i Plik2 jest połączona w jeden plik z automatycznie nadaną nazwą. 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.

Mapowanie właściwości przepływu 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 mapowania danych.

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ę opcji źródła w źródłowej transformacji przepływu danych.

Ś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 wzorów dopasowania symboli wieloznacznych ze znakiem plusa wyświetlanym po najechaniu na istniejący wzór wieloznaczny.

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, Twoja ścieżka wieloznaczna musi zawierać ścieżkę do folderu począwszy od katalogu głównego.

Przykłady symboli wieloznacznych:

  • * Reprezentuje dowolny zestaw znaków.

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

  • ? Zamienia jeden znak.

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

  • /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 z dwóch poziomów poniżej w /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 key=value w źródle pliku mają format (na przykład year=2019), możesz przypisać górny poziom drzewa folderów partycji do nazwy kolumny w strumieniu 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łceniu źródła przepływu danych mapowania.

Użyj ustawienia Ścieżka główna partycji do zdefiniowania najwyższego poziomu 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, aby nic nie robić z plikiem źródłowym po uruchomieniu przepływu danych, usunąć plik źródłowy lub przenieść plik źródłowy. Ś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 wskaż 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 wieloznacznym, Twoja składnia jest następująca:

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

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

/data/sales

Możesz określić "do" jako:

/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 wtedy, gdy rozpoczniesz przepływ danych z uruchomienia potoku (debugowania lub wykonania), które wykorzystuje działanie Uruchom Przepływ Danych w potoku. Operacje na plikach nie są uruchamiane w trybie debugowania przepływu 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 zawsze będzie odbywać się w pierwszym uruchomieniu, a w kolejnych uruchomieniach będą przechwytywane tylko nowe lub zmienione pliki.

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

Właściwości ujścia

W transformacji typu 'ujście' można zapisywać dane do kontenera lub folderu 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 wyczyszczony zanim dane zostaną zapisane.

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 dla każdej partycji, który wylicza pliki wyjściowe. 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 relatywna do folderu zestawu danych. Należy pamiętać, że operacja scalania może zakończyć się niepowodzeniem ze względu na rozmiar węzła. Nie zalecamy tej opcji dla dużych zestawów danych.

Cytuj wszystkie: Określa, czy należy ująć wszystkie wartości w cudzysłowie.

Właściwości działania wyszukiwania

Aby dowiedzieć się więcej o właściwościach, sprawdź Aktywność wyszukiwania.

Właściwości działania GetMetadata

Aby poznać szczegóły dotyczące właściwości, sprawdź GetMetadata activity.

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

Aby dowiedzieć się więcej o właściwościach, zobacz Delete activity.

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.

Przestarzały model zestawu danych

Nieruchomość Opis Wymagane
typ 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 typu wildcard 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
nazwaPliku Filtr nazwy lub symbolu wieloznacznego dla obiektów blob znajdujących się pod określoną wartością folderPath. Jeśli nie określisz wartości dla tej właściwości, zestaw danych odnosi się do wszystkich obiektów 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 oraz preserveHierarchy nie zostanie określony w ujściu działania, działanie Kopiuj automatycznie generuje nazwę obiektu blob według następującego wzorca: "Dane.[ID GUID przebiegu działania].[GUID, jeśli FlattenHierarchy].[format, jeśli skonfigurowany].[kompresja, jeśli 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.
zmodyfikowanaDataCzasuStartu 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ć wartość NULL, co oznacza, że do zestawu danych nie zostanie zastosowany filtr atrybutów plików. 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.
zmodyfikowanyKoniecDatyCzasu 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ć wartość NULL, 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 stanie, jakim są, 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 dotyczące formatu tekst, JSON, Avro, 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 jako część ścieżki folderu i fileName z filtrem wieloznacznym.

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"
            }
        }
    }
}

Dziedziczny model źródłowy dla aktywności kopiowania

Własność Opis Wymagane
typ Właściwość type źródła operacji Kopiuj musi być ustawiona na BlobSource. Tak
Rekurencyjne Wskazuje, czy dane są odczytywane rekursywnie z podfolderów, czy tylko z określonego folderu. Gdy recursive jest ustawione na true i plikowy magazyn służy jako ujście, pusty folder lub podfolder nie jest kopiowany ani tworzony w tym ujściu.
Dozwolone wartości to true (wartość domyślna) i false.
Nie.
maksLiczbaJednoczesnychPołączeń 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 docelowy dla działania Kopiuj

Właściwości Opis Wymagane
typ Właściwość type ujścia aktywności 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: Łączy wszystkie pliki z folderu źródłowego w jeden plik. 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.
maksymalnaLiczbaRównoczesnychPołączeń Górny limit jednoczesnych połączeń ustanowionych z magazynem danych podczas wykonywania zadania. 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 opcję **Włącz przechwytywanie zmian danych** w transformacji ź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.