Copia de datos con Azure Files como origen o destino mediante Azure Data Factory
SE APLICA A: Azure Data Factory Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.
En este artículo se explica cómo copiar datos en y desde Azure Files. Para información sobre Azure Data Factory, lea el artículo de introducción.
Funcionalidades admitidas
Este conector de Azure Files es compatible con las capacidades siguientes:
Funcionalidades admitidas | IR | Puntos de conexión privados administrados de Synapse (versión preliminar) |
---|---|---|
Actividad de copia (origen/receptor) | ① ② | ✓ Exclusión de cuenta de almacenamiento V1 |
Actividad de búsqueda | ① ② | ✓ Exclusión de cuenta de almacenamiento V1 |
Actividad GetMetadata | ① ② | ✓ Exclusión de cuenta de almacenamiento V1 |
Actividad de eliminación | ① ② | ✓ Exclusión de cuenta de almacenamiento V1 |
① Azure Integration Runtime ② Entorno de ejecución de integración autohospedado
Puede copiar datos de Azure Files a cualquier almacén de datos de receptor compatible, o bien de cualquier almacén de datos de origen compatible a Azure Files. Para obtener una lista de almacenes de datos que la actividad de copia admite como orígenes y receptores, consulte Almacenes de datos y formatos que se admiten.
En concreto, este conector de Azure files admite las siguientes funcionalidades:
- Copia de archivos mediante autenticaciones de clave de cuenta o firma de acceso compartido de servicio (SAS).
- Copiar los archivos tal cual, o bien analizarlos o generarlos, con los códecs de compresión y los formatos de archivo compatibles.
Introducción
Para realizar la actividad de copia con una canalización, puede usar una de los siguientes herramientas o SDK:
- La herramienta Copiar datos
- Azure Portal
- El SDK de .NET
- El SDK de Python
- Azure PowerShell
- API REST
- La plantilla de Azure Resource Manager
Creación de un servicio vinculado a Azure Files mediante la interfaz de usuario
Siga estos pasos para crear un servicio vinculado en Azure Files en la interfaz de usuario de Azure Portal.
Vaya a la pestaña Administrar del área de trabajo de Azure Data Factory o Synapse y seleccione Servicios vinculados; luego haga clic en Nuevo:
Busque el archivo y seleccione el conector para Azure Files con la etiqueta Azure File Storage.
Configure los detalles del servicio, pruebe la conexión y cree el nuevo servicio vinculado.
Detalles de configuración del conector
En las secciones siguientes se proporcionan detalles sobre las propiedades que se usan para definir entidades específicas para Azure Files.
Propiedades del servicio vinculado
El conector de Azure Files admite los siguientes tipos de autenticación. Consulte las secciones correspondientes para más información.
- Autenticación de clave de cuenta
- Autenticación con firma de acceso compartido
- Autenticación de identidad administrada asignada por el sistema
- Autenticación de identidad administrada asignada por el usuario
Nota:
Si usaba el servicio vinculado de Azure Files con el modelo heredado, en el que en la interfaz de usuario de creación de ADF se muestra como "Autenticación básica", todavía se admite tal cual; no obstante, se recomienda usar el nuevo modelo de ahora en adelante. El modelo heredado transfiere los datos desde y hacia el almacenamiento a través del bloque de mensajes del servidor (SMB), mientras que el nuevo modelo emplea el SDK de almacenamiento, que tiene un mejor rendimiento. Para actualizar el modelo, puede editar el servicio vinculado para cambiar el método de autenticación a "Clave de cuenta" o "URI de SAS"; no es necesario ningún cambio en la actividad de copia o el conjunto de datos.
Autenticación de clave de cuenta
Data Factory admite las siguientes propiedades para la autenticación de clave de cuenta de Azure Files:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type debe establecerse en: AzureFileStorage. | Sí |
connectionString | Especifique la información necesaria para conectarse a Azure Files. También puede colocar la clave de cuenta en Azure Key Vault y extraer la configuración accountKey de la cadena de conexión. Para obtener más información, consulte los siguientes ejemplos y el artículo Almacenamiento de credenciales en Azure Key Vault. |
Sí |
fileShare | Especifique el nombre del recurso compartido de archivos. | Sí |
instantánea | Especifique la fecha de la instantánea del recurso compartido de archivos si quiere realizar la copia desde una instantánea. | No |
connectVia | El entorno Integration Runtime que se usará para conectarse al almacén de datos. Puede usar los entornos Integration Runtime (autohospedado) (si el almacén de datos se encuentra en una red privada) o Azure Integration Runtime. Si no se especifica, se usará Azure Integration Runtime. | No |
Ejemplo:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net;",
"fileShare": "<file share name>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Ejemplo: Almacenamiento de la clave de cuenta en Azure Key Vault
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
"fileShare": "<file share name>",
"accountKey": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticación con firma de acceso compartido
Una firma de acceso compartido ofrece acceso delegado a recursos en la cuenta de almacenamiento. Puede utilizar una firma de acceso compartido para conceder a un cliente permisos limitados a los objetos de su cuenta de almacenamiento durante un periodo de tiempo especificado. Para obtener más información sobre las firmas de acceso compartido, consulte Uso de firmas de acceso compartido (SAS): Comprender el modelo de firma de acceso compartido.
El servicio admite las siguientes propiedades para usar la autenticación con firma de acceso compartido:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type debe establecerse en: AzureFileStorage. | Sí |
sasUri | Especifique el URI de firma de acceso compartido a los recursos. Marque este campo como SecureString para almacenarlo de forma segura. También puede colocar el token de SAS en Azure Key Vault para usar la rotación automática y quitar la parte del token. Para obtener más información, consulte los siguientes ejemplos y el Almacenamiento de credenciales en Azure Key Vault. |
Sí |
fileShare | Especifique el nombre del recurso compartido de archivos. | Sí |
instantánea | Especifique la fecha de la instantánea del recurso compartido de archivos si quiere realizar la copia desde una instantánea. | No |
connectVia | El entorno Integration Runtime que se usará para conectarse al almacén de datos. Puede usar los entornos Integration Runtime (autohospedado) (si el almacén de datos se encuentra en una red privada) o Azure Integration Runtime. Si no se especifica, se usará Azure Integration Runtime. | No |
Ejemplo:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the resource e.g. https://<accountname>.file.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
},
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Ejemplo: almacenar el token de SAS en Azure Key Vault
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.file.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>>"
},
"fileShare": "<file share name>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticación de identidad administrada asignada por el sistema
Una factoría de datos o una canalización de Synapse se pueden asociar a una identidad administrada asignada por el sistema para recursos de Azure, que representa ese recurso para la autenticación en otros servicios de Azure. Puede usar esta identidad administrada asignada por el sistema para la autenticación de Azure Files. Para obtener más información sobre las identidades administradas para los recursos de Azure, vea Identidades administradas para recursos de Azure.
Para usar la autenticación de identidad administrada asignada por el sistema, siga estos pasos:
Recupere la información de identidad administrada asignada por el sistema; para ello, copie el valor del identificador de objeto de identidad administrada asignada por el sistema generado junto con la factoría o el área de trabajo de Synapse.
Conceda permiso a la identidad administrada en Azure Files. Para más información sobre los roles, vea este artículo.
- Como origen, en Control de acceso (IAM), conceda al menos el rol Lector con privilegio de datos de archivos de Storage.
- Como receptor, en Control de acceso (IAM), conceda al menos el rol Colaborador con privilegio de datos de archivos de Storage.
Estas propiedades son compatibles con un servicio vinculado de Azure Files:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type se debe establecer en AzureFileStorage. | Sí |
serviceEndpoint | Especifique el punto de conexión de servicio de Azure Files con el patrón https://<accountName>.file.core.windows.net/ . |
Sí |
fileShare | Especifique el nombre del recurso compartido de archivos. | Sí |
instantánea | Especifique la fecha de la instantánea del recurso compartido de archivos si quiere realizar la copia desde una instantánea. | No |
connectVia | El entorno Integration Runtime que se usará para conectarse al almacén de datos. Puede usar Azure Integration Runtime. Si no se especifica, se usará Azure Integration Runtime. | No |
Nota:
La autenticación de identidad administrada asignada por el sistema solo se admite en Azure Integration Runtime.
Ejemplo:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.file.core.windows.net/",
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticación de identidad administrada asignada por el usuario
Una factoría de datos se puede asignar con una o varias identidades administradas asignadas por el usuario. Puede usar esta identidad administrada asignada por el usuario para la autenticación de Azure Files, lo que permite acceder y copiar datos desde o hacia Azure Files. Para obtener más información sobre las identidades administradas para los recursos de Azure, vea Identidades administradas para recursos de Azure.
Para usar la autenticación de identidad administrada asignada por el usuario, siga estos pasos:
Cree una o varias identidades administradas asignadas por el usuario y conceda permiso en Azure Files. Para más información sobre los roles, vea este artículo.
- Como origen, en Control de acceso (IAM), conceda al menos el rol Lector con privilegio de datos de archivos de Storage.
- Como receptor, en Control de acceso (IAM), conceda al menos el rol Colaborador con privilegio de datos de archivos de Storage.
Asigne una o varias identidades administradas asignadas por el usuario a la factoría de datos y cree credenciales para cada identidad administrada asignada por el usuario.
Estas propiedades son compatibles con un servicio vinculado de Azure Files:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type se debe establecer en AzureFileStorage. | Sí |
serviceEndpoint | Especifique el punto de conexión de servicio de Azure Files con el patrón https://<accountName>.file.core.windows.net/ . |
Sí |
credentials | Especifique la identidad administrada asignada por el usuario como objeto de credencial. | Sí |
fileShare | Especifique el nombre del recurso compartido de archivos. | Sí |
instantánea | Especifique la fecha de la instantánea del recurso compartido de archivos si quiere realizar la copia desde una instantánea. | No |
connectVia | El entorno Integration Runtime que se usará para conectarse al almacén de datos. Puede usar los entornos Integration Runtime (autohospedado) (si el almacén de datos se encuentra en una red privada) o Azure Integration Runtime. Si no se especifica, se usará Azure Integration Runtime. | No |
Ejemplo:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.file.core.windows.net/",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
},
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Modelo heredado
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type debe establecerse en: AzureFileStorage. | Sí |
host | Especifique el punto de conexión de Azure Files como: -Si se usar la interfaz de usuario: especifique \\<storage name>.file.core.windows.net\<file service name> -Si se usa JSON: "host": "\\\\<storage name>.file.core.windows.net\\<file service name>" . |
Sí |
userid | Especifique el usuario para acceder a Azure Files como: -Si se usar la interfaz de usuario: especifique AZURE\<storage name> -Si se usa JSON: "userid": "AZURE\\<storage name>" . |
Sí |
password | Especifique la clave de acceso de almacenamiento. Marque este campo como SecureString para almacenarlo de forma segura en Data Factory o para hacer referencia a un secreto almacenado en Azure Key Vault. | Sí |
connectVia | El entorno Integration Runtime que se usará para conectarse al almacén de datos. Puede usar los entornos Integration Runtime (autohospedado) (si el almacén de datos se encuentra en una red privada) o Azure Integration Runtime. Si no se especifica, se usará Azure Integration Runtime. | No para el origen, sí para el receptor |
Ejemplo:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"host": "\\\\<storage name>.file.core.windows.net\\<file service name>",
"userid": "AZURE\\<storage name>",
"password": {
"type": "SecureString",
"value": "<storage access key>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propiedades del conjunto de datos
Si desea ver una lista completa de las secciones y propiedades disponibles para definir conjuntos de datos, consulte el artículo sobre conjuntos de datos.
Azure Data Factory admite los siguientes formatos de archivo. Consulte los artículos para conocer la configuración basada en el formato.
- Formato Avro
- Formato binario
- Formato de texto delimitado
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
Las propiedades siguientes se admiten para Azure Files en la configuración location
del conjunto de datos basado en formato:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type que se encuentra bajo location en el conjunto de datos debe estar establecida en AzureFileStorageLocation. |
Sí |
folderPath | Ruta de acceso a la carpeta. Si quiere usar el carácter comodín para filtrar la carpeta, omita este valor y especifique la configuración del origen de actividad. | No |
fileName | Nombre de archivo en la propiedad folderPath indicada. Si quiere usar el carácter comodín para filtrar los archivos, omita este valor y especifique la configuración del origen de actividad. | No |
Ejemplo:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<Azure File Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "AzureFileStorageLocation",
"folderPath": "root/folder/subfolder"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Propiedades de la actividad de copia
Si desea ver una lista completa de las secciones y propiedades disponibles para definir actividades, consulte el artículo sobre canalizaciones. En esta sección se proporciona una lista de las propiedades que el receptor y el origen de Azure Files admiten.
Azure Files como origen
Azure Data Factory admite los siguientes formatos de archivo. Consulte los artículos para conocer la configuración basada en el formato.
- Formato Avro
- Formato binario
- Formato de texto delimitado
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
Las propiedades siguientes se admiten para Azure Files en la configuración storeSettings
del origen de copia basado en formato:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type que se encuentra bajo storeSettings debe estar establecida en AzureFileStorageReadSettings. |
Sí |
Buscar los archivos que se van a copiar: | ||
OPCIÓN 1: ruta de acceso estática |
Copia de la ruta de acceso de archivo o carpeta especificada en el conjunto de datos. Si quiere copiar todos los archivos de una carpeta, especifique también wildcardFileName como * . |
|
OPCIÓN 2: prefijo de archivo - prefix |
Prefijo del nombre de archivo en el recurso compartido de archivos especificado que se configuró en el conjunto de datos para filtrar archivos de origen. Se seleccionan los archivos cuyo nombre empieza por fileshare_in_linked_service/this_prefix . Usa el filtro del lado de servicio para Azure Files, que proporciona un mejor rendimiento que un filtro de caracteres comodín. Esta característica no se admite cuando se usa un modelo de servicio vinculado heredado. |
No |
OPCIÓN 3: carácter comodín - wildcardFolderPath |
Ruta de acceso de carpeta con caracteres comodín para filtrar las carpetas de origen. Los caracteres comodín permitidos son: * (coincide con cero o más caracteres) y ? (coincide con cero o carácter individual); use ^ para el escape si el nombre real de la carpeta tiene un carácter comodín o este carácter de escape dentro. Ver más ejemplos en Ejemplos de filtros de carpetas y archivos. |
No |
OPCIÓN 3: carácter comodín - wildcardFileName |
Nombre de archivo con caracteres comodín en la propiedad folderPath o wildcardFolderPath indicada para filtrar los archivos de origen. Los caracteres comodín permitidos son: * (coincide con cero o más caracteres) y ? (coincide con cero o carácter individual); use ^ para el escape si el nombre real del archivo tiene un carácter comodín o este carácter de escape dentro. Ver más ejemplos en Ejemplos de filtros de carpetas y archivos. |
Sí |
OPCIÓN 4: una lista de archivos - fileListPath |
Indica que se copie un conjunto de archivos determinado. Apunte a un archivo de texto que incluya una lista de los archivos que quiere copiar, con un archivo por línea, que sea la ruta de acceso relativa a la ruta de acceso configurada en el conjunto de datos. Al utilizar esta opción, no especifique el nombre de archivo en el conjunto de datos. Ver más ejemplos en Ejemplos de lista de archivos. |
No |
Configuración adicional: | ||
recursive | Indica si los datos se leen de forma recursiva de las subcarpetas o solo de la carpeta especificada. Cuando recursive se establece en true y el receptor es un almacén basado en archivos, no se crea una carpeta o una subcarpeta vacía en el receptor. Los valores permitidos son: True (valor predeterminado) y False. Esta propiedad no se aplica al configurar fileListPath . |
No |
deleteFilesAfterCompletion | Indica si los archivos binarios se eliminarán del almacén de origen después de moverse correctamente al almacén de destino. Cada archivo se elimina individualmente, de modo que cuando se produzca un error en la actividad de copia, algunos archivos ya se habrán copiado al destino y se habrán eliminado del origen, mientras que otros seguirán aún en el almacén de origen. Esta propiedad solo es válida en el escenario de copia de archivos binarios. El valor predeterminado es false. |
No |
modifiedDatetimeStart | Filtro de archivos basado en el atributo: Última modificación. Los archivos se seleccionarán si la hora de la última modificación es mayor o igual que modifiedDatetimeStart y menor que modifiedDatetimeEnd . La hora se aplica a la zona horaria UTC en el formato "2018-12-01T05:00:00Z". Las propiedades pueden ser NULL, lo que significa que no se aplica ningún filtro de atributo de archivo al conjunto de datos. Cuando modifiedDatetimeStart tiene el valor de fecha y hora, pero modifiedDatetimeEnd es NULL, significa que se seleccionarán los archivos cuyo último atributo modificado sea mayor o igual que el valor de fecha y hora. Cuando modifiedDatetimeEnd tiene el valor de fecha y hora, pero modifiedDatetimeStart es NULL, significa que se seleccionarán los archivos cuyo último atributo modificado sea inferior al valor de fecha y hora.Esta propiedad no se aplica al configurar fileListPath . |
No |
modifiedDatetimeEnd | Igual que el anterior. | No |
enablePartitionDiscovery | En el caso de archivos con particiones, especifique si quiere analizar las particiones de la ruta de acceso del archivo y agregarlas como columnas de origen adicionales. Los valores permitidos son false (valor predeterminado) y true. |
No |
partitionRootPath | Cuando esté habilitada la detección de particiones, especifique la ruta de acceso raíz absoluta para poder leer las carpetas con particiones como columnas de datos. Si no se especifica, de forma predeterminada, - Cuando se usa la ruta de acceso de archivo en un conjunto de datos o una lista de archivos del origen, la ruta de acceso raíz de la partición es la ruta de acceso configurada en el conjunto de datos. - Cuando se usa el filtro de carpeta con caracteres comodín, la ruta de acceso raíz de la partición es la subruta antes del primer carácter comodín. Por ejemplo, supongamos que configura la ruta de acceso en el conjunto de datos como "root/folder/year=2020/month=08/day=27": - Si especifica la ruta de acceso raíz de la partición como "root/folder/year=2020", la actividad de copia generará dos columnas más, month y day , con el valor "08" y "27", respectivamente, además de las columnas de los archivos.- Si no se especifica la ruta de acceso raíz de la partición, no se generará ninguna columna adicional. |
No |
maxConcurrentConnections | Número máximo de conexiones simultáneas establecidas en el almacén de datos durante la ejecución de la actividad. Especifique un valor solo cuando quiera limitar las conexiones simultáneas. | No |
Ejemplo:
"activities":[
{
"name": "CopyFromAzureFileStorage",
"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": "AzureFileStorageReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Azure Files como receptor
Azure Data Factory admite los siguientes formatos de archivo. Consulte los artículos para conocer la configuración basada en el formato.
Las propiedades siguientes se admiten para Azure Files en la configuración storeSettings
del receptor de copia basado en formato:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type situada bajo storeSettings debe estar establecida en AzureFileStorageWriteSettings. |
Sí |
copyBehavior | Define el comportamiento de copia cuando el origen son archivos de un almacén de datos basados en archivos. Los valores permitidos son: - PreserveHierarchy (valor predeterminado): conserva la jerarquía de archivos en la carpeta de destino. La ruta de acceso relativa del archivo de origen que apunta a la carpeta de origen es idéntica a la ruta de acceso relativa del archivo de destino que apunta a la carpeta de destino. - FlattenHierarchy: todos los archivos de la carpeta de origen están en el primer nivel de la carpeta de destino. Los archivos de destino tienen nombres generados automáticamente. - MergeFiles: combina todos los archivos de la carpeta de origen en un archivo. Si se especifica el nombre del archivo, el nombre de archivo combinado es el nombre especificado. De lo contrario, es un nombre de archivo generado automáticamente. |
No |
maxConcurrentConnections | Número máximo de conexiones simultáneas establecidas en el almacén de datos durante la ejecución de la actividad. Especifique un valor solo cuando quiera limitar las conexiones simultáneas. | No |
Ejemplo:
"activities":[
{
"name": "CopyToAzureFileStorage",
"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": "AzureFileStorageWriteSettings",
"copyBehavior": "PreserveHierarchy"
}
}
}
}
]
Ejemplos de filtros de carpetas y archivos
Esta sección describe el comportamiento resultante de la ruta de acceso de la carpeta y el nombre de archivo con los filtros de carácter comodín.
folderPath | fileName | recursive | Resultado de estructura de carpeta de origen y filtro (se recuperan los archivos en negrita) |
---|---|---|---|
Folder* |
(vacío, usar el valor predeterminado) | false | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
(vacío, usar el valor predeterminado) | true | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
false | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
true | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Ejemplos de lista de archivos
En esta sección se describe el comportamiento resultante de usar la ruta de acceso de la lista de archivos en el origen de la actividad de copia.
Suponga que tiene la siguiente estructura de carpetas de origen y quiere copiar los archivos en negrita:
Estructura de origen de ejemplo | Contenido de FileListToCopy.txt | Configuración |
---|---|---|
root FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv Metadatos FileListToCopy.txt |
File1.csv Subfolder1/File3.csv Subfolder1/File5.csv |
En el conjunto de datos: - Ruta de acceso a la carpeta: root/FolderA En origen de la actividad de copia: - Ruta de acceso de la lista de archivos: root/Metadata/FileListToCopy.txt La ruta de acceso de la lista de archivos apunta a un archivo de texto en el mismo almacén de datos que incluye una lista de archivos que se quiere copiar, un archivo por línea con la ruta de acceso relativa a la ruta de acceso configurada en el conjunto de datos. |
Ejemplos de recursive y copyBehavior
En esta sección se describe el comportamiento resultante de la operación de copia para diferentes combinaciones de valores recursive y copyBehavior.
recursive | copyBehavior | Estructura de carpetas de origen | Destino resultante |
---|---|---|---|
true | preserveHierarchy | Folder1 Archivo1 Archivo2 Subfolder1 File3 File4 File5 |
La carpeta de destino Folder1 se crea con la misma estructura que el origen: Folder1 Archivo1 Archivo2 Subfolder1 File3 File4 File5. |
true | flattenHierarchy | Folder1 Archivo1 Archivo2 Subfolder1 File3 File4 File5 |
La carpeta de destino Folder1 se crea con la estructura siguiente: Folder1 nombre de archivo generado automáticamente para File1 nombre de archivo generado automáticamente para File2 nombre de archivo generado automáticamente para File3 nombre de archivo generado automáticamente para File4 nombre de archivo generado automáticamente para File5 |
true | mergeFiles | Folder1 Archivo1 Archivo2 Subfolder1 File3 File4 File5 |
La carpeta de destino Folder1 se crea con la estructura siguiente: Folder1 El contenido de File1 + File2 + File3 + File4 + File 5 se combina en un archivo con un nombre generado automáticamente |
false | preserveHierarchy | Folder1 Archivo1 Archivo2 Subfolder1 File3 File4 File5 |
La carpeta de destino Folder1 se crea con la estructura siguiente: Folder1 Archivo1 Archivo2 No se selecciona la subcarpeta Subfolder1, que contiene los archivos File3, File4 y File5. |
false | flattenHierarchy | Folder1 Archivo1 Archivo2 Subfolder1 File3 File4 File5 |
La carpeta de destino Folder1 se crea con la estructura siguiente: Folder1 nombre de archivo generado automáticamente para File1 nombre de archivo generado automáticamente para File2 No se selecciona la subcarpeta Subfolder1, que contiene los archivos File3, File4 y File5. |
false | mergeFiles | Folder1 Archivo1 Archivo2 Subfolder1 File3 File4 File5 |
La carpeta de destino Folder1 se crea con la estructura siguiente: Folder1 El contenido de File1 + File2 se combina en un archivo con un nombre de archivo generado automáticamente. nombre de archivo generado automáticamente para File1 No se selecciona la subcarpeta Subfolder1, que contiene los archivos File3, File4 y File5. |
Propiedades de la actividad de búsqueda
Para obtener información detallada sobre las propiedades, consulte Actividad de búsqueda.
Propiedades de la actividad GetMetadata
Para información detallada sobre las propiedades, consulte Actividad de obtención de metadatos.
Propiedades de la actividad de eliminación
Para información detallada sobre las propiedades, consulte Actividad de eliminación.
Modelos heredados
Nota
Estos modelos siguen siendo compatibles con versiones anteriores. Se recomienda usar de ahora en adelante el nuevo modelo que se menciona en las secciones anteriores; además, la interfaz de usuario de creación ha pasado a generar el nuevo modelo.
Modelo de conjunto de datos heredado
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type del conjunto de datos debe establecerse en: FileShare | Sí |
folderPath | Ruta de acceso a la carpeta. Se admite el filtro de comodín, los caracteres comodín permitidos son: * (coincide con cero o más caracteres) y ? (coincide con cero o carácter individual); use ^ para el escape si el nombre real de la carpeta tiene un carácter comodín o este carácter de escape dentro. Ejemplos: rootfolder/subfolder/ver más en Ejemplos de filtros de carpetas y archivos. |
Sí |
fileName | Filtro de nombre o de comodín para los archivos de la ruta "folderPath" especificada. Si no especifica ningún valor para esta propiedad, el conjunto de datos apunta a todos los archivos de la carpeta. Para filtrar, los caracteres comodín permitidos son: * (equivale a cero o a varios caracteres) y ? (equivale a cero o a un único carácter).- Ejemplo 1: "fileName": "*.csv" - Ejemplo 2: "fileName": "???20180427.txt" Use ^ como escape si el nombre de archivo real contiene un comodín o este carácter de escape.Cuando fileName no se especifica para un conjunto de datos de salida y preserveHierarchy no se determina en el receptor de la actividad, la actividad de copia generará automáticamente el nombre de archivo con el siguiente patrón: "Data.[GUID del identificador de la ejecución de actividad].[GUID si FlattenHierarchy].[formato, si está configurado].[compresión, si está configurada] "; por ejemplo, "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz". Si realiza una copia desde el origen tabular usando el nombre de la tabla en vez de la consulta, el patrón de nomenclatura es " [nombre de tabla].[formato].[compresión, si está configurada] "; por ejemplo, "miTabla.csv". |
No |
modifiedDatetimeStart | Filtro de archivos basado en el atributo: Última modificación. Los archivos se seleccionarán si la hora de la última modificación es mayor o igual que modifiedDatetimeStart y menor que modifiedDatetimeEnd . La hora se aplica a la zona horaria UTC en el formato "2018-12-01T05:00:00Z". Tenga en cuenta que el rendimiento general del movimiento de datos se ve afectado si habilita esta configuración cuando quiera filtrar archivos de grandes cantidades de archivos. Las propiedades pueden ser NULL, lo que significa que no se aplica ningún filtro de atributo de archivo al conjunto de datos. Cuando modifiedDatetimeStart tiene el valor de fecha y hora, pero modifiedDatetimeEnd es NULL, significa que se seleccionarán los archivos cuyo último atributo modificado sea mayor o igual que el valor de fecha y hora. Cuando modifiedDatetimeEnd tiene el valor de fecha y hora, pero modifiedDatetimeStart es NULL, significa que se seleccionarán los archivos cuyo último atributo modificado sea inferior al valor de fecha y hora. |
No |
modifiedDatetimeEnd | Filtro de archivos basado en el atributo: Última modificación. Los archivos se seleccionarán si la hora de la última modificación es mayor o igual que modifiedDatetimeStart y menor que modifiedDatetimeEnd . La hora se aplica a la zona horaria UTC en el formato "2018-12-01T05:00:00Z". Tenga en cuenta que el rendimiento general del movimiento de datos se ve afectado si habilita esta configuración cuando quiera filtrar archivos de grandes cantidades de archivos. Las propiedades pueden ser NULL, lo que significa que no se aplica ningún filtro de atributo de archivo al conjunto de datos. Cuando modifiedDatetimeStart tiene el valor de fecha y hora, pero modifiedDatetimeEnd es NULL, significa que se seleccionarán los archivos cuyo último atributo modificado sea mayor o igual que el valor de fecha y hora. Cuando modifiedDatetimeEnd tiene el valor de fecha y hora, pero modifiedDatetimeStart es NULL, significa que se seleccionarán los archivos cuyo último atributo modificado sea inferior al valor de fecha y hora. |
No |
format | Si desea copiar los archivos tal cual entre los almacenes basados en archivos (copia binaria), omita la sección de formato en las definiciones de los conjuntos de datos de entrada y salida. Si quiere analizar o generar archivos con un formato concreto, se admiten los siguientes tipos de formato de archivo: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat. Establezca la propiedad type de formato en uno de los siguientes valores. Para más información, consulte las secciones Formato de texto, Formato Json, Formato Avro, Formato Orc y Formato Parquet. |
No (solo para el escenario de copia binaria) |
compression | Especifique el tipo y el nivel de compresión de los datos. Para más información, consulte el artículo sobre códecs de compresión y formatos de archivo compatibles. Estos son los tipos que se admiten: GZip, Deflate, BZip2 y ZipDeflate. Estos son los niveles que se admiten: Optimal y Fastest. |
No |
Sugerencia
Para copiar todos los archivos en una carpeta, especifique solo folderPath.
Para copiar un único archivo con un nombre determinado, especifique folderPath con el elemento de carpeta y fileName con el nombre de archivo.
Para copiar un subconjunto de archivos en una carpeta, especifique folderPath con el elemento de carpeta y fileName con el filtro de comodín.
Nota
Si estaba usando la propiedad "fileFilter" para el filtro de archivos, esta todavía se admite como está, aunque se le sugiere que use la nueva funcionalidad de filtro agregada a "fileName" de ahora en adelante.
Ejemplo:
{
"name": "AzureFileStorageDataset",
"properties": {
"type": "FileShare",
"linkedServiceName":{
"referenceName": "<Azure File Storage linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "folder/subfolder/",
"fileName": "*",
"modifiedDatetimeStart": "2018-12-01T05:00:00Z",
"modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
"format": {
"type": "TextFormat",
"columnDelimiter": ",",
"rowDelimiter": "\n"
},
"compression": {
"type": "GZip",
"level": "Optimal"
}
}
}
}
Modelo de origen de actividad de copia heredada
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type del origen de la actividad de copia debe establecerse en: FileSystemSource | Sí |
recursive | Indica si los datos se leen de forma recursiva de las subcarpetas o solo de la carpeta especificada. Tenga en cuenta que cuando recursive se establezca en true y el receptor sea un almacén basado en archivos, la carpeta o subcarpeta vacías no se copiarán ni crearán en el receptor. Los valores permitidos son: True (valor predeterminado) y False |
No |
maxConcurrentConnections | Número máximo de conexiones simultáneas establecidas en el almacén de datos durante la ejecución de la actividad. Especifique un valor solo cuando quiera limitar las conexiones simultáneas. | No |
Ejemplo:
"activities":[
{
"name": "CopyFromAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure File Storage input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "FileSystemSource",
"recursive": true
},
"sink": {
"type": "<sink type>"
}
}
}
]
Modelo de receptor de actividad de copia heredada
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type del receptor de la actividad de copia debe establecerse en: FileSystemSink | Sí |
copyBehavior | Define el comportamiento de copia cuando el origen son archivos del almacén de datos basados en archivos. Los valores permitidos son: - PreserveHierarchy (valor predeterminado): conserva la jerarquía de archivos en la carpeta de destino. La ruta de acceso relativa del archivo de origen que apunta a la carpeta de origen es idéntica a la ruta de acceso relativa del archivo de destino que apunta a la carpeta de destino. - FlattenHierarchy: todos los archivos de la carpeta de origen están en el primer nivel de la carpeta de destino. Los archivos de destino tienen nombres generados automáticamente. - MergeFiles: combina todos los archivos de la carpeta de origen en un archivo. Si se especifica el nombre de archivo, el nombre de archivo combinado sería el nombre especificado; de lo contrario, sería el nombre de archivo generado automáticamente. |
No |
maxConcurrentConnections | Número máximo de conexiones simultáneas establecidas en el almacén de datos durante la ejecución de la actividad. Especifique un valor solo cuando quiera limitar las conexiones simultáneas. | No |
Ejemplo:
"activities":[
{
"name": "CopyToAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure File Storage output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "FileSystemSink",
"copyBehavior": "PreserveHierarchy"
}
}
}
]
Contenido relacionado
Para obtener una lista de almacenes de datos que la actividad de copia admite como orígenes y receptores, vea Almacenes de datos que se admiten.