Copia de datos de una lista de SharePoint Online mediante 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.

En este artículo se resume el uso de la actividad de copia en canalizaciones de Azure Data Factory y Azure Synapse para copiar datos desde SharePoint Online List. El artículo se basa en Actividad de copia, en el que se ofrece información general acerca de la actividad de copia.

Funcionalidades admitidas

Este conector de lista de SharePoint Online es compatible con las siguientes funcionalidades:

Funcionalidades admitidas IR
Actividad de copia (origen/-) 7,7
Actividad de búsqueda 7,7

① Azure Integration Runtime ② Entorno de ejecución de integración autohospedado

Para obtener una lista de los almacenes de datos que se admiten como orígenes o receptores, consulte la tabla de almacenes de datos admitidos.

En concreto, este conector de lista de SharePoint Online usa la autenticación de entidad de servicio y recupera los datos mediante el protocolo OData.

Sugerencia

Este conector permite copiar datos de una lista de SharePoint Online, pero no de un archivo. Aprenda a copiar un archivo en la sección Copia de un archivo de SharePoint Online.

Prerrequisitos

El conector de lista de SharePoint Online usa la autenticación de entidad de servicio para conectarse a SharePoint. Siga estos pasos para configurarlo:

  1. Registro de una aplicación en la Plataforma de identidad de Microsoft. Para aprender cómo, consulte Inicio rápido: Registrar una aplicación con la plataforma de identidad de Microsoft. Anote estos valores; los usará para definir el servicio vinculado:

    • Identificador de aplicación
    • Clave de la aplicación
    • Id. de inquilino
  2. Siga los pasos siguientes para conceder permiso para el sitio de SharePoint Online a la aplicación registrada. Para ello, necesita un rol de administrador de sitio.

    1. Abra el vínculo del sitio de SharePoint Online, por ejemplo https://[your_site_url]/_layouts/15/appinv.aspx (reemplace la dirección URL del sitio).

    2. Busque el identificador de la aplicación que registró, rellene los campos vacíos y haga clic en "Create" (Crear).

      • App Domain (Dominio de aplicación): contoso.com

      • Redirect URL (Dirección URL de redireccionamiento): https://www.contoso.com

      • Permission Request XML (XML de solicitud de permiso):

        <AppPermissionRequests AllowAppOnlyPolicy="true">
            <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read"/>
        </AppPermissionRequests>
        

        Grant SharePoint Online site permission to your registered application when you have site admin role.

      Nota:

      En el contexto de configuración del conector de SharePoint, "Dominio de aplicación" y "Dirección URL de redireccionamiento" hacen referencia a la aplicación de SharePoint que ha registrado en Microsoft Entra ID para permitir el acceso a los datos de SharePoint. "Dominio de aplicación" es el dominio donde se hospeda el sitio de SharePoint. Por ejemplo, si el sitio de SharePoint se encuentra en "https://contoso.sharepoint.com"", "Dominio de aplicación" sería "contoso.sharepoint.com". "Dirección URL de redireccionamiento" es la dirección URL a la que la aplicación de SharePoint realizará el redireccionamiento después de que el usuario se haya autenticado y haya concedido permisos a la aplicación. Esta dirección URL debe ser una página en el sitio de SharePoint, para la que la aplicación tiene permiso de acceso. Por ejemplo, podría utilizar la dirección URL de una página que muestra una lista de archivos en una biblioteca o una página que muestra el contenido de un documento.

    3. Haga clic en "Trust It" (Confiar) para esta aplicación.

Introducción

Para realizar la actividad de copia con una canalización, puede usar una de los siguientes herramientas o SDK:

Creación de un servicio vinculado a SharePoint Online List mediante la interfaz de usuario

Siga estos pasos para crear un servicio vinculado a SharePoint Online List en la interfaz de usuario de Azure Portal.

  1. 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:

  2. Busque SharePoint y seleccione el conector de SharePoint Online List.

    Screenshot of the SharePoint Online List connector.

  3. Configure los detalles del servicio, pruebe la conexión y cree el nuevo servicio vinculado.

    Screenshot of linked service configuration for a SharePoint Online List.

Detalles de configuración del conector

En las secciones siguientes se proporcionan detalles sobre las propiedades que puede usar para definir entidades específicas del conector de lista de SharePoint Online.

Propiedades del servicio vinculado

Las siguientes propiedades son compatibles con un servicio vinculado de lista de SharePoint Online:

Propiedad Descripción Obligatorio
type La propiedad type debe establecerse en: SharePointOnlineList.
siteUrl Dirección URL del sitio de SharePoint Online: por ejemplo, https://contoso.sharepoint.com/sites/siteName.
servicePrincipalId El Id. de aplicación (cliente) para la aplicación registrada en Microsoft Entra ID. Consulte Requisitos previos para obtener más detalles, incluida la configuración de permisos.
servicePrincipalKey La clave de la aplicación. Marque este campo como SecureString para almacenarlo de forma segura, o bien haga referencia a un secreto almacenado en Azure Key Vault.
tenantId Identificador del inquilino donde reside la aplicación.
connectVia Instancia de Integration Runtime que se usará para conectarse al almacén de datos. Si no se especifica, se usa el valor predeterminado de Azure Integration Runtime. No

Ejemplo:

{
    "name": "SharePointOnlineList",
    "properties": {
        "type": "SharePointOnlineList",
        "typeProperties": {
            "siteUrl": "<site URL>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenantId": "<tenant ID>"
        }
    }
}

Propiedades del conjunto de datos

Para ver una lista completa de las secciones y propiedades disponibles para definir conjuntos de datos, consulte Conjuntos de datos y servicios vinculados. En la sección siguiente se proporciona una lista de las propiedades que admite el conjunto de datos de la tabla de SAP.

Propiedad Descripción Obligatorio
type La propiedad type del conjunto de datos debe establecerse en SharePointOnlineLResource.
listName Nombre de la lista de SharePoint Online. Tenga en cuenta que el apóstrofe (') no está permitido en los nombres de archivo.

Ejemplo

{
    "name": "SharePointOnlineListDataset",
    "properties":
    {
        "type": "SharePointOnlineListResource",
        "linkedServiceName": {
            "referenceName": "<SharePoint Online List linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties":
        {
            "listName": "<name of the list>"
        }
    }
}

Propiedades de la actividad de copia

Para ver una lista completa de las secciones y propiedades que hay disponibles para definir actividades, consulte Canalizaciones. En la sección siguiente se incluye una lista de las propiedades que admite el origen de lista de SharePoint Online.

Lista de SharePoint Online como origen

Para copiar datos de la lista de SharePoint Online, se admiten las siguientes propiedades en la sección source de la actividad de copia:

Propiedad Descripción Obligatorio
type La propiedad type del origen de la actividad de copia debe establecerse en SharePointOnlineListSource.
Query Opciones de consulta de OData personalizadas para filtrar datos. Ejemplo: "$top=10&$select=Title,Number". No
httpRequestTimeout El tiempo (en segundos) que la solicitud HTTP espera para obtener una respuesta. El valor predeterminado es 300 (5 minutos). No

Ejemplo

"activities":[
    {
        "name": "CopyFromSharePointOnlineList",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SharePoint Online List input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SharePointOnlineListSource",
                "query": "<OData query e.g. $top=10&$select=Title,Number>"
            }, 
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Nota

No es posible seleccionar más de una opción de tipo de datos para un origen de la lista de SharePoint Online.

Asignación de tipos de datos para la lista de SharePoint Online

Cuando se copian datos de una lista de SharePoint Online, se usan las siguientes asignaciones entre los tipos de datos de la lista de SharePoint Online y los tipos de datos provisionales usados internamente por el servicio.

Tipo de datos de SharePoint Online Tipo de datos de OData Tipo de datos provisional
Línea de texto única Edm.String String
Varias líneas de texto Edm.String String
Opción (menú para elegir) Edm.String String
Número (1, 1,0, 100) Edm.Double Double
Moneda ($, ¥, €) Edm.Double Double
Fecha y hora Edm.DateTime DateTime
Búsqueda (información que ya hay en el sitio) Edm.Int32 Int32
Sí/no (casilla) Edm.Boolean Boolean
Persona o grupo Edm.Int32 Int32
Hipervínculo o imagen Edm.String String
Calculado (cálculo basado en otras columnas) Edm.String / Edm.Double / Edm.DateTime / Edm.Boolean String/Double/DateTime/Boolean
Datos adjuntos No compatible
Resultado de tarea No compatible
Datos externos No compatible
Metadatos administrados No compatible

Copia de un archivo de SharePoint Online

Puede copiar un archivo de SharePoint Online si utiliza una actividad web para autenticar y obtener el token de acceso de SPO y, a continuación, pasa a una actividad de copia posterior para copiar los datos con el conector HTTP como origen.

sharepoint copy file flow

  1. Siga las indicaciones de la sección Prerrequisitos para crear una aplicación de Microsoft Entra y conceder permiso a SharePoint Online.

  2. Cree una actividad web para obtener el token de acceso de SharePoint Online:

    • URL: https://accounts.accesscontrol.windows.net/[Tenant-ID]/tokens/OAuth/2. Reemplace el identificador de inquilino.
    • Método: POST
    • Encabezados:
      • Content-Type: application/x-www-form-urlencoded
    • Cuerpo: grant_type=client_credentials&client_id=[Client-ID]@[Tenant-ID]&client_secret=[Client-Secret]&resource=00000003-0000-0ff1-ce00-000000000000/[Tenant-Name].sharepoint.com@[Tenant-ID]. Reemplace el identificador de cliente (identificador de aplicación), el secreto de cliente (clave de aplicación), el identificador de inquilino y el nombre de inquilino (del inquilino de SharePoint).

    Precaución

    Establezca la opción Secure Output (Salida segura) en true en la actividad web para evitar que el valor de token se registre como texto sin formato. Todas las actividades adicionales que consuman este valor deben tener la opción Entrada segura establecida en true.

  3. Encadene con una actividad de copia utilizando el conector HTTP como origen para copiar el contenido del archivo de SharePoint Online:

    • Servicio vinculado HTTP:
      • Base URL (URL base): https://[site-url]/_api/web/GetFileByServerRelativeUrl('[relative-path-to-file]')/$value. Reemplace la dirección URL del sitio y la ruta de acceso relativa al archivo. Asegúrese de incluir la dirección URL del sitio de SharePoint junto con el nombre de dominio, como https://[sharepoint-domain-name].sharepoint.com/sites/[sharepoint-site]/_api/web/GetFileByServerRelativeUrl('/sites/[sharepoint-site]/[relative-path-to-file]')/$value.
      • Authentication type (Tipo de autenticación): Anonymous (Anónimos) (para usar el token de portador configurado en el origen de la actividad de copia más adelante)
    • Conjunto de datos: elija el formato que desee. Para copiar el archivo tal cual, seleccione el tipo binario.
    • Origen de actividad de copia:
      • Request method (Método de solicitud): GET
      • Additional header (Encabezado adicional): use la siguiente expresión @{concat('Authorization: Bearer ', activity('<Web-activity-name>').output.access_token)}, que usa el token de portador generado por la actividad web ascendente como encabezado de autorización. Reemplace el nombre de la actividad web.
    • Configure el receptor de la actividad de copia como de costumbre.

Nota:

Incluso si una aplicación de Microsoft Entra tiene permisos FullControl en SharePoint Online, no puede copiar archivos de las bibliotecas de documentos con IRM habilitado.

Propiedades de la actividad de búsqueda

Para obtener información detallada sobre las propiedades, consulte Actividad de búsqueda.

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.