Copiare dati da un'origine OData usando 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 completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

Questo articolo illustra come usare l'attività di copia in una pipeline di Azure Data Factory o Synapse Analytics per copiare dati da un'origine OData. L'articolo si basa sull'attività di copia, che presenta una panoramica generale dell'attività di copia.

Funzionalità supportate

Questo connettore OData è supportato per le funzionalità seguenti:

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

(1) Runtime di integrazione di Azure (2) Runtime di integrazione self-hosted

Per un elenco di archivi dati supportati come origini/sink, vedere Archivi dati supportati.

In particolare, il connettore OData supporta:

  • OData versione 2.0, 3.0 e 4.0.
  • Copia dei dati usando una delle autenticazioni seguenti: Anonima, Basic, Windows e entità servizio 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 cloud gestito, è possibile usare Azure Integration Runtime. Se l'accesso è limitato agli indirizzi IP approvati nelle regole del firewall, è possibile aggiungere indirizzi IP del runtime di integrazione di Azure all'elenco elementi consentiti.

È anche possibile usare la funzionalità di 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.

Introduzione

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 di 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 of the OData connector.

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

    Screenshot of linked service configuration for an OData store.

Dettagli di configurazione di Connessione or

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
Tipo 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 Anonymous, Basic, Windows e AadServicePrincipal. OAuth basato sull'utente non è supportato. È anche possibile configurare le intestazioni di autenticazione nella authHeader proprietà .
authHeaders Intestazioni di 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 o 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 o 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 o 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 Microsoft Entra richiesta per l'autorizzazione. No
azureCloudType Per l'autenticazione dell'entità servizio, specificare il tipo di ambiente cloud di Azure a 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 della 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 del 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 della 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
Tipo 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 dati da OData, nella sezione Origine dell'attività di copia sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
Tipo La proprietà type dell'origine dell'attività di copia 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 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 Stringa
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 in 1 ora per impostazione predefinita, è necessario ottenere un nuovo token di accesso alla scadenza.

  1. Usare Postman per ottenere il token di accesso:

    1. Passare alla scheda Autorizzazione nel sito Web Postman.

    2. Nella casella Tipo selezionare OAuth 2.0 e nella casella Aggiungi dati di autorizzazione selezionareIntestazioni richiesta.

    3. Compilare le informazioni seguenti nella pagina Configura nuovo token per ottenere un nuovo token di accesso:

      • Tipo di concessione: selezionare Codice di autorizzazione.
      • URL di callback: immettere https://www.localhost.com/
      • URL di autenticazione: 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.
      • URL del token di accesso: immettere https://login.microsoftonline.com/common/oauth2/token.
      • ID client: immettere l'ID dell'entità servizio Microsoft Entra.
      • Segreto client: immettere il segreto dell'entità servizio.
      • Autenticazione client: selezionare Invia come intestazione di autenticazione di base.
    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 of using Postman to get the access token.

  2. Creare il servizio collegato OData:

    • URL del 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 Anonimo.
    • Intestazioni di autenticazione:
      • Nome proprietà: scegliere Autorizzazione.
      • Valore: immettere Bearer <access token from step 1>.
    • Testare il servizio collegato.

    Create OData linked service

  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.

    Preview data

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.