Kopiera data från en OData-källa med hjälp av Azure Data Factory eller Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln beskriver hur du använder kopieringsaktivitet i en Azure Data Factory- eller Synapse Analytics-pipeline för att kopiera data från en OData-källa. Artikeln bygger på kopieringsaktivitet, som visar en allmän översikt över kopieringsaktivitet.

Funktioner som stöds

Den här OData-anslutningsappen stöds för följande funktioner:

Funktioner som stöds IR
aktiviteten Kopiera (källa/-) ① ②
Sökningsaktivitet ① ②

(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning

En lista över datalager som stöds som källor/mottagare finns i Datalager som stöds.

Mer specifikt stöder den här OData-anslutningsappen:

  • OData version 2.0, 3.0 och 4.0.
  • Kopiera data med någon av följande autentiseringar: Anonym, Grundläggande, Windows och Microsoft Entra-tjänstens huvudnamn.

Förutsättningar

Om ditt datalager finns i ett lokalt nätverk, ett virtuellt Azure-nätverk eller Amazon Virtual Private Cloud måste du konfigurera en lokalt installerad integrationskörning för att ansluta till det.

Om ditt datalager är en hanterad molndatatjänst kan du använda Azure Integration Runtime. Om åtkomsten är begränsad till IP-adresser som är godkända i brandväggsreglerna kan du lägga till Azure Integration Runtime-IP-adresser i listan över tillåtna.

Du kan också använda funktionen för integrering av hanterade virtuella nätverk i Azure Data Factory för att få åtkomst till det lokala nätverket utan att installera och konfigurera en lokalt installerad integrationskörning.

Mer information om de nätverkssäkerhetsmekanismer och alternativ som stöds av Data Factory finns i Strategier för dataåtkomst.

Kom igång

Om du vill utföra aktiviteten Kopiera med en pipeline kan du använda något av följande verktyg eller SDK:er:

Skapa en länkad tjänst till ett OData-arkiv med hjälp av användargränssnittet

Använd följande steg för att skapa en länkad tjänst till en OData-butik i Azure-portalens användargränssnitt.

  1. Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och välj sedan Nytt:

  2. Sök efter OData och välj OData-anslutningsappen.

    Screenshot of the OData connector.

  3. Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.

    Screenshot of linked service configuration for an OData store.

Anslut eller konfigurationsinformation

Följande avsnitt innehåller information om egenskaper som du kan använda för att definiera Data Factory-entiteter som är specifika för en OData-anslutning.

Länkade tjänstegenskaper

Följande egenskaper stöds för en OData-länkad tjänst:

Property Beskrivning Obligatoriskt
type Typegenskapen måste vara inställd på OData. Ja
URL Rot-URL:en för OData-tjänsten. Ja
authenticationType Den typ av autentisering som används för att ansluta till OData-källan. Tillåtna värden är Anonymous, Basic, Windows och AadServicePrincipal. Användarbaserad OAuth stöds inte. Du kan dessutom konfigurera autentiseringshuvuden i authHeader egenskapen . Ja
authHeaders Ytterligare HTTP-begärandehuvuden för autentisering.
Om du till exempel vill använda API-nyckelautentisering kan du välja autentiseringstyp som "Anonym" och ange API-nyckel i rubriken.
Nej
userName Ange userName om du använder Basic- eller Windows-autentisering. Nej
password Ange lösenord för det användarkonto som du angav för userName. Markera det här fältet som en SecureString-typ för att lagra det på ett säkert sätt. Du kan också referera till en hemlighet som lagras i Azure Key Vault. Nej
servicePrincipalId Ange Microsoft Entra-programmets klient-ID. Nej
aadServicePrincipalCredentialType Ange vilken typ av autentiseringsuppgifter som ska användas för autentisering med tjänstens huvudnamn. Tillåtna värden är: ServicePrincipalKey eller ServicePrincipalCert. Nej
servicePrincipalKey Ange Microsoft Entra-programmets nyckel. Markera det här fältet som en SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. Nej
servicePrincipalEmbeddedCert Ange det base64-kodade certifikatet för ditt program som är registrerat i Microsoft Entra-ID och se till att certifikatinnehållstypen är PKCS #12. Markera det här fältet som en SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. Nej
servicePrincipalEmbeddedCertPassword Ange lösenordet för certifikatet om certifikatet skyddas med ett lösenord. Markera det här fältet som en SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. Nej
tenant Ange klientinformationen (domännamn eller klient-ID) som programmet finns under. Hämta den genom att hovra musen i det övre högra hörnet i Azure-portalen. Nej
aadResourceId Ange den Microsoft Entra-resurs som du begär för auktorisering. Nej
azureCloudType För autentisering med tjänstens huvudnamn anger du vilken typ av Azure-molnmiljö som ditt Microsoft Entra-program är registrerat i.
Tillåtna värden är AzurePublic, AzureChina, AzureUsGovernment och AzureGermany. Som standard används tjänstens molnmiljö.
Nej
connectVia Integration Runtime som ska användas för att ansluta till datalagret. Läs mer i avsnittet Förutsättningar . Om det inte anges används standardkörningen för Azure Integration Runtime. Nej

Exempel 1: Använda anonym autentisering

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

Exempel 2: Använda grundläggande autentisering

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

Exempel 3: Använda Windows-autentisering

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

Exempel 4: Använda nyckelautentisering för tjänstens huvudnamn

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

Exempel 5: Använda certifikatautentisering för tjänstens huvudnamn

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

Exempel 6: Använda API-nyckelautentisering

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

Egenskaper för datauppsättning

Det här avsnittet innehåller en lista över egenskaper som OData-datauppsättningen stöder.

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i Datauppsättningar och länkade tjänster.

Om du vill kopiera data från OData anger du datauppsättningens typegenskap till ODataResource. Följande egenskaper stöds:

Property Beskrivning Obligatoriskt
type Datamängdens typegenskap måste anges till ODataResource. Ja
path Sökvägen till OData-resursen. Ja

Exempel

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

Egenskaper för kopieringsaktivitet

Det här avsnittet innehåller en lista över egenskaper som OData-källan stöder.

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i Pipelines.

OData som källa

För att kopiera data från OData stöds följande egenskaper i avsnittet Kopiera aktivitetskälla:

Property Beskrivning Obligatoriskt
type Typegenskapen för kopieringsaktivitetskällan måste vara inställd på ODataSource. Ja
query OData-frågealternativ för filtrering av data. Exempel: "$select=Name,Description&$top=5".

Obs! OData-anslutningsappen kopierar data från den kombinerade URL:en: [URL specified in linked service]/[path specified in dataset]?[query specified in copy activity source]. Mer information finns i OData-URL-komponenter.
Nej
httpRequestTimeout Tidsgränsen (TimeSpan-värdet ) för HTTP-begäran för att få ett svar. Det här värdet är tidsgränsen för att få ett svar, inte tidsgränsen för att läsa svarsdata. Om det inte anges är standardvärdet 00:30:00 (30 minuter). Nej

Exempel

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

Om du använde RelationalSource en typbaserad källa stöds den fortfarande som den är, medan du rekommenderas att använda den nya framöver.

Datatypsmappning för OData

När du kopierar data från OData används följande mappningar mellan OData-datatyper och mellanliggande datatyper som används i tjänsten internt. Information om hur Kopieringsaktivitet mappar källschemat och datatypen till mottagaren finns i Schema- och datatypmappningar.

OData-datatyp Datatyp för interimstjänst
Edm.Binary Byte[]
Edm.Boolean Bool
Edm.Byte Byte[]
Edm.DateTime Datum/tid
Edm.Decimal Decimal
Edm.Double Dubbel
Edm.Single Enstaka
Edm.Guid GUID
Edm.Int16 Int16
Edm.Int32 Int32
Edm.Int64 Int64
Edm.SByte Int16
Edm.String String
Edm.Time TimeSpan
Edm.DateTimeOffset DateTimeOffset

Kommentar

OData-komplexa datatyper (till exempel objekt) stöds inte.

Kopiera data från Project Online

Project Online kräver användarbaserad OAuth, som inte stöds av Azure Data Factory. Om du vill kopiera data från Project Online kan du använda OData-anslutningsappen och en åtkomsttoken som hämtas från verktyg som Postman.

Varning

Åtkomsttoken upphör att gälla om en timme som standard. Du måste hämta en ny åtkomsttoken när den upphör att gälla.

  1. Använd Postman för att hämta åtkomsttoken:

    1. Gå till fliken Auktorisering på Postman-webbplatsen.

    2. I rutan Typ väljer du OAuth 2.0 och i rutan Lägg till auktoriseringsdata till väljer du Begärandehuvuden.

    3. Fyll i följande information på sidan Konfigurera ny token för att hämta en ny åtkomsttoken:

      • Bevilja typ: Välj Auktoriseringskod.
      • Återanrops-URL: Ange https://www.localhost.com/
      • Autentiserings-URL: Ange https://login.microsoftonline.com/common/oauth2/authorize?resource=https://<your tenant name>.sharepoint.com. Ersätt <your tenant name> med ditt eget klientnamn.
      • Url för åtkomsttoken: Ange https://login.microsoftonline.com/common/oauth2/token.
      • Klient-ID: Ange ditt huvudnamn för Microsoft Entra-tjänsten.
      • Klienthemlighet: Ange tjänstens huvudnamnshemlighet.
      • Klientautentisering: Välj Skicka som grundläggande autentiseringshuvud.
    4. Du uppmanas att logga in med ditt användarnamn och lösenord.

    5. När du har hämtat din åtkomsttoken kopierar du och sparar den för nästa steg.

    Screenshot of using Postman to get the access token.

  2. Skapa den länkade OData-tjänsten:

    • Tjänst-URL: Ange https://<your tenant name>.sharepoint.com/sites/pwa/_api/Projectdata. Ersätt <your tenant name> med ditt eget klientnamn.
    • Autentiseringstyp: Välj Anonym.
    • Autentiseringshuvuden:
      • Egenskapsnamn: Välj Auktorisering.
      • Värde: Ange Bearer <access token from step 1>.
    • Testa den länkade tjänsten.

    Create OData linked service

  3. Skapa OData-datauppsättningen:

    1. Skapa datauppsättningen med den OData-länkade tjänsten som skapades i steg 2.
    2. Förhandsgranska data.

    Preview data

Egenskaper för uppslagsaktivitet

Mer information om egenskaperna finns i Sökningsaktivitet.

En lista över datalager som kopieringsaktivitet stöder som källor och mottagare finns i Datalager och format som stöds.