Kopiowanie danych ze źródła OData przy użyciu usługi Azure Data Factory lub Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

W tym artykule opisano sposób używania działania kopiowania w potoku usługi Azure Data Factory lub Synapse Analytics do kopiowania danych ze źródła OData. Artykuł opiera się na działaniu kopiowania, które przedstawia ogólne omówienie działania kopiowania.

Obsługiwane możliwości

Ten łącznik OData jest obsługiwany w następujących możliwościach:

Obsługiwane możliwości IR
działanie Kopiuj (źródło/-) ① ②
Działanie Lookup ① ②

(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime

Aby uzyskać listę magazynów danych obsługiwanych jako źródła/ujścia, zobacz Obsługiwane magazyny danych.

W szczególności ten łącznik OData obsługuje następujące elementy:

  • OData w wersji 2.0, 3.0 i 4.0.
  • Kopiowanie danych przy użyciu jednego z następujących uwierzytelniania: anonimowe, podstawowe, Windows i jednostka usługi Microsoft Entra.

Wymagania wstępne

Jeśli magazyn danych znajduje się wewnątrz sieci lokalnej, sieci wirtualnej platformy Azure lub chmury prywatnej Amazon Virtual, musisz skonfigurować własne środowisko Integration Runtime , aby się z nim połączyć.

Jeśli magazyn danych jest zarządzaną usługą danych w chmurze, możesz użyć środowiska Azure Integration Runtime. Jeśli dostęp jest ograniczony do adresów IP zatwierdzonych w regułach zapory, możesz dodać adresy IP środowiska Azure Integration Runtime do listy dozwolonych.

Możesz również użyć funkcji środowiska Integration Runtime zarządzanej sieci wirtualnej w usłudze Azure Data Factory, aby uzyskać dostęp do sieci lokalnej bez instalowania i konfigurowania własnego środowiska Integration Runtime.

Aby uzyskać więcej informacji na temat mechanizmów zabezpieczeń sieci i opcji obsługiwanych przez usługę Data Factory, zobacz Strategie dostępu do danych.

Rozpocznij

Aby wykonać działanie Kopiuj za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:

Tworzenie połączonej usługi do magazynu OData przy użyciu interfejsu użytkownika

Wykonaj poniższe kroki, aby utworzyć połączoną usługę w magazynie OData w interfejsie użytkownika witryny Azure Portal.

  1. Przejdź do karty Zarządzanie w obszarze roboczym usługi Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie wybierz pozycję Nowe:

  2. Wyszukaj ciąg OData i wybierz łącznik OData.

    Screenshot of the OData connector.

  3. Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.

    Screenshot of linked service configuration for an OData store.

szczegóły konfiguracji Połączenie or

Poniższe sekcje zawierają szczegółowe informacje o właściwościach, których można użyć do definiowania jednostek usługi Data Factory specyficznych dla łącznika OData.

Właściwości połączonej usługi

Następujące właściwości są obsługiwane w przypadku połączonej usługi OData:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na wartość OData. Tak
Adres URL Główny adres URL usługi OData. Tak
authenticationType Typ uwierzytelniania używanego do nawiązywania połączenia ze źródłem OData. Dozwolone wartości to Anonimowe, Podstawowe, Windows i AadServicePrincipal. Uwierzytelnianie OAuth oparte na użytkowniku nie jest obsługiwane. Ponadto można skonfigurować nagłówki uwierzytelniania we authHeader właściwości. Tak
authHeaders Dodatkowe nagłówki żądań HTTP na potrzeby uwierzytelniania.
Aby na przykład użyć uwierzytelniania klucza interfejsu API, możesz wybrać typ uwierzytelniania jako "Anonimowy" i określić klucz interfejsu API w nagłówku.
Nie.
userName Określ userName , jeśli używasz uwierzytelniania podstawowego lub Windows. Nie.
hasło Określ hasło dla konta użytkownika określonego dla userName. Oznacz to pole jako typ SecureString , aby przechowywać je bezpiecznie. Możesz również odwołać się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. Nie.
servicePrincipalId Określ identyfikator klienta aplikacji Microsoft Entra. Nie.
aadServicePrincipalCredentialType Określ typ poświadczeń, który ma być używany do uwierzytelniania jednostki usługi. Dozwolone wartości to: ServicePrincipalKey lub ServicePrincipalCert. Nie.
servicePrincipalKey Określ klucz aplikacji Microsoft Entra. Oznacz to pole jako element SecureString w celu bezpiecznego przechowywania go lub odwołuj się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. Nie.
servicePrincipalEmbeddedCert Określ certyfikat zakodowany w formacie base64 aplikacji zarejestrowanej w identyfikatorze Entra firmy Microsoft i upewnij się, że typ zawartości certyfikatu to PKCS #12. Oznacz to pole jako element SecureString w celu bezpiecznego przechowywania go lub odwołuj się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. Nie.
servicePrincipalEmbeddedCertPassword Określ hasło certyfikatu, jeśli certyfikat jest zabezpieczony hasłem. Oznacz to pole jako element SecureString w celu bezpiecznego przechowywania go lub odwołuj się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. Nie.
tenant Określ informacje o dzierżawie (nazwę domeny lub identyfikator dzierżawy), w ramach których znajduje się aplikacja. Pobierz go, umieszczając wskaźnik myszy w prawym górnym rogu witryny Azure Portal. Nie.
aadResourceId Określ zasób Firmy Microsoft Entra, którego żądasz w celu uzyskania autoryzacji. Nie.
azureCloudType W przypadku uwierzytelniania jednostki usługi określ typ środowiska chmury platformy Azure, do którego zarejestrowano aplikację Firmy Microsoft Entra.
Dozwolone wartości to AzurePublic, AzureChina, AzureUsGovernment i AzureGermany. Domyślnie używane jest środowisko chmury usługi.
Nie.
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Dowiedz się więcej w sekcji Wymagania wstępne . Jeśli nie zostanie określony, zostanie użyte domyślne środowisko Azure Integration Runtime. Nie.

Przykład 1: Używanie uwierzytelniania anonimowego

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

Przykład 2: Używanie uwierzytelniania podstawowego

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

Przykład 3: Używanie uwierzytelniania systemu 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"
        }
    }
}

Przykład 4. Używanie uwierzytelniania klucza jednostki usługi

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

Przykład 5. Używanie uwierzytelniania certyfikatu jednostki usługi

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

Przykład 6. Używanie uwierzytelniania klucza interfejsu 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"
        }
    }
}

Właściwości zestawu danych

Ta sekcja zawiera listę właściwości, które obsługuje zestaw danych OData.

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz Zestawy danych i połączone usługi.

Aby skopiować dane z OData, ustaw właściwość type zestawu danych na ODataResource. Obsługiwane są następujące właściwości:

Właściwości Opis Wymagania
type Właściwość type zestawu danych musi być ustawiona na wartość ODataResource. Tak
path Ścieżka do zasobu OData. Tak

Przykład

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

Właściwości działania kopiowania

Ta sekcja zawiera listę właściwości, które obsługuje źródło OData.

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz Pipelines (Potoki).

OData jako źródło

Aby skopiować dane z usługi OData, następujące właściwości są obsługiwane w sekcji Źródło działania kopiowania:

Właściwości Opis Wymagania
type Właściwość type źródła działania kopiowania musi być ustawiona na wartość ODataSource. Tak
zapytanie Opcje zapytania OData dotyczące filtrowania danych. Przykład: "$select=Name,Description&$top=5".

Uwaga: łącznik OData kopiuje dane z połączonego adresu URL: [URL specified in linked service]/[path specified in dataset]?[query specified in copy activity source]. Aby uzyskać więcej informacji, zobacz Składniki adresu URL OData.
Nie.
httpRequestTimeout Limit czasu ( wartość TimeSpan ) żądania HTTP w celu uzyskania odpowiedzi. Ta wartość to limit czasu pobierania odpowiedzi, a nie limit czasu odczytu danych odpowiedzi. Jeśli nie zostanie określona, wartość domyślna to 00:30:00 (30 minut). Nie.

Przykład

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

Jeśli używasz RelationalSource wpisanego źródła, nadal jest obsługiwana w taki sposób, jak jest, podczas gdy sugerowane jest użycie nowego źródła w przyszłości.

Mapowanie typów danych dla usługi OData

Podczas kopiowania danych z usługi OData następujące mapowania są używane między typami danych OData i tymczasowymi typami danych używanymi wewnętrznie w usłudze. Aby dowiedzieć się, jak działanie kopiowania mapuje schemat źródłowy i typ danych na ujście, zobacz Mapowania schematu i typu danych.

Typ danych OData Typ danych usługi tymczasowej
Edm.Binary Bajt[]
Edm.Boolean Bool
Edm.Byte Bajt[]
Edm.DateTime DateTime
Edm.Decimal Dziesiętne
Edm.Double Liczba rzeczywista
Edm.Single Pojedynczy
Edm.Guid Identyfikator GUID
Edm.Int16 Int16
Edm.Int32 Int32
Edm.Int64 Int64
Edm.SByte Int16
Edm.String String
Edm.Time przedział_czasu
Edm.DateTimeOffset DateTimeOffset

Uwaga

Złożone typy danych OData (takie jak Obiekt) nie są obsługiwane.

Kopiowanie danych z usługi Project Online

Usługa Project Online wymaga uwierzytelniania OAuth opartego na użytkowniku, który nie jest obsługiwany przez usługę Azure Data Factory. Aby skopiować dane z usługi Project Online, możesz użyć łącznika OData i tokenu dostępu uzyskanego z narzędzi takich jak Postman.

Uwaga

Token dostępu wygasa domyślnie po upływie 1 godziny, po wygaśnięciu nowego tokenu dostępu.

  1. Użyj narzędzia Postman , aby uzyskać token dostępu:

    1. Przejdź do karty Autoryzacja w witrynie internetowej narzędzia Postman.

    2. W polu Typ wybierz pozycję OAuth 2.0, a następnie w polu Dodaj dane autoryzacji wybierz pozycję Nagłówki żądań.

    3. Wypełnij następujące informacje na stronie Konfigurowanie nowego tokenu, aby uzyskać nowy token dostępu:

      • Typ udzielenia: wybierz pozycję Kod autoryzacji.
      • Adres URL wywołania zwrotnego: wprowadź .https://www.localhost.com/ 
      • Adres URL uwierzytelniania: wprowadź .https://login.microsoftonline.com/common/oauth2/authorize?resource=https://<your tenant name>.sharepoint.com Zastąp <your tenant name> ciąg własną nazwą dzierżawy.
      • Adres URL tokenu dostępu: wprowadź .https://login.microsoftonline.com/common/oauth2/token
      • Identyfikator klienta: wprowadź identyfikator jednostki usługi Firmy Microsoft Entra.
      • Klucz tajny klienta: wprowadź klucz tajny jednostki usługi.
      • Uwierzytelnianie klienta: wybierz pozycję Wyślij jako nagłówek uwierzytelniania podstawowego.
    4. Zostanie wyświetlony monit o zalogowanie się przy użyciu nazwy użytkownika i hasła.

    5. Po otrzymaniu tokenu dostępu skopiuj go i zapisz w następnym kroku.

    Screenshot of using Postman to get the access token.

  2. Utwórz połączoną usługę OData:

    • Adres URL usługi: wprowadź .https://<your tenant name>.sharepoint.com/sites/pwa/_api/Projectdata Zastąp <your tenant name> ciąg własną nazwą dzierżawy.
    • Typ uwierzytelniania: wybierz pozycję Anonimowe.
    • Nagłówki uwierzytelniania:
      • Nazwa właściwości: wybierz pozycję Autoryzacja.
      • Wartość: wprowadź .Bearer <access token from step 1>
    • Przetestuj połączoną usługę.

    Create OData linked service

  3. Utwórz zestaw danych OData:

    1. Utwórz zestaw danych za pomocą połączonej usługi OData utworzonej w kroku 2.
    2. Podgląd danych.

    Preview data

Właściwości działania wyszukiwania

Aby dowiedzieć się więcej o właściwościach, sprawdź działanie Wyszukiwania.

Aby uzyskać listę magazynów danych obsługiwanych przez działanie kopiowania jako źródła i ujścia, zobacz Obsługiwane magazyny danych i formaty.