Gegevens kopiëren en transformeren in Azure Blob Storage met behulp van Azure Data Factory of Azure Synapse Analytics
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
In dit artikel wordt beschreven hoe u de Copy-activiteit gebruikt in Azure Data Factory- en Azure Synapse-pijplijnen om gegevens van en naar Azure Blob Storage te kopiëren. Ook wordt beschreven hoe u de Gegevensstroom-activiteit gebruikt om gegevens te transformeren in Azure Blob Storage. Lees de inleidingsartikelen van Azure Data Factory en Azure Synapse Analytics voor meer informatie.
Tip
Zie het artikel Gegevens migreren van uw data lake of datawarehouse naar Azure voor meer informatie over een migratiescenario voor een data lake of een datawarehouse.
Ondersteunde mogelijkheden
Deze Azure Blob Storage-connector wordt ondersteund voor de volgende mogelijkheden:
Ondersteunde mogelijkheden | IR | Beheerd privé-eindpunt |
---|---|---|
Copy-activiteit (bron/sink) | (1) (2) | ✓ Opslagaccount V1 uitsluiten |
Toewijzingsgegevensstroom (bron/sink) | (1) | ✓ Opslagaccount V1 uitsluiten |
Activiteit Lookup | (1) (2) | ✓ Opslagaccount V1 uitsluiten |
GetMetadata-activiteit | (1) (2) | ✓ Opslagaccount V1 uitsluiten |
Activiteit verwijderen | (1) (2) | ✓ Opslagaccount V1 uitsluiten |
(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime
Voor de Copy-activiteit ondersteunt deze Blob Storage-connector:
- Blobs kopiëren naar en van azure-opslagaccounts voor algemeen gebruik en dynamische/statische blobopslag.
- Blobs kopiëren met behulp van een accountsleutel, een Shared Access Signature (SAS), een service-principal of beheerde identiteiten voor Azure-resourceverificaties.
- Blobs kopiëren van blok-, toevoeg- of pagina-blobs en gegevens kopiëren naar alleen blok-blobs.
- Blobs kopiëren zoals dat is, of blobs parseren of genereren met ondersteunde bestandsindelingen en compressiecodecs.
- Bestandsmetagegevens behouden tijdens het kopiëren.
Aan de slag
Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST API
- Een Azure Resource Manager-sjabloon
Een gekoppelde Azure Blob Storage-service maken met behulp van de gebruikersinterface
Gebruik de volgende stappen om een gekoppelde Azure Blob Storage-service te maken in de gebruikersinterface van Azure Portal.
Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en selecteer vervolgens Nieuw:
Zoek naar blob en selecteer de Azure Blob Storage-connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
De volgende secties bevatten details over eigenschappen die worden gebruikt voor het definiëren van Data Factory- en Synapse-pijplijnentiteiten die specifiek zijn voor Blob Storage.
Eigenschappen van gekoppelde service
Deze Blob Storage-connector ondersteunt de volgende verificatietypen. Zie de bijbehorende secties voor meer informatie.
- Anonieme verificatie
- Verificatie van accountsleutels
- Shared Access Signature Authentication
- Verificatie van service-principal
- Door het systeem toegewezen beheerde identiteitverificatie
- Door de gebruiker toegewezen beheerde identiteitverificatie
Notitie
- Als u de openbare Azure Integration Runtime wilt gebruiken om verbinding te maken met uw Blob-opslag door gebruik te maken van de optie Vertrouwde Microsoft-services toegang verlenen tot deze optie voor het opslagaccount die is ingeschakeld in de Azure Storage-firewall, moet u verificatie van beheerde identiteiten gebruiken. Zie Azure Storage-firewalls en virtuele netwerken configureren voor meer informatie over de instellingen voor Azure Storage-firewalls.
- Wanneer u de PolyBase- of COPY-instructie gebruikt om gegevens te laden in Azure Synapse Analytics, moet u, als uw bron- of faseringsblobopslag is geconfigureerd met een Azure Virtual Network-eindpunt, beheerde identiteitsverificatie gebruiken zoals vereist voor Azure Synapse. Zie de sectie Verificatie van beheerde identiteiten voor meer configuratievereisten.
Notitie
Azure HDInsight- en Azure Machine Learning-activiteiten ondersteunen alleen verificatie die gebruikmaakt van Azure Blob Storage-accountsleutels.
Anonieme verificatie
De volgende eigenschappen worden ondersteund voor verificatie van opslagaccountsleutels in Azure Data Factory- of Synapse-pijplijnen:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De type eigenschap moet zijn ingesteld op AzureBlobStorage (voorgesteld) of AzureStorage (zie de volgende opmerkingen). |
Ja |
containerUri | Geef de URI van de Azure Blob-container op die anonieme leestoegang heeft ingeschakeld door deze indeling https://<AccountName>.blob.core.windows.net/<ContainerName> te gebruiken en anonieme openbare leestoegang voor containers en blobs configureren |
Ja |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | Nee |
Voorbeeld:
{
"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"
}
}
}
Voorbeelden van gebruikersinterface:
De gebruikersinterface-ervaring is zoals beschreven in de volgende afbeelding. In dit voorbeeld wordt de open Azure-gegevensset als bron gebruikt. Als u de geopende gegevensset wilt ophalen bing_covid-19_data.csv, hoeft u alleen verificatietype te kiezen als Anoniem en container-URI in te vullen methttps://pandemicdatalake.blob.core.windows.net/public
.
Verificatie van accountsleutels
De volgende eigenschappen worden ondersteund voor verificatie van opslagaccountsleutels in Azure Data Factory- of Synapse-pijplijnen:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De type eigenschap moet zijn ingesteld op AzureBlobStorage (voorgesteld) of AzureStorage (zie de volgende opmerkingen). |
Ja |
connectionString | Geef de informatie op die nodig is om verbinding te maken met Storage voor de connectionString eigenschap. U kunt de accountsleutel ook in Azure Key Vault plaatsen en de accountKey configuratie uit de verbindingsreeks halen. Zie de volgende voorbeelden en het artikel Store-referenties in Azure Key Vault voor meer informatie. |
Ja |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | Nr. |
Notitie
Een secundair Blob-service-eindpunt wordt niet ondersteund wanneer u verificatie van accountsleutels gebruikt. U kunt andere verificatietypen gebruiken.
Notitie
Als u het AzureStorage
type gekoppelde service gebruikt, wordt deze nog steeds ondersteund. Maar we raden u aan om het nieuwe AzureBlobStorage
gekoppelde servicetype in de toekomst te gebruiken.
Voorbeeld:
{
"name": "AzureBlobStorageLinkedService",
"properties": {
"type": "AzureBlobStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Voorbeeld: de accountsleutel opslaan in 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"
}
}
}
Shared Access Signature Authentication
Een SAS (een handtekening voor gedeelde toegang) biedt gedelegeerde toegang tot resources in uw opslagaccount. U kunt een handtekening voor gedeelde toegang gebruiken om een client gedurende een opgegeven tijd beperkte machtigingen te verlenen aan objecten in uw opslagaccount.
U hoeft uw accounttoegangssleutels niet te delen. De handtekening voor gedeelde toegang is een URI die in de queryparameters alle informatie omvat die nodig is voor geverifieerde toegang tot een opslagresource. Voor toegang tot opslagbronnen met de handtekening voor gedeelde toegang hoeft de client alleen de handtekening voor gedeelde toegang door te geven aan de juiste constructor of methode.
Zie Handtekeningen voor gedeelde toegang voor meer informatie over handtekeningen voor gedeelde toegang : Inzicht in het shared access signature-model.
Notitie
- De service ondersteunt nu handtekeningen voor gedeelde toegang en handtekeningen voor gedeelde toegang voor accounts. Zie Beperkte toegang verlenen tot Azure Storage-resources met behulp van handtekeningen voor gedeelde toegang voor meer informatie over handtekeningen voor gedeelde toegang.
- In latere gegevenssetconfiguraties is het mappad het absolute pad dat begint vanaf het containerniveau. U moet er een configureren die is afgestemd op het pad in uw SAS-URI.
De volgende eigenschappen worden ondersteund voor het gebruik van shared access Signature-verificatie:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De type eigenschap moet zijn ingesteld op AzureBlobStorage (voorgesteld) of AzureStorage (zie de volgende opmerking). |
Ja |
sasUri | Geef de handtekening-URI voor gedeelde toegang op voor de opslagbronnen, zoals blob of container. Markeer dit veld om SecureString het veilig op te slaan. U kunt het SAS-token ook in Azure Key Vault plaatsen om automatisch draaien te gebruiken en het tokengedeelte te verwijderen. Zie de volgende voorbeelden en sla referenties op in Azure Key Vault voor meer informatie. |
Ja |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | Nr. |
Notitie
Als u het AzureStorage
type gekoppelde service gebruikt, wordt deze nog steeds ondersteund. Maar we raden u aan om het nieuwe AzureBlobStorage
gekoppelde servicetype in de toekomst te gebruiken.
Voorbeeld:
{
"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"
}
}
}
Voorbeeld: de accountsleutel opslaan in 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"
}
}
}
Houd rekening met de volgende punten wanneer u een handtekening-URI voor gedeelde toegang maakt:
- Stel de juiste lees-/schrijfmachtigingen in voor objecten op basis van de manier waarop de gekoppelde service (lezen, schrijven, lezen/schrijven) wordt gebruikt.
- Stel de verlooptijd op de juiste wijze in. Zorg ervoor dat de toegang tot Opslagobjecten niet verloopt binnen de actieve periode van de pijplijn.
- De URI moet worden gemaakt in de juiste container of blob op basis van de behoefte. Met een handtekening-URI voor gedeelde toegang voor een blob heeft de data factory of Synapse-pijplijn toegang tot die specifieke blob. Met een handtekening-URI voor gedeelde toegang naar een Blob Storage-container kan de Data Factory- of Synapse-pijplijn doorlopen via blobs in die container. Als u later toegang wilt geven tot meer of minder objecten of als u de handtekening-URI voor gedeelde toegang wilt bijwerken, moet u de gekoppelde service bijwerken met de nieuwe URI.
Verificatie van service-principal
Zie Toegang tot Azure Storage verifiëren met behulp van Microsoft Entra-id voor algemene informatie over verificatie van de service-principal van Azure Storage.
Voer de volgende stappen uit om service-principalverificatie te gebruiken:
Een toepassing registreren bij het Microsoft-identiteitsplatform. Zie quickstart: Een toepassing registreren bij het Microsoft Identity Platform voor meer informatie. Noteer deze waarden, die u gebruikt om de gekoppelde service te definiëren:
- Toepassings-id
- Toepassingssleutel
- Tenant-id
Verdeel de service-principal de juiste machtiging in Azure Blob Storage. Zie Azure Portal gebruiken om een Azure-rol toe te wijzen voor toegang tot blob- en wachtrijgegevens voor meer informatie over de rollen.
- Als bron verleent u in Toegangsbeheer (IAM) ten minste de rol Opslagblobgegevenslezer .
- Als sink verleent u in Toegangsbeheer (IAM) ten minste de rol Inzender voor opslagblobgegevens.
Deze eigenschappen worden ondersteund voor een gekoppelde Azure Blob Storage-service:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap moet worden ingesteld op AzureBlobStorage. | Ja |
serviceEndpoint | Geef het Azure Blob Storage-service-eindpunt op met het patroon .https://<accountName>.blob.core.windows.net/ |
Ja |
accountKind | Geef het type opslagaccount op. Toegestane waarden zijn: Opslag (algemeen gebruik v1), StorageV2 (algemeen gebruik v2), BlobStorage of BlockBlobStorage. Wanneer u een gekoppelde Azure Blob-service in een gegevensstroom gebruikt, wordt verificatie van beheerde identiteit of service-principal niet ondersteund wanneer het accounttype leeg is of 'Opslag'. Geef het juiste accounttype op, kies een andere verificatie of werk uw opslagaccount bij naar algemeen gebruik v2. |
Nee |
servicePrincipalId | Geef de client-id van de toepassing op. | Ja |
servicePrincipalCredentialType | Het referentietype dat moet worden gebruikt voor verificatie van de service-principal. Toegestane waarden zijn ServicePrincipalKey en ServicePrincipalCert. | Ja |
servicePrincipalCredential | De referenties van de service-principal. Wanneer u ServicePrincipalKey als referentietype gebruikt, geeft u de sleutel van de toepassing op. Markeer dit veld als SecureString om het veilig op te slaan of verwijs naar een geheim dat is opgeslagen in Azure Key Vault. Wanneer u ServicePrincipalCert als referentie gebruikt, verwijst u naar een certificaat in Azure Key Vault en zorgt u ervoor dat het certificaatinhoudstype PKCS #12 is. |
Ja |
AD-tenant | Geef de tenantgegevens (domeinnaam of tenant-id) op waaronder uw toepassing zich bevindt. Haal deze op door de muisaanwijzer boven de rechterbovenhoek van Azure Portal te bewegen. | Ja |
azureCloudType | Geef voor service-principalverificatie het type Azure-cloudomgeving op waarnaar uw Microsoft Entra-toepassing is geregistreerd. Toegestane waarden zijn AzurePublic, AzureChina, AzureUsGovernment en AzureGermany. Standaard wordt de cloudomgeving van de data factory of Synapse-pijplijn gebruikt. |
Nee |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | Nr. |
Notitie
- Als uw blobaccount voorlopig verwijderen inschakelt, wordt verificatie van de service-principal niet ondersteund in Gegevensstroom.
- Als u de blobopslag opent via een privé-eindpunt met behulp van Gegevensstroom, moet u er rekening mee houden wanneer verificatie van de service-principal wordt gebruikt Gegevensstroom verbinding maakt met het ADLS Gen2-eindpunt in plaats van het Blob-eindpunt. Zorg ervoor dat u het bijbehorende privé-eindpunt in uw data factory of Synapse-werkruimte maakt om toegang in te schakelen.
Notitie
Verificatie van de service-principal wordt alleen ondersteund door de gekoppelde service van het type 'AzureBlobStorage', niet de vorige 'AzureStorage'-type gekoppelde service.
Voorbeeld:
{
"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"
}
}
}
Door het systeem toegewezen beheerde identiteitverificatie
Een data factory of Synapse-pijplijn kan worden gekoppeld aan een door het systeem toegewezen beheerde identiteit voor Azure-resources, die die resource vertegenwoordigt voor verificatie bij andere Azure-services. U kunt deze door het systeem toegewezen beheerde identiteit rechtstreeks gebruiken voor Blob Storage-verificatie. Dit is vergelijkbaar met het gebruik van uw eigen service-principal. Hiermee kan deze aangewezen resource gegevens openen en kopiëren van of naar Blob Storage. Zie Beheerde identiteiten voor Azure-resources voor meer informatie over beheerde identiteiten voor Azure-resources
Zie Toegang tot Azure Storage verifiëren met behulp van Microsoft Entra-id voor algemene informatie over Azure Storage-verificatie. Volg deze stappen om beheerde identiteiten te gebruiken voor Azure-resourceverificatie:
Haal door het systeem toegewezen beheerde identiteitsgegevens op door de waarde te kopiëren van de door het systeem toegewezen object-id voor beheerde identiteit die samen met uw factory of Synapse-werkruimte is gegenereerd.
Verdeel de beheerde identiteit in Azure Blob Storage. Zie Azure Portal gebruiken om een Azure-rol toe te wijzen voor toegang tot blob- en wachtrijgegevens voor meer informatie over de rollen.
- Als bron verleent u in Toegangsbeheer (IAM) ten minste de rol Opslagblobgegevenslezer .
- Als sink verleent u in Toegangsbeheer (IAM) ten minste de rol Inzender voor opslagblobgegevens.
Deze eigenschappen worden ondersteund voor een gekoppelde Azure Blob Storage-service:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap moet worden ingesteld op AzureBlobStorage. | Ja |
serviceEndpoint | Geef het Azure Blob Storage-service-eindpunt op met het patroon .https://<accountName>.blob.core.windows.net/ |
Ja |
accountKind | Geef het type opslagaccount op. Toegestane waarden zijn: Opslag (algemeen gebruik v1), StorageV2 (algemeen gebruik v2), BlobStorage of BlockBlobStorage. Wanneer u een gekoppelde Azure Blob-service in een gegevensstroom gebruikt, wordt verificatie van beheerde identiteit of service-principal niet ondersteund wanneer het accounttype leeg is of 'Opslag'. Geef het juiste accounttype op, kies een andere verificatie of werk uw opslagaccount bij naar algemeen gebruik v2. |
Nee |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | Nee |
Voorbeeld:
{
"name": "AzureBlobStorageLinkedService",
"properties": {
"type": "AzureBlobStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
"accountKind": "StorageV2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Door de gebruiker toegewezen beheerde identiteitverificatie
Een data factory kan worden toegewezen met een of meerdere door de gebruiker toegewezen beheerde identiteiten. U kunt deze door de gebruiker toegewezen beheerde identiteit gebruiken voor Blob Storage-verificatie, waarmee u gegevens kunt openen en kopiëren van of naar Blob Storage. Zie Beheerde identiteiten voor Azure-resources voor meer informatie over beheerde identiteiten voor Azure-resources
Zie Toegang tot Azure Storage verifiëren met behulp van Microsoft Entra-id voor algemene informatie over Azure-opslagverificatie. Volg deze stappen om door de gebruiker toegewezen beheerde identiteitverificatie te gebruiken:
Maak een of meerdere door de gebruiker toegewezen beheerde identiteiten en verken machtigingen in Azure Blob Storage. Zie Azure Portal gebruiken om een Azure-rol toe te wijzen voor toegang tot blob- en wachtrijgegevens voor meer informatie over de rollen.
- Als bron verleent u in Toegangsbeheer (IAM) ten minste de rol Opslagblobgegevenslezer .
- Als sink verleent u in Toegangsbeheer (IAM) ten minste de rol Inzender voor opslagblobgegevens.
Wijs een of meerdere door de gebruiker toegewezen beheerde identiteiten toe aan uw data factory en maak referenties voor elke door de gebruiker toegewezen beheerde identiteit.
Deze eigenschappen worden ondersteund voor een gekoppelde Azure Blob Storage-service:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap moet worden ingesteld op AzureBlobStorage. | Ja |
serviceEndpoint | Geef het Azure Blob Storage-service-eindpunt op met het patroon .https://<accountName>.blob.core.windows.net/ |
Ja |
accountKind | Geef het type opslagaccount op. Toegestane waarden zijn: Opslag (algemeen gebruik v1), StorageV2 (algemeen gebruik v2), BlobStorage of BlockBlobStorage. Wanneer u een gekoppelde Azure Blob-service in de gegevensstroom gebruikt, wordt verificatie van beheerde identiteit of service-principal niet ondersteund wanneer het account als leeg of 'Opslag' is bedoeld. Geef het juiste accounttype op, kies een andere verificatie of werk uw opslagaccount bij naar algemeen gebruik v2. |
Nee |
aanmeldingsgegevens | Geef de door de gebruiker toegewezen beheerde identiteit op als referentieobject. | Ja |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | Nee |
Voorbeeld:
{
"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"
}
}
}
Belangrijk
Als u de PolyBase- of COPY-instructie gebruikt om gegevens uit Blob Storage (als bron of als fasering) te laden in Azure Synapse Analytics, moet u bij het gebruik van verificatie van beheerde identiteiten voor Blob Storage ook stap 1 tot en met 3 in deze richtlijnen volgen. Met deze stappen wordt uw server geregistreerd bij Microsoft Entra ID en wordt de rol Inzender voor opslagblobgegevens toegewezen aan uw server. Data Factory verwerkt de rest. Als u Blob Storage configureert met een Azure Virtual Network-eindpunt, moet u ook vertrouwde Microsoft-services toegang hebben tot dit opslagaccount dat is ingeschakeld onder het menu Firewalls van azure Storage-accounts en instellingen voor virtuele netwerken, zoals vereist door Azure Synapse.
Notitie
- Als uw blobaccount voorlopig verwijderen inschakelt, wordt door het systeem toegewezen/door de gebruiker toegewezen beheerde identiteitverificatie niet ondersteund in Gegevensstroom.
- Als u de blobopslag opent via een privé-eindpunt met behulp van Gegevensstroom, moet u er rekening mee houden wanneer door het systeem toegewezen/door de gebruiker toegewezen beheerde identiteitverificatie wordt gebruikt Gegevensstroom verbinding maakt met het ADLS Gen2-eindpunt in plaats van het Blob-eindpunt. Zorg ervoor dat u het bijbehorende privé-eindpunt in ADF maakt om toegang in te schakelen.
Notitie
Door het systeem toegewezen/door de gebruiker toegewezen beheerde identiteitverificatie wordt alleen ondersteund door de gekoppelde service 'AzureBlobStorage', niet de vorige 'AzureStorage'-type gekoppelde service.
Eigenschappen van gegevensset
Zie het artikel Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets .
Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.
- Avro-indeling
- Binaire indeling
- Tekstindeling met scheidingstekens
- Excel-indeling
- JSON-indeling
- ORC-indeling
- Parquet-indeling
- XML-indeling
De volgende eigenschappen worden ondersteund voor Azure Blob Storage onder location
instellingen in een op indeling gebaseerde gegevensset:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de locatie in de gegevensset moet worden ingesteld op AzureBlobStorageLocation. | Ja |
container | De blobcontainer. | Ja |
folderPath | Het pad naar de map onder de opgegeven container. Als u een jokerteken wilt gebruiken om de map te filteren, slaat u deze instelling over en geeft u dat op in de instellingen van de activiteitsbron. | Nee |
fileName | De bestandsnaam onder het opgegeven container- en mappad. Als u jokertekens wilt gebruiken om bestanden te filteren, slaat u deze instelling over en geeft u deze op in de instellingen van de activiteitsbron. | Nee |
Voorbeeld:
{
"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"
}
}
}
Eigenschappen van de kopieeractiviteit
Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die door de blobopslagbron en sink worden ondersteund.
Blob Storage als brontype
Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.
- Avro-indeling
- Binaire indeling
- Tekstindeling met scheidingstekens
- Excel-indeling
- JSON-indeling
- ORC-indeling
- Parquet-indeling
- XML-indeling
De volgende eigenschappen worden ondersteund voor Azure Blob Storage onder storeSettings
instellingen in een op indeling gebaseerde kopieerbron:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De eigenschap type onder storeSettings moet worden ingesteld op AzureBlobStorageReadSettings. |
Ja |
Zoek de bestanden die u wilt kopiëren: | ||
OPTIE 1: statisch pad |
Kopieer vanuit de opgegeven container of map/bestandspad dat is opgegeven in de gegevensset. Als u alle blobs uit een container of map wilt kopiëren, moet u ook opgeven wildcardFileName als * . |
|
OPTIE 2: blobvoorvoegsel -voorvoegsel |
Voorvoegsel voor de blobnaam onder de opgegeven container die is geconfigureerd in een gegevensset om bron-blobs te filteren. Blobs waarvan de namen beginnen met container_in_dataset/this_prefix zijn geselecteerd. Het maakt gebruik van het filter aan de servicezijde voor Blob Storage, wat betere prestaties biedt dan een jokertekenfilter.Wanneer u voorvoegsel gebruikt en ervoor kiest om te kopiëren naar een op bestanden gebaseerde sink met behoud van de hiërarchie, moet u zien dat het subpad na het laatste '/'-voorvoegsel behouden blijft. U hebt bijvoorbeeld bron container/folder/subfolder/file.txt en configureer het voorvoegsel als folder/sub , dan is subfolder/file.txt het behouden bestandspad . |
Nee |
OPTIE 3: jokerteken - jokertekenFolderPath |
Het pad naar de map met jokertekens onder de opgegeven container die is geconfigureerd in een gegevensset om bronmappen te filteren. Toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken). Gebruik ^ deze optie om te escapen als uw mapnaam jokerteken of dit escape-teken bevat. Bekijk meer voorbeelden in voorbeelden van mappen en bestandsfilters. |
Nee |
OPTIE 3: jokerteken - wildcardFileName |
De bestandsnaam met jokertekens onder het opgegeven container- en mappad (of pad naar een jokerteken) om bronbestanden te filteren. Toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken). Gebruik ^ deze optie om te escapen als uw bestandsnaam een jokerteken of dit escape-teken bevat. Bekijk meer voorbeelden in voorbeelden van mappen en bestandsfilters. |
Ja |
OPTIE 4: een lijst met bestanden - fileListPath |
Geeft aan om een bepaalde bestandsset te kopiëren. Wijs een tekstbestand aan met een lijst met bestanden die u wilt kopiëren, één bestand per regel. Dit is het relatieve pad naar het pad dat is geconfigureerd in de gegevensset. Wanneer u deze optie gebruikt, geeft u geen bestandsnaam op in de gegevensset. Bekijk meer voorbeelden in voorbeelden van de lijst met bestanden. |
Nee |
Aanvullende instellingen: | ||
recursief | Hiermee wordt aangegeven of de gegevens recursief worden gelezen uit de submappen of alleen uit de opgegeven map. Houd er rekening mee dat wanneer recursief is ingesteld op true en de sink een archief op basis van bestanden is, een lege map of submap niet wordt gekopieerd of gemaakt in de sink. Toegestane waarden zijn waar (standaard) en onwaar. Deze eigenschap is niet van toepassing wanneer u configureert fileListPath . |
Nee |
deleteFilesAfterCompletion | Geeft aan of de binaire bestanden worden verwijderd uit het bronarchief nadat ze naar het doelarchief zijn verplaatst. Het verwijderen van bestanden is per bestand. Wanneer de kopieeractiviteit mislukt, ziet u daarom dat sommige bestanden al naar het doel zijn gekopieerd en uit de bron zijn verwijderd, terwijl andere nog steeds in het bronarchief staan. Deze eigenschap is alleen geldig in het scenario voor het kopiëren van binaire bestanden. De standaardwaarde: false. |
Nee |
modifiedDatetimeStart | Bestanden worden gefilterd op basis van het kenmerk: laatst gewijzigd. De bestanden worden geselecteerd als de laatste wijzigingstijd groter is dan of gelijk is aan modifiedDatetimeStart en kleiner is dan modifiedDatetimeEnd . De tijd wordt toegepast op een UTC-tijdzone in de notatie 2018-12-01T05:00:00Z. De eigenschappen kunnen NULL zijn, wat betekent dat er geen bestandskenmerkfilter wordt toegepast op de gegevensset. Wanneer modifiedDatetimeStart een datum/tijd-waarde heeft maar modifiedDatetimeEnd NULL is, worden de bestanden waarvan het kenmerk voor het laatst gewijzigd is groter dan of gelijk aan de datum/tijd-waarde geselecteerd. Wanneer modifiedDatetimeEnd een datum/tijd-waarde heeft maar modifiedDatetimeStart NULL is, worden de bestanden waarvan het kenmerk voor het laatst gewijzigd is kleiner dan de datum/tijd-waarde geselecteerd.Deze eigenschap is niet van toepassing wanneer u configureert fileListPath . |
Nee |
modifiedDatetimeEnd | Hetzelfde als de vorige eigenschap. | Nee |
enablePartitionDiscovery | Geef voor bestanden die zijn gepartitioneerd op of de partities van het bestandspad moeten worden geparseerd en als extra bronkolommen moeten worden toegevoegd. Toegestane waarden zijn onwaar (standaard) en waar. |
Nee |
partitionRootPath | Wanneer partitiedetectie is ingeschakeld, geeft u het absolute hoofdpad op om gepartitioneerde mappen als gegevenskolommen te lezen. Als deze niet is opgegeven, is dit standaard - Wanneer u bestandspad gebruikt in de gegevensset of lijst met bestanden op de bron, is het pad naar de partitiehoofdmap dat is geconfigureerd in de gegevensset. - Wanneer u het filter voor jokertekens gebruikt, is partitiehoofdpad het subpad vóór het eerste jokerteken. - Wanneer u voorvoegsel gebruikt, is het hoofdpad van de partitie vóór het laatste '/'. Stel dat u het pad in de gegevensset configureert als 'root/folder/year=2020/month=08/day=27': - Als u partitiehoofdpad opgeeft als root/folder/year=2020, genereert de kopieeractiviteit twee kolommen month en day met de waarde '08' en '27', naast de kolommen in de bestanden.- Als het pad naar de partitiehoofdmap niet is opgegeven, wordt er geen extra kolom gegenereerd. |
Nee |
maxConcurrentConnections | De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken. | Nr. |
Notitie
Voor parquet-/gescheiden tekstindeling wordt het BlobSource-type voor de Copy-activiteit bron die in de volgende sectie wordt genoemd, nog steeds ondersteund, net als voor compatibiliteit met eerdere versies. U wordt aangeraden het nieuwe model te gebruiken totdat de ontwerpgebruikersinterface is overgeschakeld naar het genereren van deze nieuwe typen.
Voorbeeld:
"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>"
}
}
}
]
Notitie
De $logs
container, die automatisch wordt gemaakt wanneer Opslaganalyse is ingeschakeld voor een opslagaccount, wordt niet weergegeven wanneer een containervermeldingsbewerking wordt uitgevoerd via de gebruikersinterface. Het bestandspad moet rechtstreeks worden opgegeven voor uw data factory of Synapse-pijplijn om bestanden uit de $logs
container te kunnen gebruiken.
Blob-opslag als sinktype
Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.
- Avro-indeling
- Binaire indeling
- Tekstindeling met scheidingstekens
- JSON-indeling
- ORC-indeling
- Parquet-indeling
De volgende eigenschappen worden ondersteund voor Azure Blob Storage onder storeSettings
instellingen in een op indeling gebaseerde kopiesink:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De type eigenschap onder storeSettings moet worden ingesteld op AzureBlobStorageWriteSettings . |
Ja |
copyBehavior | Definieert het kopieergedrag wanneer de bron bestanden is uit een gegevensarchief op basis van bestanden. Toegestane waarden zijn: - PreserveHierarchy (standaard): behoudt de bestandshiërarchie in de doelmap. Het relatieve pad van het bronbestand naar de bronmap is identiek aan het relatieve pad van het doelbestand naar de doelmap. - FlattenHierarchy: Alle bestanden uit de bronmap bevinden zich op het eerste niveau van de doelmap. De doelbestanden hebben automatisch gegenereerde namen. - MergeFiles: hiermee worden alle bestanden uit de bronmap samengevoegd tot één bestand. Als de naam van het bestand of de blob is opgegeven, is de naam van het samengevoegde bestand de opgegeven naam. Anders is het een automatisch gegenereerde bestandsnaam. |
Nee |
blockSizeInMB | Geef de blokgrootte in megabytes op die wordt gebruikt voor het schrijven van gegevens naar blok-blobs. Meer informatie over blok-blobs. De toegestane waarde ligt tussen 4 MB en 100 MB. Standaard bepaalt de service automatisch de blokgrootte op basis van het type bronarchief en de gegevens. Voor niet-binaire kopie in Blob Storage is de standaardblokgrootte 100 MB, zodat deze maximaal 4,95 TB aan gegevens kan bevatten. Het is mogelijk niet optimaal wanneer uw gegevens niet groot zijn, met name wanneer u de zelf-hostende Integration Runtime gebruikt met slechte netwerkverbindingen die leiden tot time-out van bewerkingen of prestatieproblemen. U kunt expliciet een blokgrootte opgeven, terwijl u ervoor zorgt dat deze blockSizeInMB*50000 groot genoeg is om de gegevens op te slaan. Anders mislukt de Copy-activiteit uitvoering. |
Nee |
maxConcurrentConnections | De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken. | Nee |
metagegevens | Stel aangepaste metagegevens in wanneer u kopieert naar sink. Elk object onder de metadata matrix vertegenwoordigt een extra kolom. De name naam van de metagegevenssleutel wordt gedefinieerd en de value gegevenswaarde van die sleutel wordt aangegeven. Als de kenmerkfunctie behouden wordt gebruikt, worden de opgegeven metagegevens samengevoegd/overschreven met de metagegevens van het bronbestand.Toegestane gegevenswaarden zijn: - $$LASTMODIFIED : een gereserveerde variabele geeft aan dat de laatste wijzigingstijd van de bronbestanden moet worden opgeslagen. Alleen van toepassing op een bron op basis van bestanden met binaire indeling.-Uitdrukking - Statische waarde |
Nee |
Voorbeeld:
"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"
}
]
}
}
}
}
]
Voorbeelden van map- en bestandsfilters
In deze sectie wordt het resulterende gedrag van het mappad en de bestandsnaam met jokertekenfilters beschreven.
folderPath | fileName | recursief | Structuur van bronmap en filterresultaat (bestanden vetgedrukt worden opgehaald) |
---|---|---|---|
container/Folder* |
(leeg, standaard gebruiken) | false | container MapA File1.csv File2.json Submap1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
container/Folder* |
(leeg, standaard gebruiken) | true | container MapA File1.csv File2.json Submap1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
container/Folder* |
*.csv |
false | container MapA File1.csv File2.json Submap1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
container/Folder* |
*.csv |
true | container MapA File1.csv File2.json Submap1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Voorbeelden van bestandslijsten
In deze sectie wordt het resulterende gedrag beschreven van het gebruik van een bestandslijstpad in de Copy-activiteit bron.
Stel dat u de volgende bronmapstructuur hebt en de bestanden vetgedrukt wilt kopiëren:
Voorbeeldbronstructuur | Inhoud in FileListToCopy.txt | Configuratie |
---|---|---|
container MapA File1.csv File2.json Submap1 File3.csv File4.json File5.csv Metagegevens FileListToCopy.txt |
File1.csv Submap1/File3.csv Submap1/File5.csv |
In gegevensset: -Container: container - Mappad: FolderA In Copy-activiteit bron: - Pad naar bestandslijst: container/Metadata/FileListToCopy.txt Het bestandslijstpad verwijst naar een tekstbestand in hetzelfde gegevensarchief met een lijst met bestanden die u wilt kopiëren. Het bevat één bestand per regel, met het relatieve pad naar het pad dat is geconfigureerd in de gegevensset. |
Enkele recursieve en copyBehavior-voorbeelden
In deze sectie wordt het resulterende gedrag van de kopieerbewerking beschreven voor verschillende combinaties van recursieve en copyBehavior-waarden .
recursief | copyBehavior | Structuur van bronmap | Resulterend doel |
---|---|---|---|
true | preserveHierarchy | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 Bestand5 |
De doelmap Map1 wordt gemaakt met dezelfde structuur als de bron: Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 Bestand5 |
true | flattenHierarchy | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 Bestand5 |
De doelmap Map1 wordt gemaakt met de volgende structuur: Map1 automatisch gegenereerde naam voor Bestand1 automatisch gegenereerde naam voor File2 automatisch gegenereerde naam voor File3 automatisch gegenereerde naam voor File4 automatisch gegenereerde naam voor File5 |
true | mergeFiles | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 Bestand5 |
De doelmap Map1 wordt gemaakt met de volgende structuur: Map1 File1 + File2 + File3 + File4 + File5-inhoud worden samengevoegd in één bestand met een automatisch gegenereerde bestandsnaam. |
false | preserveHierarchy | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 Bestand5 |
De doelmap Map1 wordt gemaakt met de volgende structuur: Map1 Bestand1 Bestand2 Submap1 met File3, File4 en File5 wordt niet opgehaald. |
false | flattenHierarchy | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 Bestand5 |
De doelmap Map1 wordt gemaakt met de volgende structuur: Map1 automatisch gegenereerde naam voor Bestand1 automatisch gegenereerde naam voor File2 Submap1 met File3, File4 en File5 wordt niet opgehaald. |
false | mergeFiles | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 Bestand5 |
De doelmap Map1 wordt gemaakt met de volgende structuur: Map1 De inhoud van Bestand1 + File2 wordt samengevoegd in één bestand met een automatisch gegenereerde bestandsnaam. automatisch gegenereerde naam voor Bestand1 Submap1 met File3, File4 en File5 wordt niet opgehaald. |
Metagegevens behouden tijdens het kopiëren
Wanneer u bestanden kopieert van Amazon S3, Azure Blob Storage of Azure Data Lake Storage Gen2 naar Azure Data Lake Storage Gen2 of Azure Blob Storage, kunt u ervoor kiezen om de metagegevens van bestanden samen met gegevens te behouden. Meer informatie over metagegevens behouden.
Eigenschappen van toewijzingsgegevensstroom
Wanneer u gegevens transformeert in toewijzingsgegevensstromen, kunt u bestanden uit Azure Blob Storage lezen en schrijven in de volgende indelingen:
Indelingsspecifieke instellingen bevinden zich in de documentatie voor die indeling. Zie Brontransformatie in toewijzingsgegevensstroom en Sink-transformatie in toewijzingsgegevensstroom voor meer informatie.
Brontransformatie
In de brontransformatie kunt u lezen uit een container, map of afzonderlijk bestand in Azure Blob Storage. Gebruik het tabblad Bronopties om te beheren hoe de bestanden worden gelezen.
Jokertekenpaden: Met behulp van een jokertekenpatroon wordt de service geïnstrueerd om elke overeenkomende map en elk bestand in één brontransformatie te doorlopen. Dit is een effectieve manier om meerdere bestanden binnen één stroom te verwerken. Voeg meerdere jokertekenpatronen toe met het plusteken dat wordt weergegeven wanneer u de muisaanwijzer boven het bestaande jokertekenpatroon beweegt.
Kies in uw broncontainer een reeks bestanden die overeenkomen met een patroon. Alleen een container kan worden opgegeven in de gegevensset. Uw jokertekenpad moet daarom ook uw mappad uit de hoofdmap bevatten.
Voorbeelden van jokertekens:
*
Vertegenwoordigt een set tekens.**
Vertegenwoordigt recursieve map genest.?
Hiermee vervangt u één teken.[]
Komt overeen met een of meer tekens tussen de haken./data/sales/**/*.csv
Hiermee worden alle .csv bestanden opgehaald onder /data/sales./data/sales/20??/**/
Haalt alle bestanden in de 20e eeuw op./data/sales/*/*/*.csv
Hiermee worden .csv bestanden twee niveaus onder /data/sales opgehaald./data/sales/2004/*/12/[XY]1?.csv
Hiermee worden alle .csv bestanden opgehaald in december 2004, beginnend met X of Y, voorafgegaan door een getal van twee cijfers.
Hoofdpad partitie: Als u gepartitioneerde mappen in uw bestandsbron hebt met een key=value
indeling (bijvoorbeeld year=2019
), kunt u het hoogste niveau van die partitiemapstructuur toewijzen aan een kolomnaam in de gegevensstroom van uw gegevensstroom.
Stel eerst een jokerteken in om alle paden op te nemen die de gepartitioneerde mappen zijn plus de leaf-bestanden die u wilt lezen.
Gebruik de instelling Partitiehoofdpad om te definiëren wat het hoogste niveau van de mapstructuur is. Wanneer u de inhoud van uw gegevens bekijkt via een voorbeeld van gegevens, ziet u dat de service de opgeloste partities toevoegt die in elk van uw mapniveaus zijn gevonden.
Lijst met bestanden: dit is een bestandsset. Maak een tekstbestand met een lijst met relatieve padbestanden die moeten worden verwerkt. Wijs dit tekstbestand aan.
Kolom voor het opslaan van bestandsnaam: Sla de naam van het bronbestand op in een kolom in uw gegevens. Voer hier een nieuwe kolomnaam in om de bestandsnaamtekenreeks op te slaan.
Na voltooiing: Kies ervoor om niets te doen met het bronbestand nadat de gegevensstroom is uitgevoerd, verwijder het bronbestand of verplaats het bronbestand. De paden voor de verplaatsing zijn relatief.
Als u bronbestanden wilt verplaatsen naar een andere locatie na verwerking, selecteert u eerst Verplaatsen voor bestandsbewerking. Stel vervolgens de map 'from' in. Als u geen jokertekens voor uw pad gebruikt, is de instelling 'van' dezelfde map als uw bronmap.
Als u een bronpad met jokertekens hebt, is uw syntaxis als volgt:
/data/sales/20??/**/*.csv
U kunt 'van' opgeven als:
/data/sales
En u kunt 'aan' opgeven als:
/backup/priorSales
In dit geval worden alle bestanden die zijn opgehaald, /data/sales
verplaatst naar /backup/priorSales
.
Notitie
Bestandsbewerkingen worden alleen uitgevoerd wanneer u de gegevensstroom start vanuit een pijplijnuitvoering (een pijplijnopsporing of uitvoeringsuitvoering) die gebruikmaakt van de uitvoering Gegevensstroom-activiteit uitvoeren in een pijplijn. Bestandsbewerkingen worden niet uitgevoerd in Gegevensstroom foutopsporingsmodus.
Filteren op laatst gewijzigd: u kunt de bestanden filteren die moeten worden verwerkt door een datumbereik op te geven van wanneer ze voor het laatst zijn gewijzigd. Alle datum/tijd-datums zijn in UTC.
Wijzigingsgegevens vastleggen inschakelen: indien waar, krijgt u alleen nieuwe of gewijzigde bestanden van de laatste uitvoering. De eerste belasting van volledige momentopnamegegevens wordt altijd in de eerste uitvoering opgehaald, gevolgd door het vastleggen van nieuwe of gewijzigde bestanden alleen in de volgende uitvoeringen.
Sink-eigenschappen
In de sinktransformatie kunt u schrijven naar een container of een map in Azure Blob Storage. Gebruik het tabblad Instellingen om te beheren hoe de bestanden worden geschreven.
De map wissen: bepaalt of de doelmap al dan niet wordt gewist voordat de gegevens worden geschreven.
Optie Bestandsnaam: bepaalt hoe de doelbestanden worden genoemd in de doelmap. De bestandsnaamopties zijn:
- Standaard: Toestaan dat Spark bestanden een naam geeft op basis van de standaardinstellingen van PART.
- Patroon: Voer een patroon in waarmee uw uitvoerbestanden per partitie worden opgesomd. Hiermee maakt
loans1.csv
u bijvoorbeeldloans[n].csv
,loans2.csv
enzovoort. - Per partitie: Voer één bestandsnaam per partitie in.
- Als gegevens in kolom: Stel het uitvoerbestand in op de waarde van een kolom. Het pad is relatief ten opzichte van de container van de gegevensset, niet de doelmap. Als u een mappad in uw gegevensset hebt, wordt dit overschreven.
- Uitvoer naar één bestand: combineer de gepartitioneerde uitvoerbestanden in één benoemd bestand. Het pad is relatief ten opzichte van de map gegevensset. Houd er rekening mee dat de samenvoegbewerking mogelijk mislukt op basis van de knooppuntgrootte. Deze optie wordt niet aanbevolen voor grote gegevenssets.
Alles aanhalingstekens: bepaalt of alle waarden tussen aanhalingstekens moeten worden geplaatst.
Eigenschappen van opzoekactiviteit
Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.
Eigenschappen van GetMetadata-activiteit
Raadpleeg de activiteit GetMetadata voor meer informatie over de eigenschappen.
Activiteitseigenschappen verwijderen
Als u meer wilt weten over de eigenschappen, schakelt u De activiteit Verwijderen in.
Verouderde modellen
Notitie
De volgende modellen worden nog steeds ondersteund, net als voor achterwaartse compatibiliteit. U wordt aangeraden het eerder genoemde nieuwe model te gebruiken. De ontwerpgebruikersinterface is overgeschakeld naar het genereren van het nieuwe model.
Verouderd gegevenssetmodel
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De type eigenschap van de gegevensset moet worden ingesteld op AzureBlob . |
Ja |
folderPath | Pad naar de container en map in Blob Storage. Een jokertekenfilter wordt ondersteund voor het pad, met uitzondering van containernaam. Toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken). Gebruik ^ deze optie om te escapen als uw mapnaam een jokerteken of dit escape-teken bevat. Een voorbeeld is: myblobcontainer/myblobfolder/ . Bekijk meer voorbeelden in voorbeelden van mappen en bestandsfilters. |
Ja voor de activiteit Kopiëren of Opzoeken, Nee voor de GetMetadata-activiteit |
fileName | Naam of jokertekenfilter voor de blobs onder de opgegeven folderPath waarde. Als u geen waarde voor deze eigenschap opgeeft, wijst de gegevensset naar alle blobs in de map. Voor het filter zijn toegestane jokertekens: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken).- Voorbeeld 1: "fileName": "*.csv" - Voorbeeld 2: "fileName": "???20180427.txt" Gebruik ^ deze optie om te escapen als uw bestandsnaam een jokerteken of dit escape-teken bevat.Wanneer fileName niet is opgegeven voor een uitvoergegevensset en preserveHierarchy niet is opgegeven in de activiteitssink, genereert de Copy-activiteit automatisch de naam van de blob met het volgende patroon: 'Data.[ ID-GUID van activiteitsuitvoering]. [GUID als FlattenHierarchy]. [notatie indien geconfigureerd]. [compressie indien geconfigureerd]". Bijvoorbeeld: 'Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz'. Als u kopieert vanuit een tabellaire bron met behulp van een tabelnaam in plaats van een query, is [table name].[format].[compression if configured] het naampatroon . Bijvoorbeeld: 'MyTable.csv'. |
Nee |
modifiedDatetimeStart | Bestanden worden gefilterd op basis van het kenmerk: laatst gewijzigd. De bestanden worden geselecteerd als de laatste wijzigingstijd groter is dan of gelijk is aan modifiedDatetimeStart en kleiner is dan modifiedDatetimeEnd . De tijd wordt toegepast op de UTC-tijdzone in de notatie '2018-12-01T05:00:00Z'. Houd er rekening mee dat het inschakelen van deze instelling van invloed is op de algehele prestaties van gegevensverplaatsing wanneer u grote hoeveelheden bestanden wilt filteren. De eigenschappen kunnen zijn NULL , wat betekent dat er geen bestandskenmerkfilter wordt toegepast op de gegevensset. Wanneer modifiedDatetimeStart een datum/tijd-waarde heeft maar modifiedDatetimeEnd is NULL , worden de bestanden waarvan het kenmerk voor het laatst gewijzigd is groter dan of gelijk aan de datum/tijd-waarde geselecteerd. Wanneer modifiedDatetimeEnd een datum/tijd-waarde heeft, maar modifiedDatetimeStart dit is NULL , worden de bestanden waarvan het kenmerk voor het laatst is gewijzigd kleiner dan de datum/tijd-waarde geselecteerd. |
Nee |
modifiedDatetimeEnd | Bestanden worden gefilterd op basis van het kenmerk: laatst gewijzigd. De bestanden worden geselecteerd als de laatste wijzigingstijd groter is dan of gelijk is aan modifiedDatetimeStart en kleiner is dan modifiedDatetimeEnd . De tijd wordt toegepast op de UTC-tijdzone in de notatie '2018-12-01T05:00:00Z'. Houd er rekening mee dat het inschakelen van deze instelling van invloed is op de algehele prestaties van gegevensverplaatsing wanneer u grote hoeveelheden bestanden wilt filteren. De eigenschappen kunnen zijn NULL , wat betekent dat er geen bestandskenmerkfilter wordt toegepast op de gegevensset. Wanneer modifiedDatetimeStart een datum/tijd-waarde heeft maar modifiedDatetimeEnd is NULL , worden de bestanden waarvan het kenmerk voor het laatst gewijzigd is groter dan of gelijk aan de datum/tijd-waarde geselecteerd. Wanneer modifiedDatetimeEnd een datum/tijd-waarde heeft, maar modifiedDatetimeStart dit is NULL , worden de bestanden waarvan het kenmerk voor het laatst is gewijzigd kleiner dan de datum/tijd-waarde geselecteerd. |
Nee |
indeling | Als u bestanden wilt kopiëren zoals tussen op bestanden gebaseerde archieven (binaire kopie), slaat u de indelingssectie over in de definities van de invoer- en uitvoergegevensset. Als u bestanden met een specifieke indeling wilt parseren of genereren, worden de volgende bestandstypen ondersteund: TextFormat, JsonFormat, AvroFormat, OrcFormat en ParquetFormat. Stel de typeeigenschap onder opmaak in op een van deze waarden. Zie de secties Tekstindeling, JSON-indeling, Avro-indeling, Orc-indeling en Parquet-indeling voor meer informatie. |
Nee (alleen voor binair kopieerscenario) |
compressie | Geef het type en het compressieniveau voor de gegevens op. Zie Ondersteunde bestandsindelingen en compressiecodecs voor meer informatie. Ondersteunde typen zijn GZip, Deflate, BZip2 en ZipDeflate. Ondersteunde niveaus zijn Optimaal en Snelste. |
Nee |
Tip
Als u alle blobs onder een map wilt kopiëren, geeft u alleen folderPath op.
Als u één blob met een bepaalde naam wilt kopiëren, geeft u folderPath op voor het maponderdeel en fileName voor de bestandsnaam.
Als u een subset van blobs onder een map wilt kopiëren, geeft u folderPath op voor het maponderdeel en fileName met een jokertekenfilter.
Voorbeeld:
{
"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"
}
}
}
}
Verouderd bronmodel voor de Copy-activiteit
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De type eigenschap van de Copy-activiteit bron moet worden ingesteld op BlobSource . |
Ja |
recursief | Hiermee wordt aangegeven of de gegevens recursief worden gelezen uit de submappen of alleen uit de opgegeven map. Wanneer recursive deze is ingesteld true op en de sink een archief op basis van bestanden is, wordt er geen lege map of submap gekopieerd of gemaakt in de sink.Toegestane waarden zijn true (standaard) en false . |
Nee |
maxConcurrentConnections | De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken. | Nee |
Voorbeeld:
"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>"
}
}
}
]
Verouderd sinkmodel voor de Copy-activiteit
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De type eigenschap van de Copy-activiteit sink moet worden ingesteld op BlobSink . |
Ja |
copyBehavior | Definieert het kopieergedrag wanneer de bron bestanden is uit een gegevensarchief op basis van bestanden. Toegestane waarden zijn: - PreserveHierarchy (standaard): behoudt de bestandshiërarchie in de doelmap. Het relatieve pad van het bronbestand naar de bronmap is identiek aan het relatieve pad van het doelbestand naar de doelmap. - FlattenHierarchy: Alle bestanden uit de bronmap bevinden zich op het eerste niveau van de doelmap. De doelbestanden hebben automatisch gegenereerde namen. - MergeFiles: hiermee worden alle bestanden uit de bronmap samengevoegd tot één bestand. Als de naam van het bestand of de blob is opgegeven, is de naam van het samengevoegde bestand de opgegeven naam. Anders is het een automatisch gegenereerde bestandsnaam. |
Nee |
maxConcurrentConnections | De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken. | Nee |
Voorbeeld:
"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"
}
}
}
]
Gegevensregistratie wijzigen
Azure Data Factory kan alleen nieuwe of gewijzigde bestanden ophalen uit Azure Blob Storage door **Change Data Capture ** in te schakelen in de brontransformatie van de toewijzingsgegevensstroom. Met deze connectoroptie kunt u alleen nieuwe of bijgewerkte bestanden lezen en transformaties toepassen voordat u getransformeerde gegevens laadt in doelgegevenssets van uw keuze. Raadpleeg Change Data Capture voor meer informatie.
Gerelateerde inhoud
Zie Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die door de Copy-activiteit worden ondersteund als bronnen en sinks.