Copiar dados da Lista do SharePoint Online usando o Azure Data FactoryCopy data from SharePoint Online List by using Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Este artigo descreve como usar a Atividade de Cópia no Azure Data Factory para copiar dados da Lista do SharePoint Online.This article outlines how to use Copy Activity in Azure Data Factory to copy data from SharePoint Online List. O artigo baseia-se em Atividade de Cópia no Azure Data Factory, que apresenta uma visão geral da Atividade de Cópia.The article builds on Copy Activity in Azure Data Factory, which presents a general overview of Copy Activity.

Funcionalidades com suporteSupported capabilities

Este conector da Lista do SharePoint Online é compatível com as seguintes atividades:This SharePoint Online List connector is supported for the following activities:

Você pode copiar dados da Lista do SharePoint Online para qualquer armazenamento de dados do coletor com suporte.You can copy data from SharePoint Online List to any supported sink data store. Para obter uma lista de armazenamentos de dados que o Copy Activity suporta como fontes e coletores, consulte Armazenamentos de dados e formatos compatíveis.For a list of data stores that Copy Activity supports as sources and sinks, see Supported data stores and formats.

Especificamente, esse conector da Lista do SharePoint Online usa a autenticação da entidade de serviço e recupera dados por meio do protocolo OData.Specifically, this SharePoint List Online connector uses service principal authentication and retrieves data via OData protocol.

Dica

Este conector suporta a cópia de dados da Lista do SharePoint Online, mas não do arquivo.This connector supports copying data from SharePoint Online List but not file. Saiba como copiar arquivo na seção Copiar arquivo do SharePoint Online.Learn how to copy file from Copy file from SharePoint Online section.

Pré-requisitosPrerequisites

Esse conector da Lista do SharePoint Online usa a autenticação da entidade de serviço para se conectar ao SharePoint.The SharePoint List Online connector uses service principal authentication to connect to SharePoint. Siga estas etapas para configurá-lo:Follow these steps to set it up:

  1. Registre uma entidade de aplicativo no Azure Active Directory (Azure AD) seguindo Registre o aplicativo com um locatário do Azure AD.Register an application entity in Azure Active Directory (Azure AD) by following Register your application with an Azure AD tenant. Anote os seguintes valores, que são usados para definir o serviço vinculado:Make note of the following values, which you use to define the linked service:

    • ID do aplicativoApplication ID
    • Chave do aplicativoApplication key
    • ID do locatárioTenant ID
  2. Conceda permissão de site do SharePoint Online para o aplicativo registrado:Grant SharePoint Online site permission to your registered application:

    Observação

    Esta operação requer a permissão do proprietário do site do SharePoint Online.This operation requires SharePoint Online site owner permission. Você pode encontrar o proprietário acessando a home page do site -> clique no “X membros” no canto direito -> verifique quem tem a função de “Proprietário”.You can find the owner by going to the site home page -> click the "X members" in the right corner -> check who has the "Owner" role.

    1. Abra o link do site do SharePoint Online; por exemplo, https://[your_site_url]/_layouts/15/appinv.aspx (substitua a URL do site).Open SharePoint Online site link e.g. https://[your_site_url]/_layouts/15/appinv.aspx (replace the site URL).

    2. Pesquise a ID do aplicativo que você registrou, preencha os campos vazios e clique em “Criar”.Search the application ID you registered, fill the empty fields, and click "Create".

      • Domínio do aplicativo: localhost.comApp Domain: localhost.com
      • URL de redirecionamento: https://www.localhost.comRedirect URL: https://www.localhost.com
      • XML de solicitação de permissão:Permission Request XML:
      <AppPermissionRequests AllowAppOnlyPolicy="true">
          <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read"/>
      </AppPermissionRequests>
      

      permissão de concessão do sharepoint

    3. Clique em “Confie” para este aplicativo.Click "Trust It" for this app.

IntroduçãoGet started

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:

As seções a seguir fornecem detalhes sobre propriedades que você pode usar para definir entidades do Data Factory específicas ao conector da Lista do SharePoint Online.The following sections provide details about properties you can use to define Data Factory entities that are specific to SharePoint Online List connector.

Propriedades do serviço vinculadoLinked service properties

As propriedades a seguir são compatíveis com o serviço vinculado da Lista do SharePoint Online:The following properties are supported for an SharePoint Online List linked service:

PropriedadeProperty DescriçãoDescription NecessárioRequired
typetype A propriedade de tipo deve ser definida como:  SharePointOnlineList.The type property must be set to: SharePointOnlineList. SimYes
siteUrlsiteUrl A URL do site do SharePoint Online: por exemplo, https://contoso.sharepoint.com/sites/siteName.The SharePoint Online site url, e.g. https://contoso.sharepoint.com/sites/siteName. SimYes
servicePrincipalIdservicePrincipalId A ID do Aplicativo (cliente) do aplicativo registrado no Azure Active Directory.The Application (client) ID of the application registered in Azure Active Directory. SimYes
servicePrincipalKeyservicePrincipalKey A chave do aplicativo.The application's key. Marque esse campo como SecureString para armazená-lo com segurança no Data Factory ou referencie um segredo armazenado no Cofre de Chaves do Azure.Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. SimYes
tenantIdtenantId O ID do locatário em que o aplicativo reside.The tenant ID under which your application resides. SimYes
connectViaconnectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados.The Integration Runtime to use to connect to the data store. Saiba mais em Pré-requisitos, anteriormente neste artigo.Learn more from Prerequisites, earlier in this article. Se não especificado, o Azure Integration Runtime padrão será usado.If not specified, the default Azure Integration Runtime is used. NãoNo

Exemplo:Example:

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

Propriedades do conjunto de dadosDataset properties

Para obter uma lista completa de seções e propriedades disponíveis para definição de conjuntos de dados, consulte Conjuntos de dados e serviços vinculados.For a full list of sections and properties that are available for defining datasets, see Datasets and linked services. A seção a seguir fornece uma lista das propriedades compatíveis pelo conjunto de dados da tabela do SAP.The following section provides a list of the properties supported by the SAP table dataset.

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade tipo do conjunto de dados deve ser definida como SharePointOnlineLResource.The type property of the dataset must be set to SharePointOnlineLResource. SimYes
listNamelistName O nome da Lista do SharePoint Online.The name of the SharePoint Online List. SimYes

ExemploExample

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

Propriedades da Atividade de CópiaCopy Activity properties

Para obter uma lista completa de seções e propriedades que estão disponíveis para definir atividades, consulte Pipelines.For a full list of sections and properties that are available for defining activities, see Pipelines. A seção a seguir fornece uma lista das propriedades compatíveis pela origem da Lista do SharePoint Online.The following section provides a list of the properties supported by the SharePoint Online List source.

Lista do SharePoint Online como origemSharePoint Online List as source

Para a cópia de dados da Lista do SharePoint Online, as propriedades a seguir na seção de origem da Atividade de Cópia são compatíveis:To copy data from SharePoint Online List, the following properties are supported in the Copy Activity source section:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade tipo da origem da Atividade de Cópia deve ser definida como SharePointOnlineListSource.The type property of the Copy Activity source must be set to SharePointOnlineListSource. SimYes
Consultaquery Opções personalizadas de consulta do OData para filtrar dados.Custom OData query options for filtering data. Exemplo: "$top=10&$select=Title,Number".Example: "$top=10&$select=Title,Number". NãoNo
httpRequestTimeouthttpRequestTimeout O tempo limite (em segundos) para a solicitação HTTP obter uma resposta.The timeout (in second) for the HTTP request to get a response. O padrão é 300 (5 minutos).Default is 300 (5 minutes). NãoNo

ExemploExample

"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>"
            }
        }
    }
]

Mapeamento do tipo de dados para a Lista do SharePoint OnlineData type mapping for SharePoint Online List

Ao copiar dados da Lista do SharePoint Online, os seguintes mapeamentos são usados entre o tipo de dados da Lista do SharePoint Online e o tipo de dados provisórios do Azure Data Factory.When you copy data from SharePoint Online List, the following mappings are used between SharePoint Online List data types and Azure Data Factory interim data types.

Tipo de dados do SharePoint OnlineSharePoint Online data type Tipo de dados do ODataOData data type Tipo de dados provisório do Azure Data FactoryAzure Data Factory interim data type
Linha única de textoSingle line of text Edm.StringEdm.String StringString
Várias linhas de textoMultiple lines of text Edm.StringEdm.String StringString
Escolha (menu para escolher)Choice (menu to choose from) Edm.StringEdm.String StringString
Número (1, 1,0, 100)Number (1, 1.0, 100) Edm.DoubleEdm.Double DoubleDouble
Moeda ($, ¥, €)Currency ($, ¥, €) Edm.DoubleEdm.Double DoubleDouble
Data e horaDate and Time Edm.DateTimeEdm.DateTime DatetimeDateTime
Pesquisa (informações já presentes nesse site)Lookup (information already on this site) Edm.Int32Edm.Int32 Int32Int32
Sim/Não (caixa de seleção)Yes/No (check box) Edm.BooleanEdm.Boolean BooleanBoolean
Pessoa ou GrupoPerson or Group Edm.Int32Edm.Int32 Int32Int32
Hiperlink ou ImagemHyperlink or Picture Edm.StringEdm.String StringString
Calculado (cálculo baseado em outras colunas)Calculated (calculation based on other columns) Edm.String/Edm.Double/Edm.DateTime/Edm.BooleanEdm.String / Edm.Double / Edm.DateTime / Edm.Boolean String/Double/DateTime/BooleanString / Double / DateTime / Boolean
AnexoAttachment Sem suporteNot supported
Resultado da tarefaTask Outcome Sem suporteNot supported
Dados externosExternal Data Sem suporteNot supported
Metadados gerenciadoManaged Metadata Sem suporteNot supported

Copiar arquivo do SharePoint OnlineCopy file from SharePoint Online

Você pode copiar o arquivo do SharePoint Online usando atividade da Web para autenticar e obter o token de acesso do SPO, passando para a Atividade de cópia subsequente para copiar dados com o conector HTTP como origem.You can copy file from SharePoint Online by using Web activity to authenticate and grab access token from SPO, then passing to subsequent Copy activity to copy data with HTTP connector as source.

fluxo de arquivos de cópia do sharepoint

  1. Siga a seção de Pré-requisitos para criar o aplicativo do AAD e conceder permissão ao SharePoint Online.Follow the Prerequisites section to create AAD application and grant permission to SharePoint Online.

  2. Crie um Atividades da Web para obter o token de acesso do SharePoint Online:Create a Web Activity to get the access token from SharePoint Online:

    • URL: https://accounts.accesscontrol.windows.net/[Tenant-ID]/tokens/OAuth/2.URL: https://accounts.accesscontrol.windows.net/[Tenant-ID]/tokens/OAuth/2. Substitua a ID do locatário.Replace the tenant ID.
    • Método: POSTMethod: POST
    • Cabeçalhos:Headers:
      • Tipo de conteúdo: application/x-www-form-urlencodedContent-Type: application/x-www-form-urlencoded
    • Corpo: 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].Body: 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]. Substitua a ID do cliente, o segredo do cliente, o ID do locatário e o nome do locatário.Replace the client ID, client secret, tenant ID and tenant name.

    Cuidado

    Defina a opção Saída segura como verdadeira na atividade da Web para impedir que o valor do token seja registrado em texto sem formatação.Set the Secure Output option to true in Web activity to prevent the token value from being logged in plain text. Qualquer outra atividade que consumir esse valor deve ter a opção de Entrada segura definida como verdadeira.Any further activities that consume this value should have their Secure Input option set to true.

  3. Cadeia com uma Atividade de cópia com o conector HTTP como origem para copiar o conteúdo do arquivo do SharePoint Online:Chain with a Copy activity with HTTP connector as source to copy SharePoint Online file content:

    • Serviço vinculado HTTP:HTTP linked service:
      • URL base: https://[site-url]/_api/web/GetFileByServerRelativeUrl('[relative-path-to-file]')/$value.Base URL: https://[site-url]/_api/web/GetFileByServerRelativeUrl('[relative-path-to-file]')/$value. Substitua a URL do site e o caminho relativo para o arquivo.Replace the site URL and relative path to file. Amostra de caminho relativo ao arquivo como /sites/site2/Shared Documents/TestBook.xlsx.Sample relative path to file as /sites/site2/Shared Documents/TestBook.xlsx.
      • Tipo de autenticação: Anônimo (para usar o token de Portador configurado na origem da atividade de cópia posteriormente)Authentication type: Anonymous (to use the Bearer token configured in copy activity source later)
    • Conjunto de dados: escolha o formato desejado.Dataset: choose the format you want. Para copiar o arquivo como ele está, selecione o tipo “Binário”.To copy file as-is, select "Binary" type.
    • Origem da atividade de cópia:Copy activity source:
      • Método de solicitação: GETRequest method: GET
      • Cabeçalho adicional: use a expressão a seguir@{concat('Authorization: Bearer ', activity('<Web-activity-name>').output.access_token)}, que usa o token de Portador gerado pela atividade da Web upstream como cabeçalho de autorização.Additional header: use the following expression@{concat('Authorization: Bearer ', activity('<Web-activity-name>').output.access_token)}, which uses the Bearer token generated by the upstream Web activity as authorization header. Substitua o nome da atividade da Web.Replace the Web activity name.
    • Configure o coletor de atividades de cópia como de costume.Configure the copy activity sink as usual.

Pesquisar propriedades de atividadeLookup activity properties

Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.To learn details about the properties, check Lookup activity.

Próximas etapasNext steps

Para obter uma lista de armazenamentos de dados que o Copy Activity suporta como fontes e coletores no Azure Data Factory, consulte Armazenamentos e formatos de dados compatíveis.For a list of data stores that Copy Activity supports as sources and sinks in Azure Data Factory, see Supported data stores and formats.