Copiar dados da fonte do OData utilizando o Azure Data Factory ou Synapse Analytics
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Este artigo descreve como usar a atividade Copy em um pipeline do Azure Data Factory ou do Synapse Analytics para copiar dados da fonte do OData. O artigo se baseia na Atividade de Cópia, que apresenta uma visão geral da Atividade de Cópia.
Funcionalidades com suporte
Há suporte para o conector do OData para as seguintes funcionalidades:
Funcionalidades com suporte | IR |
---|---|
Atividade de cópia (origem/-) | ① ② |
Atividade de pesquisa | ① ② |
① Runtime de integração do Azure ② Runtime de integração auto-hospedada
Para obter uma lista de armazenamentos de dados com suporte como origens/coletores, consulte Armazenamentos de dados com suporte.
Especificamente, este conector OData dá suporte:
- OData versão 2.0, 3.0 e 4.0.
- Copiar dados usando uma das seguintes autenticações: Anônimo, Básico, Windows e Entidade de serviço do Microsoft Entra.
Pré-requisitos
Se o armazenamento de dados estiver localizado dentro de uma rede local, em uma rede virtual do Azure ou na Amazon Virtual Private Cloud, você precisará configurar um runtime de integração auto-hospedada para se conectar a ele.
Se o armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Azure Integration Runtime. Se o acesso for restrito aos IPs que estão aprovados nas regras de firewall, você poderá adicionar IPs do Azure Integration Runtime à lista de permissões.
Você também pode usar o recurso de runtime de integração da rede virtual gerenciada no Azure Data Factory para acessar a rede local sem instalar e configurar um runtime de integração auto-hospedada.
Para obter mais informações sobre os mecanismos de segurança de rede e as opções compatíveis com o Data Factory, consulte Estratégias de acesso a dados.
Introdução
Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:
- A ferramenta Copiar Dados
- O portal do Azure
- O SDK do .NET
- O SDK do Python
- PowerShell do Azure
- A API REST
- O modelo do Azure Resource Manager
Criar um serviço vinculado a um armazenamento OData com a interface do usuário
Use as etapas abaixo para criar um serviço vinculado ao armazenamento OData na interface do usuário do portal do Microsoft Azure.
Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse e selecione Serviços Vinculados. Depois, selecione Novo:
Pesquise OData e selecione o conector correspondente.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes da configuração do conector
As seções a seguir fornecem detalhes sobre propriedades que você pode usar para definir entidades do Data Factory específicas do conector OData.
Propriedades do serviço vinculado
As propriedades a seguir são compatíveis com o serviço vinculado do OData:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type precisa ser definida como OData. | Sim |
url | A URL raiz do serviço OData. | Sim |
authenticationType | O tipo de autenticação usado para se conectar à fonte OData. Os valores permitidos são Anônimo, Básico, Windows e AadServicePrincipal. OAuth baseado no usuário não tem suporte. Além disso, você pode configurar cabeçalhos de autenticação na propriedade authHeader . |
Sim |
authHeaders | Cabeçalhos de solicitação HTTP adicionais para autenticação. Por exemplo, para usar a autenticação de chave de API, você poderá selecionar o tipo de autenticação como “Anônimo” e especificar a chave de API no cabeçalho. |
Não |
userName | Especifique o userName se estiver usando a autenticação Básica ou do Windows. | Não |
password | Especifique a senha da conta de usuário que você especificou para userName. Marque esse campo como um tipoSecureString para armazená-lo com segurança. Você também pode referenciar um segredo armazenado no Azure Key Vault. | Não |
servicePrincipalId | Especifique a ID do cliente do aplicativo do Microsoft Entra. | Não |
aadServicePrincipalCredentialType | Especifique o tipo de credencial a ser usada para autenticação da entidade de serviço. Os valores permitidos são: ServicePrincipalKey ou ServicePrincipalCert . |
Não |
servicePrincipalKey | Especifique a chave do aplicativo do Microsoft Entra. Marque esse campo como SecureString para armazená-lo com segurança ou referencie um segredo armazenado no Azure Key Vault. | Não |
servicePrincipalEmbeddedCert | Especifique o certificado codificado em base64 do aplicativo registrado no Microsoft Entra ID e cerifique-se de que o tipo de conteúdo do certificado é PKCS #12. Marque esse campo como SecureString para armazená-lo com segurança ou referencie um segredo armazenado no Azure Key Vault. | Não |
servicePrincipalEmbeddedCertPassword | Especifique a senha de seu certificado se o certificado for protegido por senha. Marque esse campo como SecureString para armazená-lo com segurança ou referencie um segredo armazenado no Azure Key Vault. | Não |
locatário | Especifique as informações de locatário (domínio nome ou ID do Locatário) em que o aplicativo reside. Para recuperá-lo, passe o mouse no canto superior direito do portal do Azure. | Não |
aadResourceId | Especifique o recurso do Microsoft Entra que você está solicitando para autorização. | Não |
azureCloudType | Para autenticação da entidade de serviço, especifique o tipo de ambiente em nuvem do Azure em que seu aplicativo do Microsoft Entra está registrado. Os valores permitidos são AzurePublic, AzureChina, AzureUsGovernment e AzureGermany. Por padrão, é usado o ambiente de nuvem do serviço. |
Não |
connectVia | O runtime de integração a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não especificado, o Azure Integration Runtime padrão será usado. | Não |
Exemplo 1: usando a autenticação Anônima
{
"name": "ODataLinkedService",
"properties": {
"type": "OData",
"typeProperties": {
"url": "https://services.odata.org/OData/OData.svc",
"authenticationType": "Anonymous"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo 2: usando a autenticação Básica
{
"name": "ODataLinkedService",
"properties": {
"type": "OData",
"typeProperties": {
"url": "<endpoint of OData source>",
"authenticationType": "Basic",
"userName": "<user name>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo 3: usando a autenticação do Windows
{
"name": "ODataLinkedService",
"properties": {
"type": "OData",
"typeProperties": {
"url": "<endpoint of OData source>",
"authenticationType": "Windows",
"userName": "<domain>\\<user>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo 4: usar a autenticação com chave de entidade de serviço
{
"name": "ODataLinkedService",
"properties": {
"type": "OData",
"typeProperties": {
"url": "<endpoint of OData source>",
"authenticationType": "AadServicePrincipal",
"servicePrincipalId": "<service principal id>",
"aadServicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalKey": {
"type": "SecureString",
"value": "<service principal key>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
"aadResourceId": "<AAD resource URL>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
Exemplo 5: usar a autenticação com certificado de entidade de serviço
{
"name": "ODataLinkedService",
"properties": {
"type": "OData",
"typeProperties": {
"url": "<endpoint of OData source>",
"authenticationType": "AadServicePrincipal",
"servicePrincipalId": "<service principal id>",
"aadServicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalEmbeddedCert": {
"type": "SecureString",
"value": "<base64 encoded string of (.pfx) certificate data>"
},
"servicePrincipalEmbeddedCertPassword": {
"type": "SecureString",
"value": "<password of your certificate>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
"aadResourceId": "<AAD resource e.g. https://tenant.sharepoint.com>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
Exemplo 6: usar a autenticação de chave de API
{
"name": "ODataLinkedService",
"properties": {
"type": "OData",
"typeProperties": {
"url": "<endpoint of OData source>",
"authenticationType": "Anonymous",
"authHeader": {
"APIKey": {
"type": "SecureString",
"value": "<API key>"
}
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propriedades do conjunto de dados
Esta seção fornece uma lista de propriedades compatíveis com o conjunto de dados OData.
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.
Para copiar dados do OData, defina a propriedade type do conjunto de dados como ODataResource. Há suporte para as seguintes propriedades:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type do conjunto de dados precisa ser definida como ODataResource. | Sim |
caminho | O caminho para o recurso OData. | Sim |
Exemplo
{
"name": "ODataDataset",
"properties":
{
"type": "ODataResource",
"schema": [],
"linkedServiceName": {
"referenceName": "<OData linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties":
{
"path": "Products"
}
}
}
Propriedades da Atividade de Cópia
Esta seção fornece uma lista de propriedades compatíveis com a fonte OData.
Para obter uma lista completa de seções e propriedades que estão disponíveis para definir atividades, consulte Pipelines.
OData como fonte
Para copiar dados do OData, as seguintes propriedades têm suporte na seção de origem Atividade de Cópia:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type da origem Atividade de Cópia não deve ser definida para ODataSource. | Sim |
Consulta | Opções de consulta OData para filtrar dados. Exemplo: "$select=Name,Description&$top=5" .Observação: o conector do OData copia os dados da URL combinada: [URL specified in linked service]/[path specified in dataset]?[query specified in copy activity source] . Para saber mais, confira as Componentes da URL do OData. |
Não |
httpRequestTimeout | O tempo limite (o valor TimeSpan) para a solicitação HTTP para obter uma resposta. Esse valor é o tempo limite para obter uma resposta, não o tempo limite para ler os dados da resposta. Se não for especificado, o valor padrão será 00:30:00 (30 minutos). | Não |
Exemplo
"activities":[
{
"name": "CopyFromOData",
"type": "Copy",
"inputs": [
{
"referenceName": "<OData input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "ODataSource",
"query": "$select=Name,Description&$top=5"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Se você estava usando a fonte com tipos RelationalSource
, ela ainda tem suporte como está, mas é recomendável usar a nova no futuro.
Mapeamento de tipo de dados para o OData
Ao copiar dados do OData, os seguintes mapeamentos são usados entre os tipos de dados OData e os tipos de dados provisórios usados pelo serviço internamente. Para saber como a Atividade de Cópia mapeia o esquema de origem e o tipo de dados para o coletor, confira Esquema e mapeamentos de tipo de dados.
Tipo de dados OData | Tipo de dados provisório do serviço |
---|---|
Edm.Binary | Byte[] |
Edm.Boolean | Bool |
Edm.Byte | Byte[] |
Edm.DateTime | Datetime |
Edm.Decimal | Decimal |
Edm.Double | Double |
Edm.Single | Single |
Edm.Guid | Guid |
Edm.Int16 | Int16 |
Edm.Int32 | Int32 |
Edm.Int64 | Int64 |
Edm.SByte | Int16 |
Edm.String | String |
Edm.Time | TimeSpan |
Edm.DateTimeOffset | DateTimeOffset |
Observação
Tipos de dados complexos do OData (como Objeto) não têm suporte.
Copiar dados do Project Online
O Project Online requer o OAuth baseado em usuário, que não tem suporte do Azure Data Factory. Para copiar dados do Project Online, você poderá usar o conector OData e um token de acesso obtido de ferramentas como o Postman.
Cuidado
O token de acesso expirará em uma hora por padrão, e você precisará obter um novo token de acesso quando ele expirar.
Use o Postman para obter o token de acesso:
Observação
O Postman é usado por alguns desenvolvedores para testar as APIs da Web remotas. No entanto, há alguns riscos de segurança e privacidade associados ao seu uso. Este artigo não endossa o uso do Postman para ambientes de produção. Use-o por sua conta e risco.
- Navegue até a guia Autorização no site do Postman.
- Na caixa Tipo, selecione OAuth 2.0 e, na caixa Adicionar dados de autorização a, selecione Cabeçalhos de Solicitação.
- Preencha as seguintes informações na página Configurar Novo Token para obter um novo token de acesso:
- Tipo de concessão: selecione o Código de Autorização.
- URL de Retorno de Chamada: insira
https://www.localhost.com/
. - URL de Autenticação: insira
https://login.microsoftonline.com/common/oauth2/authorize?resource=https://<your tenant name>.sharepoint.com
. Substitua<your tenant name>
pelo nome de seu locatário. - URL do Token de Acesso: insira
https://login.microsoftonline.com/common/oauth2/token
. - ID do Cliente: Insira sua ID da entidade de serviço do Microsoft Entra.
- Segredo do Cliente: insira o segredo da entidade de serviço.
- Autenticação do Cliente: selecione Enviar como Cabeçalho de Autenticação Básica.
- Será solicitado que você entre com seu nome de usuário e sua senha.
- Depois de obter seu token de acesso, copie-o e salve-o na próxima etapa.
Crie o serviço vinculado OData:
- URL do Serviço: insira
https://<your tenant name>.sharepoint.com/sites/pwa/_api/Projectdata
. Substitua<your tenant name>
pelo nome de seu locatário. - Tipo de autenticação: selecione Anônimo.
- Cabeçalhos de autenticação:
- Nome da propriedade: escolha Autorização.
- Valor: Insira
Bearer <access token from step 1>
.
- Teste o serviço vinculado.
- URL do Serviço: insira
Crie o conjunto de dados OData:
- Crie o conjunto de dados com o serviço vinculado OData criado na etapa 2.
- Visualize os dados.
Pesquisar propriedades de atividade
Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.
Conteúdo relacionado
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.