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
In dit artikel wordt beschreven hoe u de Copy-activiteit in Azure Data Factory en Azure Synapse pijplijnen gebruikt om gegevens van en naar Azure Blob Storage te kopiëren. Ook wordt beschreven hoe u de activiteit Data Flow gebruikt om gegevens in Azure Blob Storage te transformeren. Lees voor meer informatie de Azure Data Factory en de Azure Synapse Analytics introductieartikelen.
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 activiteiten:
- Copy-activiteit ondersteunde bron-/sinkmatrix
- Toewijzingsgegevensstroom
- Activiteit Lookup
- GetMetadata-activiteit
- Activiteit verwijderen
Voor de Copy-activiteit biedt deze Blob Storage-connector ondersteuning voor:
- Blobs kopiëren naar en van Azure-opslagaccounts voor algemeen gebruik en hot/cool blob-opslag.
- Blobs kopiëren met behulp van een accountsleutel, een Sas (Service Shared Access Signature), een service-principal of beheerde identiteiten voor Azure-resourceverificaties.
- Het kopiëren van blobs van blok-, append- of pagina-blobs en het kopiëren van gegevens naar alleen blok-blobs.
- Het kopiëren van blobs zoals deze is, of het parseren of genereren van blobs 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 maken met behulp van de gebruikersinterface
Gebruik de volgende stappen om een gekoppelde Azure Blob Storage-service te maken in Azure Portal gebruikersinterface.
Blader naar het tabblad Beheren in uw Azure Data Factory of Synapse-werkruimte, selecteer Gekoppelde services en klik vervolgens op Nieuw:
Zoek naar blob en selecteer de Azure Blob Storage-connector.
Configureer de servicegegevens, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
De volgende secties bieden 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.
- Verificatie van accountsleutels
- Shared Access Signature-verificatie
- Verificatie van service-principal
- Door het systeem toegewezen beheerde identiteitsverificatie
- Door de gebruiker toegewezen beheerde identiteitsverificatie
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 geven tot dit opslagaccount dat is ingeschakeld op Azure Storage-firewall, moet u verificatie van beheerde identiteiten gebruiken.
- Wanneer u PolyBase of de COPY-instructie gebruikt om gegevens in Azure Synapse Analytics te laden, moet u beheerde identiteitsverificatie gebruiken zoals vereist door Azure Synapse als uw bron- of faseringsblobopslag is geconfigureerd met een Azure Virtual Network-eindpunt. Zie de sectie Verificatie van beheerde identiteit voor meer configuratievoorwaarden.
Notitie
Azure HDInsight en Azure Machine Learning bieden alleen ondersteuning voor verificatie die gebruikmaakt van Azure Blob Storage-accountsleutels.
Verificatie van accountsleutels
De volgende eigenschappen worden ondersteund voor verificatie van opslagaccountsleutels in Azure Data Factory of Synapse-pijplijnen:
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De type eigenschap moet worden ingesteld op AzureBlobStorage (voorgesteld) of AzureStorage (zie de volgende opmerkingen). |
Ja |
| connectionString | Geef de informatie op die nodig is om verbinding te maken Storage voor de connectionString eigenschap. U kunt de accountsleutel ook in Azure Key Vault en de configuratie uit accountKey de connection string. Zie de volgende voorbeelden en het artikel Referenties opslaan in Azure Key Vault voor meer informatie. |
Yes |
| connectVia | De integratieruntime die moet worden gebruikt om verbinding te maken met het gegevensopslag. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime (als uw gegevensopslag zich in een particulier netwerk) gebruikt. Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | No |
Notitie
Een secundair Blob service eindpunt wordt niet ondersteund wanneer u verificatie van accountsleutels gebruikt. U kunt andere verificatietypen gebruiken.
Notitie
Als u het type gekoppelde AzureStorage service gebruikt, wordt deze nog steeds ondersteund. Maar we raden u aan om het nieuwe type AzureBlobStorage gekoppelde service 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-verificatie
Een SAS (een handtekening voor gedeelde toegang) biedt gedelegeerde toegang tot resources in uw opslagaccount. U kunt een shared access signature gebruiken om een client beperkte machtigingen te verlenen voor objecten in uw opslagaccount voor een opgegeven tijd.
U hoeft de toegangssleutels van uw account niet te delen. De Shared Access Signature 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 Shared Access Signature hoeft de client alleen de Shared Access Signature door te geven aan de juiste constructor of methode.
Zie Shared Access Signatures: Understand the shared access signature model (Handtekeningen voor gedeelde toegang: inzicht in het shared access signature-model)voor meer informatie over handtekeningen voor gedeelde toegang.
Notitie
- De service ondersteunt nu handtekeningen voor gedeelde toegang voor de service en handtekeningen voor gedeelde toegang voor een account. Zie Beperkte toegang verlenen tot uw resources Azure Storage handtekeningen voor gedeelde toegang voor meer informatie over handtekeningen voor gedeelde toegang.
- In latere configuraties van gegevenssets is het mappad het absolute pad vanaf 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:
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De type eigenschap moet worden ingesteld op AzureBlobStorage (voorgesteld) of AzureStorage (zie de volgende opmerking). |
Ja |
| sasUri | Geef de Shared Access Signature-URI op voor de Storage zoals blob of container. Markeer dit veld SecureString als om het veilig op te slaan. U kunt het SAS-token ook in Azure Key Vault om automatische rotatie te gebruiken en het tokengedeelte te verwijderen. Zie voor meer informatie de volgende voorbeelden en Referenties opslaan in Azure Key Vault. |
Yes |
| connectVia | De integratieruntime die moet worden gebruikt om verbinding te maken met het gegevensopslag. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime (als uw gegevensopslag zich in een particulier netwerk) gebruikt. Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | No |
Notitie
Als u het type gekoppelde AzureStorage service gebruikt, wordt deze nog steeds ondersteund. Maar we raden u aan om het nieuwe type AzureBlobStorage gekoppelde service 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"
}
}
}
Wanneer u een SHARED Access Signature-URI maakt, moet u rekening houden met de volgende punten:
- Stel de juiste lees-/schrijfmachtigingen in voor objecten op basis van hoe de gekoppelde service (lezen, schrijven, lezen/schrijven) wordt gebruikt.
- Stel de verlooptijd op de juiste wijze in. Zorg ervoor dat de toegang tot Storage objecten 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. Een Shared Access Signature-URI voor een blob biedt de data factory- of Synapse-pijplijn toegang tot die specifieke blob. Met een shared access signature-URI voor een Blob Storage-container kan de data factory- of Synapse-pijplijn door blobs in die container heen worden itereren. Als u later toegang wilt bieden tot meer of minder objecten of als u de SHARED Access Signature-URI wilt bijwerken, moet u de gekoppelde service bijwerken met de nieuwe URI.
Verificatie van service-principal
Zie Toegang tot toegang tot Azure Storage verifiëren Azure Storage service-principalverificatie voor algemene Azure Active Directory.
Volg deze stappen om verificatie van service-principals te gebruiken:
Registreer een toepassingsentiteit in Azure Active Directory (Azure AD) door Uw toepassing registreren bij een Azure AD-tenant te volgen. Noteer deze waarden, die u gebruikt om de gekoppelde service te definiëren:
- Toepassings-id
- Toepassingssleutel
- Tenant-id
Verleen de service-principal de juiste machtiging in Azure Blob Storage. Zie Use the Azure Portal to assign an Azure role for access to blob and queue data (De rollen gebruiken om een Azure-rol toe te wijzen voor toegang tot blob- en wachtrijgegevens) voor meer informatieover de rollen.
- Als bron verleent u in Toegangsbeheer (IAM) ten minste de rol Storage blobgegevenslezer.
- Als sink verleent u in Toegangsbeheer (IAM) ten minste de rol Storage blobgegevensbijdrager.
Deze eigenschappen worden ondersteund voor een gekoppelde Azure Blob Storage-service:
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De eigenschap type moet worden ingesteld op AzureBlobStorage. | Yes |
| serviceEndpoint | Geef het Azure Blob Storage-service-eindpunt op met het patroon https://<accountName>.blob.core.windows.net/ . |
Yes |
| accountKind | Geef het soort opslagaccount op. Toegestane waarden zijn: Storage (algemeen gebruik v1), StorageV2 (algemeen gebruik v2), BlobStorage of BlockBlobStorage. Wanneer u een gekoppelde Azure Blob-service in een gegevensstroom gebruikt, wordt de verificatie van beheerde identiteiten of service-principals niet ondersteund wanneer het account type leeg of 'Storage'. Geef het juiste soort account op, kies een andere verificatie of upgrade uw opslagaccount naar algemeen gebruik v2. |
No |
| servicePrincipalId | Geef de client-id van de toepassing op. | Yes |
| servicePrincipalKey | Geef de sleutel van de toepassing op. Markeer dit veld als SecureString om het veilig op te slaanFactory of om te verwijzen naar een geheim dat isopgeslagen in Azure Key Vault . | Yes |
| tenant | Geef de tenantgegevens (domeinnaam of tenant-id) op waaronder uw toepassing zich bevindt. U kunt deze ophalen door de muisaanwijzer over de rechterbovenhoek van de Azure Portal. | Yes |
| azureCloudType | Geef voor verificatie van de service-principal het type Azure-cloudomgeving op waarvoor Azure Active Directory toepassing is geregistreerd. Toegestane waarden zijn AzurePublic, AzureChina, AzureUsGovernment en AzureGermany. Standaard wordt de data factory cloudomgeving van de Synapse-pijplijn gebruikt. |
No |
| connectVia | De integration runtime die moet worden gebruikt om verbinding te maken met het gegevensopslag. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensopslag zich in een particulier netwerk bewaarde). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | No |
Notitie
- Als uw blob-account het gebruik van de functie voorhet verwijderen van een service-principal in staat stelt, wordt verificatie van de service-principal niet ondersteund in Data Flow.
- Als u toegang hebt tot de blobopslag via een privé-eindpunt met behulp van Data Flow, moet u er rekening mee houden wanneer verificatie van de service-principal wordt gebruikt. Data Flow maakt verbinding met het ADLS Gen2-eindpunt in plaats van het Blob-eindpunt. Zorg ervoor dat u het bijbehorende privé-eindpunt maakt in uw data factory of Synapse-werkruimte om toegang mogelijk te maken.
Notitie
Verificatie van de service-principal wordt alleen ondersteund door het gekoppelde type AzureBlobStorage, niet door het vorige gekoppelde type AzureStorage.
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 identiteitsverificatie
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 blobopslagverificatie, wat vergelijkbaar is met het gebruik van uw eigen service-principal. Hierdoor kan deze aangewezen resource toegang krijgen tot gegevens van of naar Blob-opslag en deze kopiëren. Zie Beheerde identiteiten voor Azure-resources voor meer informatie over beheerde identiteiten voor Azure-resources
Zie Toegang tot toegang Azure Storage Azure Storage verifiëren met behulp van Azure Active Directory voor algemene informatie over Azure Active Directory. Volg deze stappen om beheerde identiteiten te gebruiken voor verificatie van Azure-resources:
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.
Verleen de beheerde identiteit toestemming in Azure Blob Storage. Zie Use the Azure Portal to assign an Azure role for access to blob and queue data (De rollen gebruiken om een Azure-rol toe te wijzen voor toegang tot blob- en wachtrijgegevens) voor meer informatieover de rollen.
- Als bron verleent u in Toegangsbeheer (IAM) ten minste de rol Storage blobgegevenslezer.
- Als sink verleent u in Toegangsbeheer (IAM) ten minste de rol Storage blobgegevensbijdrager.
Deze eigenschappen worden ondersteund voor een gekoppelde Azure Blob Storage-service:
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De eigenschap type moet worden ingesteld op AzureBlobStorage. | Yes |
| serviceEndpoint | Geef het Azure Blob Storage-service-eindpunt op met het patroon https://<accountName>.blob.core.windows.net/ . |
Yes |
| accountKind | Geef het soort opslagaccount op. Toegestane waarden zijn: Storage (algemeen gebruik v1), StorageV2 (algemeen gebruik v2), BlobStorage of BlockBlobStorage. Wanneer u een gekoppelde Azure Blob-service in een gegevensstroom gebruikt, wordt de verificatie van beheerde identiteiten of service-principals niet ondersteund wanneer het account type leeg of 'Storage'. Geef het juiste soort account op, kies een andere verificatie of upgrade uw opslagaccount naar algemeen gebruik v2. |
No |
| connectVia | De integration runtime die moet worden gebruikt om verbinding te maken met het gegevensopslag. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensopslag zich in een particulier netwerk bewaarde). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | No |
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 identiteitsverificatie
Een data factory kan worden toegewezen met een of meer door de gebruiker toegewezen beheerde identiteiten. U kunt deze door de gebruiker toegewezen beheerde identiteit gebruiken voor blobopslagverificatie, waarmee u gegevens van of naar Blob Storage kunt openen en kopiëren. Zie Beheerde identiteiten voor Azure-resources voor meer informatie over beheerde identiteiten voor Azure-resources
Zie Toegang tot azure-Azure Storage verifiëren met behulp van Azure Active Directory voor algemene informatie Azure Active Directory. Volg deze stappen om verificatie van door de gebruiker toegewezen beheerde identiteit te gebruiken:
Maak een of meer door de gebruiker toegewezen beheerde identiteiten en verleen machtigingen in Azure Blob Storage. Zie Use the Azure Portal to assign an Azure role for access to blob and queue data (De rollen gebruiken om een Azure-rol toe te wijzen voor toegang tot blob- en wachtrijgegevens) voor meer informatieover de rollen.
- Als bron verleent u in Toegangsbeheer (IAM) ten minste de rol Storage blobgegevenslezer.
- Als sink verleent u in Toegangsbeheer (IAM) ten minste de rol Storage inzender voor blobgegevens.
Wijs een of meer 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:
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De eigenschap type moet worden ingesteld op AzureBlobStorage. | Yes |
| serviceEndpoint | Geef het Azure Blob Storage-service-eindpunt op met het patroon https://<accountName>.blob.core.windows.net/ . |
Yes |
| accountKind | Geef het soort opslagaccount op. Toegestane waarden zijn: Storage (algemeen gebruik v1), StorageV2 (algemeen gebruik v2), BlobStorage of BlockBlobStorage. Wanneer u een gekoppelde Azure Blob-service in een gegevensstroom gebruikt, wordt de verificatie van beheerde identiteiten of service-principals niet ondersteund wanneer het account type leeg of 'Storage'. Geef het juiste soort account op, kies een andere verificatie of upgrade uw opslagaccount naar algemeen gebruik v2. |
No |
| referenties | Geef de door de gebruiker toegewezen beheerde identiteit op als het referentieobject. | Yes |
| connectVia | De integration runtime die moet worden gebruikt om verbinding te maken met het gegevensopslag. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensopslag zich in een particulier netwerk bewaarde). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. | No |
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) in Azure Synapse Analytics te laden, moet u bij het gebruik van beheerde identiteitsverificatie voor Blob Storage ook stap 1 tot en met 3 in deze richtlijnen volgen. Met deze stappen registreert u uw server bij Azure AD en wijst u de rol Storage blobgegevens inzender toe 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 geven tot dit opslagaccount hebben ingeschakeld onder het instellingenmenu voor Azure Storage-accountfirewalls en virtuele netwerken, zoals vereist door Azure Synapse.
Notitie
- Als uw blob-account het gebruik van de functie voor het verwijderen van gegevens inschakelen,wordt verificatie van door het systeem toegewezen/door de gebruiker toegewezen beheerde identiteit niet ondersteund in Data Flow.
- Als u toegang hebt tot de blobopslag via een privé-eindpunt met behulp van Data Flow, moet u er rekening mee houden wanneer verificatie door het systeem toegewezen/door de gebruiker toegewezen beheerde identiteit wordt gebruikt. Data Flow maakt verbinding 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 stellen.
Notitie
Door het systeem toegewezen/door de gebruiker toegewezen beheerde identiteitsverificatie wordt alleen ondersteund door de gekoppelde service van het type AzureBlobStorage, niet door het vorige gekoppelde type AzureStorage.
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:
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De eigenschap type van de locatie in de gegevensset moet worden ingesteld op AzureBlobStorageLocation. | Yes |
| container | De blobcontainer. | Yes |
| 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 dit op in de broninstellingen van de activiteit. | No |
| fileName | De bestandsnaam onder de opgegeven container en het pad naar de map. Als u jokertekens wilt gebruiken om bestanden te filteren, slaat u deze instelling over en geeft u dit op in de broninstellingen van de activiteit. | No |
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 worden ondersteund door de Blob Storage-bron en sink.
Blob-opslag 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-opslag onder instellingen in een op storeSettings indeling gebaseerde kopieerbron:
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De eigenschap type onder moet worden ingesteld op storeSettings AzureBlobStorageReadSettings. |
Yes |
| Zoek de bestanden die u wilt kopiëren: | ||
| OPTIE 1: statisch pad |
Kopieer uit de opgegeven container of map/bestandspad die is opgegeven in de gegevensset. Als u alle blobs uit een container of map wilt kopiëren, geeft u ook op wildcardFileName als * . |
|
| OPTIE 2: blob-voorvoegsel - 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, dat betere prestaties biedt dan een jokertekenfilter.Wanneer u het voorvoegsel gebruikt en ervoor kiest om te kopiëren naar een bestandsgebaseerde sink met behoud van de hiërarchie, moet u er rekening mee houden dat het subpad na het laatste '/' in het voorvoegsel behouden blijft. Als u bijvoorbeeld bron hebt container/folder/subfolder/file.txt en het voorvoegsel configureert als folder/sub , is het behouden bestandspad subfolder/file.txt . |
No |
| OPTIE 3: jokerteken - jokertekenFolderPath |
Het mappad 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 ^ om te escapen als de mapnaam een jokerteken of dit escape-teken in de map heeft. Zie meer voorbeelden in Voorbeelden van map- en bestandsfilters. |
No |
| OPTIE 3: jokerteken - jokertekenBestandsnaam |
De bestandsnaam met jokertekens onder de opgegeven container en mappad (of mappad met jokertekens) om bronbestanden te filteren. Toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken). Gebruik ^ om te escapen als uw bestandsnaam een jokerteken of dit escape-teken bevat. Zie meer voorbeelden in Voorbeelden van map- en bestandsfilters. |
Yes |
| OPTIE 4: een lijst met bestanden - fileListPath |
Geeft aan dat u een bepaalde bestandsset wilt kopiëren. Wijs naar een tekstbestand dat een lijst bevat 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, moet u geen bestandsnaam opgeven in de gegevensset. Zie meer voorbeelden in Bestandslijstvoorbeelden. |
No |
| Aanvullende instellingen: | ||
| Recursieve | Geeft aan 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 bestandsopslag is, een lege map of submap niet wordt gekopieerd of gemaakt op de sink. Toegestane waarden zijn true (standaard) en false. Deze eigenschap is niet van toepassing wanneer u fileListPath configureert. |
No |
| deleteFilesAfterCompletion | Geeft aan of de binaire bestanden uit de bronopslag worden verwijderd nadat ze naar het doelopslag zijn verplaatst. Het verwijderen van het bestand is per bestand, dus wanneer de kopieeractiviteit mislukt, ziet u dat sommige bestanden al naar de bestemming zijn gekopieerd en verwijderd uit de bron, terwijl andere nog steeds in de bronopslag zijn. Deze eigenschap is alleen geldig in het scenario voor het kopiëren van binaire bestanden. De standaardwaarde: false. |
No |
| modifiedDatetimeStart | Bestanden worden gefilterd op basis van het kenmerk: laatst gewijzigd. De bestanden worden geselecteerd als de laatste wijziging binnen het tijdsbereik tussen modifiedDatetimeStart en modifiedDatetimeEnd valt. De tijd wordt toegepast op een UTC-tijdzone in de indeling '2018-12-01T05:00:00Z'. De eigenschappen kunnen NULL zijn, wat betekent dat er geen bestandskenmerkfilter wordt toegepast op de gegevensset. Wanneer een datum/tijd-waarde heeft maar NULL is, worden de bestanden geselecteerd waarvan het kenmerk laatst is gewijzigd groter dan of gelijk is aan modifiedDatetimeStart modifiedDatetimeEnd de datum/tijd-waarde. Wanneer een datum/tijd-waarde heeft maar NULL is, worden de bestanden geselecteerd waarvan het kenmerk laatst is gewijzigd, kleiner modifiedDatetimeEnd is dan de modifiedDatetimeStart datum/tijd-waarde. Deze eigenschap is niet van toepassing wanneer u fileListPath configureert. |
No |
| modifiedDatetimeEnd | Hetzelfde als hierboven. | No |
| enablePartitionDiscovery | Voor bestanden die zijn gepartitief, geeft u op of de partities van het bestandspad moeten worden geparseerd en als extra bronkolommen moeten worden toegevoegd. Toegestane waarden zijn false (standaard) en true. |
No |
| partitionRootPath | Wanneer partitiedetectie is ingeschakeld, geeft u het absolute hoofdpad op om gepartities als gegevenskolommen te lezen. Als deze niet is opgegeven, wordt standaard - Wanneer u het bestandspad gebruikt in de gegevensset of lijst met bestanden op de bron, is het pad naar de partitiemap het pad dat is geconfigureerd in de gegevensset. - Wanneer u een filter voor mappen met jokertekens gebruikt, is het partitiepad het subpad vóór het eerste jokerteken. -Wanneer u voorvoegsel gebruikt, partitie hoofdpad is subpad vóór de laatste "/". Stel dat u het pad in de gegevensset configureert als 'root/folder/year=2020/month=08/day=27': - Als u het hoofdpad van de partitie opgeeft als 'root/folder/year=2020', genereert de kopieeractiviteit twee extra kolommen en met respectievelijk de waarde month 08 en 27, naast de kolommen in de day bestanden.- Als het pad naar de hoofdmap van de partitie niet is opgegeven, wordt er geen extra kolom gegenereerd. |
No |
| maxConcurrentConnections | De bovengrens van gelijktijdige verbindingen die tijdens de activiteitsrun tot stand zijn gebracht met het gegevensopslag. Geef alleen een waarde op als u gelijktijdige verbindingen wilt beperken. | No |
Notitie
Voor parquet/tekstindeling met scheidingstekens wordt het BlobSource-type voor de Copy-activiteit-bron die in de volgende sectie wordt vermeld, nog steeds ondersteund voor compatibiliteit met eerdere gegevens. We raden u aan 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 container, die automatisch wordt gemaakt wanneer Storage Analytics is ingeschakeld voor een opslagaccount, wordt niet weergegeven wanneer een containervermeldingsbewerking wordt uitgevoerd $logs via de gebruikersinterface. Het bestandspad moet rechtstreeks worden opgegeven voor uw data factory of Synapse-pijplijn om bestanden uit de container te $logs 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 instellingen in een op storeSettings indeling gebaseerde sink voor kopiëren:
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De type eigenschap onder moet worden ingesteld op storeSettings AzureBlobStorageWriteSettings . |
Yes |
| copyBehavior | Hiermee definieert u het kopieergedrag wanneer de bron bestanden uit een gegevensopslag op basis van bestanden is. 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 staan op het eerste niveau van de doelmap. De doelbestanden hebben automatisch gegenereerde namen. - MergeFiles:voegt alle bestanden uit de bronmap samen 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. |
No |
| blockSizeInMB | Geef de blokgrootte in megabytes op die wordt gebruikt om gegevens naar blok-blobs te schrijven. Meer informatie over blok-blobs. De toegestane waarde ligt tussen 4 MB en 100 MB. De service bepaalt standaard automatisch de blokgrootte op basis van het type bronopslag en de gegevens. Voor niet-binaire kopieën naar Blob Storage is de standaardblokgrootte 100 MB, zodat deze in (ten meeste) 4,95 TB aan gegevens kan passen. 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 time-out- of prestatieproblemen met de werking tot gevolg hebben. U kunt expliciet een blokgrootte opgeven, terwijl u ervoor zorgt dat deze groot genoeg blockSizeInMB*50000 is om de gegevens op te slaan. Anders mislukt de Copy-activiteit uit te voeren. |
No |
| maxConcurrentConnections | De bovengrens van gelijktijdige verbindingen die tijdens de activiteitsrun tot stand zijn gebracht met het gegevensopslag. Geef alleen een waarde op als u gelijktijdige verbindingen wilt beperken. | No |
| metagegevens | Stel aangepaste metagegevens in wanneer u naar sink kopieert. Elk object onder de metadata matrix vertegenwoordigt een extra kolom. De name definieert de naam van de metagegevenssleutel en de value geeft de gegevenswaarde van die sleutel aan. Als de functie kenmerken behouden wordt gebruikt, worden de opgegeven metagegevens samenge voegen/overschreven met de metagegevens van het bronbestand.Toegestane gegevenswaarden zijn: - $$LASTMODIFIED: een gereserveerde variabele geeft aan dat het tijdstip van de laatste wijziging van de bronbestanden moet worden opgeslagen. Alleen van toepassing op bron op basis van bestanden met binaire indeling.- Expressie - Statische waarde |
No |
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 | Recursieve | Bronmapstructuur en filterresultaat (vetgedrukte bestanden worden opgehaald) |
|---|---|---|---|
container/Folder* |
(leeg, standaard gebruiken) | onjuist | 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 |
onjuist | 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 bestandslijst
In deze sectie wordt het resulterende gedrag beschreven van het gebruik van een bestandslijstpad in 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: FolderAIn Copy-activiteit bron: - Bestandslijstpad: container/Metadata/FileListToCopy.txt Het pad naar de bestandslijst wijst naar een tekstbestand in hetzelfde gegevensopslag dat een lijst bevat met bestanden die u wilt kopiëren, éé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 voor verschillende combinaties van recursieve en copyBehavior-waarden beschreven.
| Recursieve | copyBehavior | Bronmapstructuur | Resulterend doel |
|---|---|---|---|
| true | preserveHierarchy | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 File5 |
De doelmap, Map1, wordt gemaakt met dezelfde structuur als de bron: Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 File5 |
| true | flattenHierarchy | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 File5 |
De doelmap, Map1, wordt gemaakt met de volgende structuur: Map1 automatisch gegenereerde naam voor File1 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 File5 |
De doelmap, Map1, wordt gemaakt met de volgende structuur: Map1 File1 + File2 + File3 + File4 + File5 content worden samengevoegd in één bestand met een automatisch gegenereerde bestandsnaam. |
| onjuist | preserveHierarchy | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 File5 |
De doelmap, Map1, wordt gemaakt met de volgende structuur: Map1 Bestand1 Bestand2 Submap1 met File3, File4 en File5 wordt niet opgehaald. |
| onjuist | flattenHierarchy | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 File5 |
De doelmap, Map1, wordt gemaakt met de volgende structuur: Map1 automatisch gegenereerde naam voor File1 automatisch gegenereerde naam voor File2 Submap1 met File3, File4 en File5 wordt niet opgehaald. |
| onjuist | mergeFiles | Map1 Bestand1 Bestand2 Submap1 Bestand3 Bestand4 File5 |
De doelmap, Map1, wordt gemaakt met de volgende structuur: Map1 De inhoud van File1 + File2 wordt samengevoegd in één bestand met een automatisch gegenereerde bestandsnaam. automatisch gegenereerde naam voor File1 Submap1 met File3, File4 en File5 wordt niet opgehaald. |
Metagegevens behouden tijdens 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 het bestand samen met gegevens te behouden. Meer informatie kunt u lezen in Metagegevens behouden.
Eigenschappen van toewijzingsgegevensstromen
Wanneer u gegevens transformeert in toewijzingsgegevensstromen, kunt u bestanden lezen en schrijven vanuit Azure Blob Storage 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 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.
Paden met jokertekens: Als u een jokertekenpatroon gebruikt, krijgt de service de instructie om elke overeenkomende map en elk bestand in één brontransformatie door te lopen. 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 over uw bestaande jokertekenpatroon beweegt.
Kies in de broncontainer een reeks bestanden die overeenkomen met een patroon. Alleen een container kan worden opgegeven in de gegevensset. Het pad met jokertekens moet daarom ook uw mappad uit de hoofdmap bevatten.
Voorbeelden van jokertekens:
*Vertegenwoordigt een set tekens.**Vertegenwoordigt recursieve map nesten.?Vervangt één teken.[]Komt overeen met een of meer tekens tussen de haakjes./data/sales/**/*.csvHaalt alle .csv onder /data/sales./data/sales/20??/**/Haalt alle bestanden in de 20e eeuw op./data/sales/*/*/*.csvHaalt .csv bestanden op twee niveaus onder /data/sales./data/sales/2004/*/12/[XY]1?.csvHaalt alle .csv in december 2004 op, beginnend met X of Y met een tweecijferig getal als voorvoegsel.
Pad naar de hoofdmap van de partitie: Als u gepartities in uw bestandsbron hebt met een indeling (bijvoorbeeld ), kunt u het hoogste niveau van die partitiemapstructuur toewijzen aan een kolomnaam in de gegevensstroom van uw key=value year=2019 gegevensstroom.
Stel eerst een jokerteken in om alle paden op te nemen die de gepartliceerde mappen zijn plus de leaf-bestanden die u wilt lezen.
Gebruik de instelling Hoofdpad partitie 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 de bestandsnaam: Sla de naam van het bronbestand op in een kolom in uw gegevens. Voer hier een nieuwe kolomnaam in om de bestandsnaamreeks 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 verplaatsen zijn relatief.
Als u bronbestanden na verwerking naar een andere locatie wilt verplaatsen, selecteert u eerst Verplaatsen voor bestandsbewerking. Stel vervolgens de map 'van' in. Als u geen jokertekens gebruikt voor uw pad, is de instelling 'van' dezelfde map als de bronmap.
Als u een bronpad met jokertekens hebt, ziet uw syntaxis er als volgende uit:
/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 opgeslagen onder /data/sales verplaatst naar /backup/priorSales .
Notitie
Bestandsbewerkingen worden alleen uitgevoerd wanneer u de gegevensstroom start vanuit een pijplijnuitvoering (een pijplijn voor foutopsporing of uitvoering) die gebruikmaakt van de activiteit Execute Data Flow in een pijplijn. Bestandsbewerkingen worden niet uitgevoerd in data Flow foutopsporingsmodus.
Filteren op laatst gewijzigd: U kunt filteren welke bestanden u verwerkt door een datumbereik op te geven van wanneer ze voor het laatst zijn gewijzigd. Alle datums/tijden zijn in UTC.
Sinkeigenschappen
In de sinktransformatie kunt u schrijven naar een container of een map in Azure Blob Storage. Gebruik het Instellingen om te beheren hoe de bestanden worden geschreven.
De map verwijderen: Hiermee bepaalt u of de doelmap wordt geweerd voordat de gegevens worden geschreven.
Bestandsnaamoptie: Bepaalt hoe de doelbestanden worden genoemd in de doelmap. De bestandsnaamopties zijn:
- Standaardinstelling: Spark toestaan om bestanden een naam te geven op basis van part-standaardwaarden.
- Patroon: voer een patroon in dat de uitvoerbestanden per partitie opsemuleert. Maakt bijvoorbeeld
loans[n].csv, , , enloans1.csvloans2.csvmeer. - 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 gegevenssetcontainer, niet de doelmap. Als u een mappad in uw gegevensset hebt, wordt dit overgeslagen.
- Uitvoer naar één bestand: combineer de gepart partitioneerde uitvoerbestanden in één benoemd bestand. Het pad is relatief ten opzichte van de map van de gegevensset. De samenvoegbewerking kan mogelijk mislukken op basis van de knooppuntgrootte. Deze optie wordt niet aanbevolen voor grote gegevenssets.
Alles prijsopgave: Hiermee bepaalt u of alle waarden tussen aanhalingstekens moeten worden plaatsen.
Eigenschappen van opzoekactiviteit
Zie Opzoekactiviteit voor meer informatie over de eigenschappen.
Eigenschappen van GetMetadata-activiteit
Raadpleeg GetMetadata-activiteitvoor meer informatie over de eigenschappen.
Activiteitseigenschappen verwijderen
Zie Activiteit verwijderen voor meer informatie over de eigenschappen.
Verouderde modellen
Notitie
De volgende modellen worden nog steeds ondersteund voor achterwaartse compatibiliteit. We raden u aan het eerder genoemde nieuwe model te gebruiken. De ontwerp-UI is overgeschakeld naar het genereren van het nieuwe model.
Verouderd gegevenssetmodel
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De type eigenschap van de gegevensset moet worden ingesteld op AzureBlob . |
Yes |
| folderPath | Pad naar de container en map in Blob Storage. Een jokertekenfilter wordt ondersteund voor het pad, met uitzondering van de containernaam. Toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken). Gebruik ^ om te escapen als uw mapnaam een jokerteken of dit escape-teken in de map heeft. Een voorbeeld is: myblobcontainer/myblobfolder/ . Zie meer voorbeelden in Map- en bestandsfiltervoorbeelden. |
Ja voor de activiteit Kopiëren of Opzoek, Nee voor de GetMetadata-activiteit |
| fileName | Naam of jokertekenfilter voor de blobs onder de opgegeven folderPath waarde. Als u geen waarde opgeeft voor deze eigenschap, wijst de gegevensset naar alle blobs in de map. Voor het filter zijn de 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 ^ om te escapen als uw bestandsnaam een jokerteken of dit escape-teken bevat.Wanneer niet is opgegeven voor een uitvoergegevensset en niet is opgegeven in de activiteitss sink, genereert de Copy-activiteit automatisch de blobnaam met het volgende fileName preserveHierarchy patroon: "Gegevens.[ GUID voor activiteitsrun. [GUID als FlattenHierarchy]. [format if configured]. [compressie indien geconfigureerd]". Bijvoorbeeld: 'Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz'. Als u vanuit een tabelbron kopieert met behulp van een tabelnaam in plaats van een query, is het naampatroon [table name].[format].[compression if configured] . Bijvoorbeeld: 'MyTable.csv'. |
No |
| modifiedDatetimeStart | Bestanden worden gefilterd op basis van het kenmerk : laatst gewijzigd. De bestanden worden geselecteerd als de laatste wijzigingstijd binnen het tijdsbereik tussen modifiedDatetimeStart en modifiedDatetimeEnd ligt. De tijd wordt toegepast op de UTC-tijdzone in de indeling '2018-12-01T05:00:00Z'. Let erop dat het inschakelen van deze instelling van invloed is op de algehele prestaties van gegevens movement wanneer u grote hoeveelheden bestanden wilt filteren. De eigenschappen kunnen NULL zijn, wat betekent dat er geen bestandskenmerkfilter wordt toegepast op de gegevensset. Wanneer een datum/tijd-waarde heeft maar is, worden de bestanden geselecteerd waarvan het kenmerk laatst is gewijzigd groter dan of gelijk is aan de modifiedDatetimeStart modifiedDatetimeEnd NULL datum/tijd-waarde. Wanneer modifiedDatetimeEnd een datum/tijd-waarde heeft, maar is, worden de bestanden geselecteerd waarvan het kenmerk laatst is modifiedDatetimeStart NULL gewijzigd. |
No |
| modifiedDatetimeEnd | Bestanden worden gefilterd op basis van het kenmerk : laatst gewijzigd. De bestanden worden geselecteerd als de laatste wijzigingstijd binnen het tijdsbereik tussen modifiedDatetimeStart en modifiedDatetimeEnd ligt. De tijd wordt toegepast op de UTC-tijdzone in de indeling '2018-12-01T05:00:00Z'. Let erop dat het inschakelen van deze instelling van invloed is op de algehele prestaties van gegevens movement wanneer u grote hoeveelheden bestanden wilt filteren. De eigenschappen kunnen NULL zijn, wat betekent dat er geen bestandskenmerkfilter wordt toegepast op de gegevensset. Wanneer een datum/tijd-waarde heeft maar is, worden de bestanden geselecteerd waarvan het kenmerk laatst is gewijzigd groter dan of gelijk is aan de modifiedDatetimeStart modifiedDatetimeEnd NULL datum/tijd-waarde. Wanneer modifiedDatetimeEnd een datum/tijd-waarde heeft, maar is, worden de bestanden geselecteerd waarvan het kenmerk laatst is modifiedDatetimeStart NULL gewijzigd. |
No |
| indeling | Als u bestanden wilt kopiëren tussen bestandsopslagexemplaars (binair kopiëren), slaat u de indelingssectie over in zowel de definities van de invoer- als de uitvoerset. Als u bestanden met een specifieke indeling wilt parseren of genereren, worden de volgende bestandsindelingstypen ondersteund: TextFormat, JsonFormat, AvroFormat, OrcFormat en ParquetFormat. Stel de eigenschap type onder indeling in op een van deze waarden. Zie de secties Tekstindeling, JSON-indeling, Avro-indeling, Orc-indelingen Parquet-indeling voor meer informatie. |
Nee (alleen voor binair kopieerscenario) |
| compressie | Geef het type en 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. |
No |
Tip
Als u alle blobs onder een map wilt kopiëren, geeft u folderPath alleen op.
Als u één blob met een bepaalde naam wilt kopiëren, geeft u folderPath op voor het mapgedeelte en fileName voor de bestandsnaam.
Als u een subset van blobs onder een map wilt kopiëren, geeft u folderPath op voor het mapgedeelte 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
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De type eigenschap van de Copy-activiteit bron moet worden ingesteld op BlobSource . |
Yes |
| Recursieve | Geeft aan of de gegevens recursief worden gelezen uit de submappen of alleen uit de opgegeven map. Houd er rekening mee dat wanneer is ingesteld op en de sink een bestandsopslag is, een lege map of submap niet wordt gekopieerd of gemaakt recursive true op de sink.Toegestane waarden zijn true (standaard) en false . |
No |
| maxConcurrentConnections | De bovengrens van gelijktijdige verbindingen die tijdens de activiteitsrun tot stand zijn gebracht met het gegevensopslag. Geef alleen een waarde op als u gelijktijdige verbindingen wilt beperken. | No |
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
| Eigenschap | Beschrijving | Vereist |
|---|---|---|
| type | De type eigenschap van de Copy-activiteit sink moet worden ingesteld op BlobSink . |
Yes |
| copyBehavior | Hiermee definieert u het kopieergedrag wanneer de bron bestanden uit een gegevensopslag op basis van bestanden is. Toegestane waarden zijn: - PreserveHierarchy (standaard): behoudt de bestandshiërarchie in de doelmap. Het relatieve pad van bronbestand naar bronmap is identiek aan het relatieve pad van doelbestand naar doelmap. - FlattenHierarchy:alle bestanden uit de bronmap staan op het eerste niveau van de doelmap. De doelbestanden hebben automatisch gegenereerde namen. - MergeFiles:voegt alle bestanden uit de bronmap samen 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. |
No |
| maxConcurrentConnections | De bovengrens van gelijktijdige verbindingen die tijdens de activiteitsrun tot stand zijn gebracht met het gegevensopslag. Geef alleen een waarde op als u gelijktijdige verbindingen wilt beperken. | No |
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"
}
}
}
]
Volgende stappen
Zie Ondersteunde gegevensopslag voor een lijst met gegevensopslag die door de Copy-activiteit worden ondersteund als bronnen en sinks.