Kopieren von Daten aus einer OData-Quelle mithilfe von Azure Data Factory oder Synapse Analytics
GILT FÜR: Azure Data Factory Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
In diesem Artikel wird beschrieben, wie Sie die Copy-Aktivität in Azure Data Factory- oder Azure Synapse Analytics-Pipelines verwenden, um Daten aus einer OData-Quelle zu kopieren. Dieser Artikel baut auf dem Artikel zur Kopieraktivität auf, der eine allgemeine Übersicht über die Kopieraktivität enthält.
Unterstützte Funktionen
Für den OData-Connector werden die folgenden Funktionen unterstützt:
Unterstützte Funktionen | IR |
---|---|
Kopieraktivität (Quelle/-) | ① ② |
Lookup-Aktivität | ① ② |
① Azure Integration Runtime ② Selbstgehostete Integration Runtime
Eine Liste der Datenspeicher, die als Quellen/Senken unterstützt werden, finden Sie unter Unterstützte Datenspeicher.
Der OData-Connector unterstützt insbesondere Folgendes:
- OData Version 2.0, 3.0 und 4.0.
- Kopieren von Daten mithilfe einer der folgenden Authentifizierungen: Anonym, Standard, Windows und Microsoft Entra-Dienstprinzipal.
Voraussetzungen
Wenn sich Ihr Datenspeicher in einem lokalen Netzwerk, in einem virtuellen Azure-Netzwerk oder in einer virtuellen privaten Amazon-Cloud befindet, müssen Sie eine selbstgehostete Integration Runtime konfigurieren, um eine Verbindung herzustellen.
Handelt es sich bei Ihrem Datenspeicher um einen verwalteten Clouddatendienst, können Sie die Azure Integration Runtime verwenden. Ist der Zugriff auf IP-Adressen beschränkt, die in den Firewallregeln genehmigt sind, können Sie Azure Integration Runtime-IPs zur Positivliste hinzufügen.
Sie können auch das Feature managed virtual network integration runtime (Integration Runtime für verwaltete virtuelle Netzwerke) in Azure Data Factory verwenden, um auf das lokale Netzwerk zuzugreifen, ohne eine selbstgehostete Integration Runtime zu installieren und zu konfigurieren.
Weitere Informationen zu den von Data Factory unterstützten Netzwerksicherheitsmechanismen und -optionen finden Sie unter Datenzugriffsstrategien.
Erste Schritte
Sie können eines der folgenden Tools oder SDKs verwenden, um die Kopieraktivität mit einer Pipeline zu verwenden:
- Das Tool „Daten kopieren“
- Azure-Portal
- Das .NET SDK
- Das Python SDK
- Azure PowerShell
- Die REST-API
- Die Azure Resource Manager-Vorlage
Erstellen eines verknüpften Diensts mit einem OData-Speicher über die Benutzeroberfläche
Verwenden Sie die folgenden Schritte, um einen verknüpften Dienst mit einem OData-Speicher auf dem Azure-Portal erstellen.
Navigieren Sie in Ihrem Azure Data Factory- oder Synapse-Arbeitsbereich zur Registerkarte „Verwalten“, und wählen Sie „Verknüpfte Dienste“ und anschließend „Neu“ aus:
Suchen Sie nach OData, und wählen Sie den OData-Connector aus.
Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.
Details zur Connector-Konfiguration
In den folgenden Abschnitten finden Sie Details zu Eigenschaften, mit denen Sie Data Factory-Entitäten definieren können, die spezifisch für einen OData-Connector sind.
Eigenschaften des verknüpften Diensts
Folgende Eigenschaften werden für einen mit OData verknüpften Dienst unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft muss auf OData festgelegt werden. | Ja |
url | Die Stamm-URL des OData-Diensts. | Ja |
authenticationType | Der Typ der Authentifizierung für die Verbindung mit der OData-Quelle. Zulässige Werte: Anonymous, Basic, Windows und AadServicePrincipal. OAuth auf Benutzerbasis wird nicht unterstützt. Außerdem können Sie Authentifizierungsheader in der authHeader -Eigenschaft konfigurieren. |
Ja |
authHeaders | Zusätzliche HTTP-Anforderungsheader für die Authentifizierung. Wenn Sie beispielsweise die Authentifizierung mit einem API-Schlüssel verwenden möchten, können Sie als Authentifizierungstyp „Anonym“ auswählen und im Header den API-Schlüssel angeben. |
Nein |
userName | Geben Sie userName an, wenn Sie die Standard- oder die Windows-Authentifizierung verwenden. | Nein |
password | Geben Sie das password für das Benutzerkonto an, das Sie für userName angegeben haben. Markieren Sie dieses Feld als Typ SecureString, um es sicher zu speichern. Sie können auch auf ein Geheimnis verweisen, das in Azure Key Vault gespeichert ist. | Nein |
servicePrincipalId | Geben Sie die Client-ID der Microsoft Entra-Anwendung an. | Nein |
aadServicePrincipalCredentialType | Geben Sie die Art der Anmeldeinformationen für die Dienstprinzipalauthentifizierung an. Zulässiger Wert: ServicePrincipalKey oder ServicePrincipalCert . |
Nein |
servicePrincipalKey | Geben Sie den Schlüssel der Microsoft Entra-Anwendung an. Markieren Sie dieses Feld als SecureString, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis. | Nein |
servicePrincipalEmbeddedCert | Geben Sie das base64-codierte Zertifikat Ihrer in Microsoft Entra ID registrierten Anwendung an, und stellen Sie sicher, dass der Zertifikatsinhaltstyp PKCS #12 lautet. Markieren Sie dieses Feld als SecureString, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis. | Nein |
servicePrincipalEmbeddedCertPassword | Geben Sie das Kennwort Ihres Zertifikats an, falls Ihr Zertifikat mit einem Kennwort geschützt ist. Markieren Sie dieses Feld als SecureString, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis. | Nein |
tenant | Geben Sie die Mandanteninformationen (Domänenname oder Mandanten-ID) für Ihre Anwendung an. Diese können Sie abrufen, indem Sie den Mauszeiger über den rechten oberen Bereich im Azure-Portal bewegen. | Nein |
aadResourceId | Geben Sie die Microsoft Entra-Ressource an, die Sie zur Autorisierung anfordern. | Nein |
azureCloudType | Geben Sie für die Dienstprinzipalauthentifizierung die Art der Azure-Cloudumgebung an, bei der Ihre Microsoft Entra-Anwendung registriert ist. Zulässige Werte sind AzurePublic, AzureChina, AzureUsGovernment und AzureGermany. Standardmäßig wird die Cloudumgebung des Diensts verwendet. |
Nein |
connectVia | Die Integration Runtime, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden soll. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn keine Option angegeben ist, wird die standardmäßige Azure Integration Runtime verwendet. | Nein |
Beispiel 1: Verwenden der anonymen Authentifizierung
{
"name": "ODataLinkedService",
"properties": {
"type": "OData",
"typeProperties": {
"url": "https://services.odata.org/OData/OData.svc",
"authenticationType": "Anonymous"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Beispiel 2: Verwenden der Standardauthentifizierung
{
"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"
}
}
}
Beispiel 3: Verwenden der Windows-Authentifizierung
{
"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"
}
}
}
Beispiel 4: Verwenden der Dienstprinzipal-Schlüsselauthentifizierung
{
"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"
}
}
Beispiel 5: Verwenden der Dienstprinzipal-Zertifikatauthentifizierung
{
"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"
}
}
Beispiel 6: Verwenden der Authentifizierung mit API-Schlüssel
{
"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"
}
}
}
Dataset-Eigenschaften
Dieser Abschnitt enthält eine Liste der Eigenschaften, die das OData-Dataset unterstützt.
Eine vollständige Liste mit den Abschnitten und Eigenschaften, die zum Definieren von Datasets zur Verfügung stehen, finden Sie unter Datasets und verknüpfte Dienste.
Legen Sie zum Kopieren von Daten aus OData die type-Eigenschaft des Datasets auf ODataResource fest. Folgende Eigenschaften werden unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft des Datasets muss auf ODataResource festgelegt werden. | Ja |
path | Der Pfad zur OData-Ressource. | Ja |
Beispiel
{
"name": "ODataDataset",
"properties":
{
"type": "ODataResource",
"schema": [],
"linkedServiceName": {
"referenceName": "<OData linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties":
{
"path": "Products"
}
}
}
Eigenschaften der Kopieraktivität
Dieser Abschnitt enthält eine Liste der Eigenschaften, die die OData-Quelle unterstützt.
Eine vollständige Liste mit den verfügbaren Abschnitten und Eigenschaften zum Definieren von Aktivitäten finden Sie unter Pipelines.
OData als Quelle
Beim Kopieren von Daten aus OData werden die folgenden Eigenschaften im Abschnitt source der Kopieraktivität unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft der Quelle der Kopieraktivität muss auf ODataSource festgelegt werden. | Ja |
Abfrage | OData-Abfrageoptionen zum Filtern von Daten. Beispiel: "$select=Name,Description&$top=5" .Hinweis: Der OData-Connector kopiert Daten aus der kombinierten URL: [URL specified in linked service]/[path specified in dataset]?[query specified in copy activity source] . Weitere Informationen finden Sie unter Komponenten der OData-URL. |
Nein |
httpRequestTimeout | Das Timeout (der Wert TimeSpan) für die HTTP-Anforderung, um eine Antwort zu empfangen. Bei diesem Wert handelt es sich um das Timeout zum Empfangen einer Antwort, nicht um das Timeout zum Lesen von Antwortdaten. Wenn Sie hier nichts angeben, lautet der Standardwert 00:30:00 (30 Minuten). | Nein |
Beispiel
"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>"
}
}
}
]
Wenn Sie eine Quelle vom Typ RelationalSource
verwenden, wird sie weiterhin unverändert unterstützt. Es wird jedoch empfohlen, zukünftig die neue Version zu verwenden.
Datentypzuordnung für OData
Beim Kopieren von Daten aus OData werden die folgenden Zuordnungen zwischen OData-Datentypen und den vom Dienst intern verwendeten Zwischendatentypen verwendet. Unter Schema- und Datentypzuordnungen erfahren Sie, wie die Kopieraktivität das Quellschema und den Datentyp der Senke zuordnet.
OData-Datentyp | Zwischendatentyp des Diensts |
---|---|
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 |
Hinweis
Komplexe OData-Datentypen (z.B. Object) werden nicht unterstützt.
Kopieren von Daten aus Project Online
Project Online erfordert ein benutzerbasiertes OAuth-Protokoll, welches nicht von Azure Data Factory unterstützt wird. Zum Kopieren von Daten aus Project Online können Sie den OData-Connector und ein Zugriffstoken verwenden, das von Tools wie Postman abgerufen wird.
Achtung
Das Zugriffstoken läuft standardmäßig in 1 Stunde ab, Sie müssen ein neues Zugriffstoken erhalten, wenn es abläuft.
Verwenden Sie Postman , um das Zugriffstoken zu erhalten:
Hinweis
Postman wird von einigen Entwickelnden zum Testen von Remoteweb-APIs verwendet. Es gibt jedoch einige Sicherheits- und Datenschutzrisiken, die mit dieser Nutzung verbunden sind. In diesem Artikel wird die Verwendung von Postman für Produktionsumgebungen nicht empfohlen. Sie verwenden diese Komponente auf eigenes Risiko.
- Navigieren Sie auf der Postman-Website zur Registerkarte Autorisierung.
- Wählen Sie im Feld Typ die Option OAuth 2,0aus, und wählen Sie im Feld Autorisierungsdaten hinzufügen die Option Anforderungsheaderaus.
- Füllen Sie die folgenden Informationen auf der Seite neues Token konfigurieren aus, um ein neues Zugriffstoken zu erhalten:
- Gewährungstyp: Wählen Sie Autorisierungscodeaus.
- Rückruf-URL: Eingeben
https://www.localhost.com/
. - Auth URL: Eingeben
https://login.microsoftonline.com/common/oauth2/authorize?resource=https://<your tenant name>.sharepoint.com
. Ersetzen Sie<your tenant name>
durch Ihren eigenen Tenant-Namen. - Zugriffstoken-URL: Eingeben
https://login.microsoftonline.com/common/oauth2/token
. - Client-ID: Geben Sie Ihre Microsoft Entra-Dienstprinzipal-ID ein.
- Geheimer Clientschlüssel: Geben Sie Ihren Dienstprinzipal-Geheimnis ein.
- Client-Authentifizierung: Wählen Sie als grundlegenden Authentifizierungsheader sendenaus.
- Sie werden aufgefordert, sich mit Ihrem Benutzernamen und Kennwort anzumelden.
- Nachdem Sie Ihr Zugriffstoken erhalten haben, kopieren Sie es, und speichern Sie es für den nächsten Schritt.
Erstellen Sie den verknüpften OData-Dienst:
- Dienst-URL: Eingeben
https://<your tenant name>.sharepoint.com/sites/pwa/_api/Projectdata
. Ersetzen Sie<your tenant name>
durch Ihren eigenen Tenant-Namen. - Authentifizierungstyp: Wählen Sie Anonym aus.
- Autorisierungsheader:
- Eigenschaftsname: Wählen Sie Autorisierungaus.
- Wert: Geben Sie
Bearer <access token from step 1>
ein.
- Testen des verknüpften Dienstes
- Dienst-URL: Eingeben
Erstellen Sie das OData-Dataset:
- Erstellen Sie das Dataset t mit dem verknüpften OData-Dienst, den Sie in Schritt 2 erstellt haben.
- Datenvorschau
Eigenschaften der Lookup-Aktivität
Ausführliche Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität.
Zugehöriger Inhalt
Eine Liste der Datenspeicher, die die Kopieraktivität als Quellen und Senken unterstützt, finden Sie unter Unterstützte Datenspeicher und Formate.