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/-) | ① ② |
Actividad de búsqueda | ① ② |
① 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.
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 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.
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 SharePoint y seleccione el conector de SharePoint Online List.
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 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. | Sí |
siteUrl | Dirección URL del sitio de SharePoint Online: por ejemplo, https://contoso.sharepoint.com/sites/siteName . |
Sí |
servicePrincipalId | El Id. de aplicación (cliente) para la aplicación registrada en Microsoft Entra ID. | Sí |
servicePrincipalCredentialType | Especifique el tipo de credencial que se usará para la autenticación de entidad de servicio. Los valores permitidos son ServicePrincipalCert y ServicePrincipalKey . |
No |
Para ServicePrincipalCert | ||
servicePrincipalEmbeddedCert | Especifique el certificado codificado en base64 de la aplicación registrada en Microsoft Entra ID y asegúrese de que el tipo de contenido del certificado es PKCS #12. Marque este campo como SecureString para almacenarlo de forma segura, o bien haga referencia a un secreto almacenado en Azure Key Vault. Debe configurar las opciones de permisos que hacen referencia a este artículo. | No |
servicePrincipalEmbeddedCertPassword | Especifique la contraseña del certificado si el certificado está protegido por una. Marque este campo como SecureString para almacenarlo de forma segura, o bien haga referencia a un secreto almacenado en Azure Key Vault. | No |
Para ServicePrincipalKey | ||
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. Consulte esta sección para obtener más detalles, incluida la configuración de permisos. | No |
tenantId | Identificador del inquilino donde reside la aplicación. | Sí |
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 |
Nota:
Si usa la autenticación de clave de entidad de servicio, que se basa en Azure ACS (Access Control Services), se recomienda cambiar a la autenticación de certificados de entidad de servicio debido al plan de retirada de ACS.
Ejemplo 1: uso de la autenticación de claves de entidad de servicio
{
"name": "SharePointOnlineList",
"properties": {
"type": "SharePointOnlineList",
"typeProperties": {
"siteUrl": "<site URL>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalKey": {
"type": "SecureString",
"value": "<service principal key>"
},
"tenantId": "<tenant ID>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Ejemplo 2: uso de la autenticación de certificados de entidad de servicio
{
"name": "SharePointOnlineList",
"properties": {
"type": "SharePointOnlineList",
"typeProperties": {
"siteUrl": "<site URL>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalEmbeddedCert": {
"type": "SecureString",
"value": "<base64 encoded string of (.pfx) certificate data>"
},
"servicePrincipalEmbeddedCertPassword": {
"type": "SecureString",
"value": "<password of your certificate>"
},
"tenantId": "<tenant ID>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Concesión de permiso para usar la clave de entidad de servicio
El conector de lista de SharePoint Online usa la autenticación de entidad de servicio para conectarse a SharePoint. Siga estos pasos para configurarlo:
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
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.
Abra el vínculo del sitio de SharePoint Online. Por ejemplo, la dirección URL en el formato
https://<your-site-url>/_layouts/15/appinv.aspx
donde el marcador de posición<your-site-url>
es tu sitio web.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>
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.
Haga clic en "Trust It" (Confiar) para esta aplicación.
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. | Sí |
listName | Nombre de la lista de SharePoint Online. Tenga en cuenta que el apóstrofe (') no está permitido en los nombres de archivo. | Sí |
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. | Sí |
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.
Siga las indicaciones de la sección Concesión de permiso para usar la clave de entidad de servicio para crear una aplicación de Microsoft Entra y conceder permiso a SharePoint Online.
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.
- URL:
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, comohttps://[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)
- Base URL (URL base):
- 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 para cualquier destino del receptor compatible.
- Servicio vinculado HTTP:
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.
Contenido relacionado
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.