Actividad de obtención de metadatos de Azure Data Factory o Azure Synapse Analytics

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.

La actividad de obtención de metadatos se puede usar para recuperar los metadatos de cualquier dato en una canalización de Azure Data Factory o Synapse. Puede usar la salida de la actividad de obtención de metadatos en expresiones condicionales para realizar la validación o consumir los metadatos en actividades posteriores.

Creación de una actividad Obtener metadatos con la interfaz de usuario

Para usar una actividad Obtener metadatos en una canalización, complete los pasos siguientes:

  1. Busque Obtener metadatos en el panel "Actividades de canalización" y arrastre una actividad de error al lienzo de canalización.

  2. Seleccione la nueva actividad Obtener metadatos en el lienzo, si aún no está seleccionada, y su pestaña Configuración para editar los detalles.

  3. Elija un conjunto de datos o cree otro con el botón "Nuevo". A continuación, puede especificar opciones de filtro y agregar columnas a partir de los metadatos disponibles para el conjunto de datos.

    Shows the UI for a Get Metadata activity.

  4. Use la salida de la actividad como entrada para otra actividad, como una actividad Switch en este ejemplo. Puede hacer referencia a la salida de la actividad de metadatos en cualquier lugar en el que se admite contenido dinámico en la otra actividad.

    Shows the pipeline with a Switch activity added to handle the output of the Get Metadata activity.

  5. En el editor de contenido dinámico, seleccione la salida de la actividad Obtener metadatos para hacer referencia a ella en la otra actividad.

    Shows the dynamic content editor with the output of the Get Metadata activity as the dynamic content.

Funcionalidades admitidas

La actividad de obtención de metadatos toma un conjunto de datos como entrada y genera información de metadatos como salida. Actualmente, se admiten los siguientes conectores y los metadatos recuperables correspondientes. El tamaño máximo de los metadatos devueltos es de 4 MB.

Conectores compatibles

Almacenamiento de archivos

Conector/Metadatos itemName
(archivo/carpeta)
itemType
(archivo/carpeta)
tamaño
(archivo)
created
(archivo/carpeta)
lastModified1
(archivo/carpeta)
childItems
(carpeta)
contentMD5
(archivo)
structure2
(archivo)
columnCount2
(archivo)
exists3
(archivo/carpeta)
Amazon S3 √/√ √/√ x/x √/√ x √/√
Almacenamiento compatible con Amazon S3 √/√ √/√ x/x √/√ x √/√
Google Cloud Storage √/√ √/√ x/x √/√ x √/√
Oracle Cloud Storage √/√ √/√ x/x √/√ x √/√
Almacenamiento de blobs de Azure √/√ √/√ x/x √/√ √/√
Azure Data Lake Storage Gen1 √/√ √/√ x/x √/√ x √/√
Azure Data Lake Storage Gen2 √/√ √/√ x/x √/√ √/√
Archivos de Azure √/√ √/√ √/√ √/√ x √/√
Microsoft Fabric Lakehouse √/√ √/√ x/x √/√ √/√
Sistema de archivos √/√ √/√ √/√ √/√ x √/√
SFTP √/√ √/√ x/x √/√ x √/√
FTP √/√ √/√ x/x x/x x √/√

1 Metadatos lastModified:

  • En el caso de Amazon S3, almacenamiento compatible con Amazon S3, Google Cloud Storage and Oracle Cloud Storage, lastModified se aplica al cubo y a la clave, pero no a la carpeta virtual, y exists se aplica al cubo y a la clave, pero no al prefijo ni a la carpeta virtual.
  • En el caso de Azure Blob Storage, lastModified se aplica al contenedor y al blob, pero no a la carpeta virtual.

2 Los metadatos structure y columnCount no se admiten cuando se obtienen metadatos de archivos binarios, JSON o XML.

3 Metadatos exists: en el caso de Amazon S3, almacenamiento compatible con Amazon S3, Google Cloud Storage y Oracle Cloud Storage, exists se aplica al cubo y a la clave, pero no al prefijo ni a la carpeta virtual.

Tenga en cuenta lo siguiente:

  • Cuando use la actividad Obtener metadatos en una carpeta, asegúrese de tener el permiso LIST/EXECUTE en la carpeta en cuestión.

  • No se admite el filtro de carácter comodín en carpetas o archivos para la actividad de obtención de metadatos.

  • Filtro modifiedDatetimeStart y modifiedDatetimeEnd establecido en el conector:

    • Estas dos propiedades se usan para filtrar los elementos secundarios al obtener los metadatos de una carpeta. No se aplica cuando se obtienen de un archivo.
    • Cuando se usa este tipo de filtro, childItems en la salida incluye solo los archivos que se modifican dentro del rango especificado, pero no las carpetas.
    • Para aplicar este filtro, la actividad GetMetadata enumerará todos los archivos de la carpeta especificada y comprobará la hora modificada. Evite apuntar a una carpeta con un gran número de archivos aunque el recuento de archivos completos esperado sea pequeño.

Base de datos relacional

Conector/Metadatos structure columnCount exists
Amazon RDS para SQL Server
Azure SQL Database
Instancia administrada de Azure SQL
Azure Synapse Analytics
SQL Server

Opciones de metadatos

Puede especificar los siguientes tipos de metadatos en la lista de campos de la actividad de obtención de metadatos para recuperar la información correspondiente:

Tipo de metadatos Descripción
itemName Nombre del archivo o la carpeta.
itemType Tipo del archivo o la carpeta. El valor devuelto es File o Folder.
tamaño Tamaño del archivo, en bytes. Se aplica solo a los archivos.
created Fecha y hora de creación del archivo o la carpeta.
lastModified Fecha y hora de la última modificación del archivo o la carpeta.
childItems Lista de subcarpetas y archivos dentro de la carpeta determinada. Se aplica solo a las carpetas. El valor devuelto es una lista del nombre y el tipo de cada elemento secundario.
contentMD5 MD5 del archivo. Se aplica solo a los archivos.
structure Estructura de datos del archivo o la tabla de base de datos relacional. El valor devuelto es una lista de nombres de columna y tipos de columna.
columnCount Número de columnas en el archivo o la tabla relacional.
exists Si un archivo, carpeta o tabla existe. Si se especifica exists en la lista de campos de obtención de metadatos, la actividad no producirá un error, aunque el archivo, la carpeta o la tabla no existan. En su lugar, se devuelve exists: false en la salida.

Sugerencia

Si desea validar que existe un archivo, una carpeta o una tabla, especifique exists en la lista de campos de la actividad de obtención de metadatos. A continuación, puede comprobar el resultado exists: true/false en la salida de la actividad. Si exists no se especifica en la lista de campos, se producirá un error en la actividad de obtención de metadatos si no se encuentra el objeto.

Nota

Si obtiene metadatos de almacenes de archivos y configura modifiedDatetimeStart o modifiedDatetimeEnd, el elemento childItems de la salida solo incluye los archivos de la ruta especificada que tengan una hora de última modificación que se encuentre dentro del intervalo especificado. No se incluyen los elementos de las subcarpetas.

Nota

Para que la lista de campos de estructura proporcione la estructura de datos real de los conjuntos de datos con formato de texto delimitado y Excel, debe habilitar la propiedad First Row as Header, que solo es compatible con estos orígenes de datos.

Sintaxis

Actividad de obtención de metadatos

{
    "name":"MyActivity",
    "type":"GetMetadata",
    "dependsOn":[

    ],
    "policy":{
        "timeout":"7.00:00:00",
        "retry":0,
        "retryIntervalInSeconds":30,
        "secureOutput":false,
        "secureInput":false
    },
    "userProperties":[

    ],
    "typeProperties":{
        "dataset":{
            "referenceName":"MyDataset",
            "type":"DatasetReference"
        },
        "fieldList":[
            "size",
            "lastModified",
            "structure"
        ],
        "storeSettings":{
            "type":"AzureBlobStorageReadSettings"
        },
        "formatSettings":{
            "type":"JsonReadSettings"
        }
    }
}

Dataset

{
    "name":"MyDataset",
    "properties":{
        "linkedServiceName":{
            "referenceName":"AzureStorageLinkedService",
            "type":"LinkedServiceReference"
        },
        "annotations":[

        ],
        "type":"Json",
        "typeProperties":{
            "location":{
                "type":"AzureBlobStorageLocation",
                "fileName":"file.json",
                "folderPath":"folder",
                "container":"container"
            }
        }
    }
}

Propiedades de tipo

Actualmente, la actividad de obtención de metadatos puede capturar los siguientes tipos de información de metadatos:

Propiedad Descripción Obligatorio
fieldList Los tipos de información de metadatos necesarios. Para más información sobre los metadatos admitidos, consulte la sección Opciones de metadatos de este artículo.
dataset Conjunto de datos de referencia cuyos metadatos debe recuperar la actividad de obtención de metadatos. Consulte la secciónCapacidades para obtener información sobre los conectores admitidos. Consulte los temas específicos del conector para obtener información detallada sobre la sintaxis del conjunto de datos.
formatSettings Se aplica cuando se usa el tipo de formato dataset. No
storeSettings Se aplica cuando se usa el tipo de formato dataset. No

Salida de ejemplo

Los resultados de la obtención de metadatos se muestran en la salida de la actividad. A continuación se muestran dos ejemplos que muestran amplias opciones de metadatos. Para utilizar los resultados en una actividad posterior, utilice este patrón: @{activity('MyGetMetadataActivity').output.itemName}.

Obtener los metadatos de un archivo

{
  "exists": true,
  "itemName": "test.csv",
  "itemType": "File",
  "size": 104857600,
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "contentMD5": "cMauY+Kz5zDm3eWa9VpoyQ==",
  "structure": [
    {
        "name": "id",
        "type": "Int64"
    },
    {
        "name": "name",
        "type": "String"
    }
  ],
  "columnCount": 2
}

Obtener los metadatos de una carpeta

{
  "exists": true,
  "itemName": "testFolder",
  "itemType": "Folder",
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "childItems": [
    {
      "name": "test.avro",
      "type": "File"
    },
    {
      "name": "folder hello",
      "type": "Folder"
    }
  ]
}

Obtenga información sobre otras actividades de flujo de control admitidas: