Copiare dati da un'origine OData tramite Azure Data Factory o Synapse Analytics

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Questo articolo illustra come usare l'attività Copy in una pipeline di Azure Data Factory o Synapse Analytics per copiare dati da un'origine OData. L'articolo è basato su Attività Copy, dove viene presentata una panoramica generale dell'attività Copy.

Funzionalità supportate

Questo connettore OData è supportato per le funzionalità seguenti:

Funzionalità supportate IR
Attività Copy (origine/-) ① ②
Attività Lookup ① ②

① Azure Integration Runtime ② Runtime di integrazione self-hosted

Per un elenco degli archivi dati supportati come origini o sink, vedere Archivi dati supportati.

In particolare, il connettore OData supporta:

  • OData versioni 2.0, 3.0 e 4.0.
  • Copia dei dati usando una delle autenticazioni seguenti: Anonima, Di base, Windows ed Entità servizio di Microsoft Entra.

Prerequisiti

Se l'archivio dati si trova all'interno di una rete locale, una rete virtuale di Azure o un cloud privato virtuale di Amazon, è necessario configurare un runtime di integrazione self-hosted per connettersi.

Se l'archivio dati è un servizio dati del cloud gestito, è possibile usare Azure Integration Runtime. Se l'accesso è limitato solo agli indirizzi IP approvati nelle regole del firewall, è possibile aggiungere IP di Azure Integration Runtime nell'elenco Consentiti.

È anche possibile usare la funzionalitàruntime di integrazione della rete virtuale gestita in Azure Data Factory per accedere alla rete locale senza installare e configurare un runtime di integrazione self-hosted.

Per altre informazioni sui meccanismi di sicurezza di rete e sulle opzioni supportate da Data Factory, vedere strategie di accesso ai dati.

Operazioni preliminari

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:

Creare un servizio collegato a un archivio OData usando l'interfaccia utente

Usare la procedura seguente per creare un servizio collegato a un archivio OData nell'interfaccia utente del portale di Azure.

  1. Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi selezionare Nuovo:

  2. Cercare OData e selezionare il connettore OData.

    Screenshot del connettore OData.

  3. Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.

    Screenshot della configurazione del servizio collegato per un archivio OData.

Dettagli di configurazione del connettore

Le sezioni seguenti presentano informazioni dettagliate sulle proprietà che è possibile usare per definire entità di Data Factory specifiche per un connettore OData.

Proprietà del servizio collegato

Per il servizio collegato OData sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà type deve essere impostata su OData.
URL. URL radice del servizio OData.
authenticationType Tipo di autenticazione usato per la connessione all'origine OData. I valori consentiti sono Anonima, Di base, Windows e AadServicePrincipal. L'autenticazione OAuth basata su utente non è supportata. È anche possibile configurare le intestazioni di autenticazione nella proprietà authHeader.
authHeaders Intestazioni della richiesta HTTP aggiuntive per l'autenticazione.
Ad esempio, per usare l'autenticazione con chiave API, è possibile selezionare il tipo di autenticazione "Anonimo" e specificare la chiave API nell'intestazione.
No
userName Specificare userName se si usa l'autenticazione di base o di Windows. No
password Specificare la proprietà password per l'account utente indicato per userName. Contrassegnare questo campo come tipo SecureString per archiviarlo in modo sicuro. È anche possibile fare riferimento a un segreto archiviato in Azure Key Vault. No
servicePrincipalId Specificare l'ID client dell'applicazione Microsoft Entra. No
aadServicePrincipalCredentialType Specificare il tipo di credenziale da usare per l'autenticazione dell'entità servizio. I valori consentiti sono: ServicePrincipalKey o ServicePrincipalCert. No
servicePrincipalKey Specificare la chiave dell'applicazione Microsoft Entra. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro oppure fare riferimento a un segreto archiviato in Azure Key Vault. No
servicePrincipalEmbeddedCert Specificare il certificato con codifica Base64 dell'applicazione registrata in Microsoft Entra ID e assicurarsi che il tipo di contenuto del certificato sia PKCS #12. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro oppure fare riferimento a un segreto archiviato in Azure Key Vault. No
servicePrincipalEmbeddedCertPassword Specificare la password del certificato se il certificato è protetto con una password. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro oppure fare riferimento a un segreto archiviato in Azure Key Vault. No
tenant Specificare le informazioni sul tenant (nome di dominio o ID tenant) in cui si trova l'applicazione. Recuperarle passando il cursore del mouse sull'angolo superiore destro del portale di Azure. No
aadResourceId Specificare la risorsa di Microsoft Entra richiesta per l'autorizzazione. No
azureCloudType Per l'autenticazione dell'entità servizio, specificare il tipo di ambiente cloud di Azure in cui è registrata l'applicazione Microsoft Entra.
I valori consentiti sono AzurePublic, AzureChina, AzureUsGovernment e AzureGermany. Per impostazione predefinita, viene usato l'ambiente cloud del servizio.
No
connectVia Runtime di integrazione da usare per la connessione all'archivio dati. Per altre informazioni, vedere la sezione Prerequisiti. Se questa proprietà non è specificata, viene usato il tipo Azure Integration Runtime predefinito. No

Esempio 1: Uso dell'autenticazione anonima

{
    "name": "ODataLinkedService",
    "properties": {
        "type": "OData",
        "typeProperties": {
            "url": "https://services.odata.org/OData/OData.svc",
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Esempio 2: Uso dell'autenticazione di base

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

Esempio 3: Uso dell'autenticazione di 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"
        }
    }
}

Esempio 4: Uso dell'autenticazione con chiave dell'entità servizio

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

Esempio 5: Uso dell'autenticazione con certificato dell'entità servizio

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

Esempio 6: Uso dell'autenticazione con chiave 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"
        }
    }
}

Proprietà del set di dati

Questa sezione presenta un elenco delle proprietà supportate dal set di dati OData.

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere Set di dati e servizi collegati.

Per copiare dati da OData, impostare la proprietàtype del set di dati su ODataResource. Sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà type del set di dati deve essere impostata su ODataResource.
path Percorso della risorsa OData.

Esempio

{
    "name": "ODataDataset",
    "properties":
    {
        "type": "ODataResource",
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<OData linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties":
        {
            "path": "Products"
        }
    }
}

Proprietà dell'attività di copia

Questa sezione presenta un elenco delle proprietà supportate dall'origine OData.

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere Pipeline.

OData come origine

Per copiare i dati da OData, nella sezione origine dell'attività Copy sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà type dell'origine dell'attività Copy deve essere impostata su ODataSource.
query Opzioni di query OData per filtrare i dati. Esempio: "$select=Name,Description&$top=5".

Nota: il connettore OData copia dati dall'URL combinato: [URL specified in linked service]/[path specified in dataset]?[query specified in copy activity source]. Per altre informazioni, vedere OData URL components (Componenti dell'URL di OData).
No
httpRequestTimeout Timeout (valore di TimeSpan) durante il quale la richiesta HTTP attende una risposta. Si tratta del timeout per ottenere una risposta, non per leggere i dati della risposta. Se non è specificato, il valore predefinito è 00:30:00 (30 minuti). No

Esempio

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

L'origine tipizzata RelationalSource è ancora supportata senza modifiche, ma è consigliato l'uso della nuova per il futuro.

Mapping dei tipi di dati per OData

Quando si copiano dati da OData, vengono usati i mapping seguenti tra i tipi di dati di OData e i tipi di dati provvisori usati internamente nel servizio. Per informazioni sul modo in cui l'attività di copia esegue il mapping dello schema di origine e del tipo di dati al sink, vedere Mapping dello schema e del tipo di dati.

Tipo di dati di OData Tipo di dati del servizio provvisorio
Edm.Binary Byte[]
Edm.Boolean Bool
Edm.Byte Byte[]
Edm.DateTime Data/Ora
Edm.Decimal Decimale
Edm.Double Double
Edm.Single Singola
Edm.Guid GUID
Edm.Int16 Int16
Edm.Int32 Int32
Edm.Int64 Int64
Edm.SByte Int16
Edm.String String
Edm.Time TimeSpan
Edm.DateTimeOffset DateTimeOffset

Nota

I tipi di dati complessi di OData (come Object) non sono supportati.

Copiare dati da Project Online

Project Online richiede OAuth basato sull'utente, che non è supportato da Azure Data Factory. Per copiare dati da Project Online, è possibile usare il connettore OData e un token di accesso ottenuto da strumenti come Postman.

Attenzione

Il token di accesso scade entro 1 ora per impostazione predefinita ed è necessario ottenere un nuovo token di accesso alla scadenza.

  1. Usare Postman per ottenere il token di accesso:

    Nota

    Postman viene usato da alcuni sviluppatori per il test di API Web remote. Tuttavia, esistono alcuni rischi per la sicurezza e la privacy associati al suo utilizzo. Questo articolo non approva l'uso di Postman per gli ambienti di produzione. Usarlo a proprio rischio.

    1. Passare alla scheda Authorization nel sito Web di Postman.
    2. Nella casella Type selezionare OAuth 2.0 e nella casella Add authorization data to selezionare Request Headers.
    3. Compilare le informazioni seguenti nella pagina Configure New Token per ottenere un nuovo token di accesso:
      • Grant type: selezionare Authorization Code.
      • Callback URL: immettere https://www.localhost.com/.
      • Auth URL: immettere https://login.microsoftonline.com/common/oauth2/authorize?resource=https://<your tenant name>.sharepoint.com. Sostituire <your tenant name> con il proprio nome del tenant.
      • Access Token URL: immettere https://login.microsoftonline.com/common/oauth2/token.
      • Client ID: immettere l'ID entità servizio di Microsoft Entra.
      • Client Secret: immettere il segreto dell'entità servizio.
      • Client Authentication: selezionare Send as Basic Auth header.
    4. Verrà chiesto di accedere con il nome utente e la password.
    5. Dopo aver ottenuto il token di accesso, copiarlo e salvarlo per il passaggio successivo.

    Screenshot dell'uso di Postman per ottenere il token di accesso.

  2. Creare il servizio collegato OData:

    • URL servizio: immettere https://<your tenant name>.sharepoint.com/sites/pwa/_api/Projectdata. Sostituire <your tenant name> con il proprio nome del tenant.
    • Tipo di autenticazione: selezionare Anonima.
    • Intestazioni di autenticazione:
      • Nome proprietà: scegliere Autorizzazione.
      • Valore immettere Bearer <access token from step 1>.
    • Testare il servizio collegato.

    Creare un servizio collegato OData

  3. Creare il set di dati OData:

    1. Creare il set di dati con il servizio collegato OData creato nel passaggio 2.
    2. Anteprima dei dati.

    Creare l'anteprima dei dati

Proprietà dell'attività Lookup

Per altre informazioni sulle proprietà, vedere Attività Lookup.

Per un elenco degli archivi dati supportati dall'attività di copia come origini e sink, vedere Archivi dati e formati supportati.