Freigeben über


Kopieren von Daten aus Spark 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 Spark zu kopieren. Er baut auf dem Artikel zur Übersicht über die Kopieraktivität auf, der eine allgemeine Übersicht über die Kopieraktivität enthält.

Von Bedeutung

Die Spark Connector-Version 2.0 bietet verbesserte native Spark-Unterstützung. Wenn Sie Spark Connector Version 1.0 in Ihrer Lösung verwenden, aktualisieren Sie den Spark-Connector vor dem30. September 2025. Ausführliche Informationen zu den Unterschieden zwischen Version 2.0 und Version 1.0 finden Sie in diesem Abschnitt.

Unterstützte Funktionen

Für den Spark-Connector werden die folgenden Funktionen unterstützt:

Unterstützte Funktionen IR
Kopieraktivität (Quelle/-) (1) (2)
Lookup-Aktivität (1) (2)

① Azure Integration Runtime ② Selbstgehostete Integration Runtime

Eine Liste der Datenspeicher, die als Quellen oder Senken für die Kopieraktivität unterstützt werden, finden Sie in der Tabelle Unterstützte Datenspeicher.

Der Dienst enthält einen integrierten Treiber zum Herstellen der Konnektivität. Daher müssen Sie keinen Treiber manuell installieren, wenn dieser Connector verwendet wird.

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:

Erstellen eines verknüpften Diensts mit Spark über die Benutzeroberfläche

Verwenden Sie die folgenden Schritte, um einen verknüpften Dienst mit Spark auf der Azure-Portal Benutzeroberfläche zu erstellen.

  1. Navigieren Sie in Ihrem Azure Data Factory- oder Synapse-Arbeitsbereich zu der Registerkarte „Verwalten“, wählen Sie „Verknüpfte Dienste“ aus, und klicken Sie dann auf „Neu“:

  2. Suchen Sie nach Spark, und wählen Sie den Spark-Connector aus.

    Screenshot des Spark-Connectors

  3. Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.

    Screenshot mit der Konfiguration des verknüpften Diensts für Spark

Details zur Connectorkonfiguration

Die folgenden Abschnitte enthalten Details zu Eigenschaften, die zum Definieren von Data Factory-Entitäten speziell für den Spark-Connector verwendet werden.

Eigenschaften des verknüpften Diensts

Der Spark-Connector unterstützt jetzt Version 2.0. Lesen Sie diesen Abschnitt , um die Spark Connector-Version von Version 1.0 zu aktualisieren. Einzelheiten zur Eigenschaft finden Sie in den entsprechenden Abschnitten.

Version 2.0

Die folgenden Eigenschaften werden für Spark linked service Version 2.0 unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft muss auf Folgendes festgelegt werden: Spark Ja
Ausgabe Die von Ihnen angegebene Version. Der Wert ist 2.0. Ja
Gastgeber IP-Adresse oder Hostname des Spark-Servers Ja
Hafen Der TCP-Port, den der Spark-Server verwendet, um auf Clientverbindungen zu lauschen. Wenn Sie eine Verbindung mit Azure HDInsight herstellen, geben Sie „443“ als Port an. Ja
serverTyp Der Typ des Spark-Servers.
Der zulässige Wert lautet: SparkThriftServer
Nein
thriftTransportProtokoll Das auf der Thrift-Ebene zu verwendende Transportprotokoll.
Der zulässige Wert lautet: HTTP
Nein
Authentifizierungstyp Die Authentifizierungsmethode für den Zugriff auf den Spark-Server.
Zulässige Werte sind: Anonymous, UsernameAndPassword, WindowsAzureHDInsightService
Ja
Benutzername Der Benutzername für den Zugriff auf den Spark-Server. Nein
Kennwort Das Kennwort für den Benutzer. Markieren Sie dieses Feld als einen „SecureString“, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis. Nein
httpPfad Die Teil-URL, die dem Spark-Server entspricht. Nein
SSL aktivieren Gibt an, ob Verbindungen mit dem Server mit TLS verschlüsselt werden. Der Standardwert ist true. Nein
Aktivierung der Serverzertifikatsvalidierung Geben Sie an, ob die Ssl-Zertifikatüberprüfung auf dem Server aktiviert werden soll, wenn Sie eine Verbindung herstellen.
Verwenden Sie immer den System Trust Store. Der Standardwert ist true.
Nein
connectVia Die Integrationslaufzeit, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden muss. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn keine Option angegeben ist, wird die standardmäßige Azure Integration Runtime verwendet. Nein

Beispiel:

{
    "name": "SparkLinkedService",
    "properties": {
        "type": "Spark",
        "version": "2.0",
        "typeProperties": {
            "host": "<cluster>.azurehdinsight.net",
            "port": "<port>",
            "authenticationType": "WindowsAzureHDInsightService",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

Version 1.0

Die folgenden Eigenschaften werden für Spark Linked Service Version 1.0 unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft muss auf Folgendes festgelegt werden: Spark Ja
Gastgeber IP-Adresse oder Hostname des Spark-Servers Ja
Hafen Der TCP-Port, den der Spark-Server verwendet, um auf Clientverbindungen zu lauschen. Wenn Sie eine Verbindung mit Azure HDInsight herstellen, geben Sie „443“ als Port an. Ja
serverTyp Der Typ des Spark-Servers.
Zulässige Werte sind: SharkServer, SharkServer2, SparkThriftServer
Nein
thriftTransportProtokoll Das auf der Thrift-Ebene zu verwendende Transportprotokoll.
Zulässige Werte sind: Binary, SASL, HTTP
Nein
Authentifizierungstyp Die Authentifizierungsmethode für den Zugriff auf den Spark-Server.
Zulässige Werte sind: Anonymous, Username, UsernameAndPassword, WindowsAzureHDInsightService
Ja
Benutzername Der Benutzername für den Zugriff auf den Spark-Server. Nein
Kennwort Das Kennwort für den Benutzer. Markieren Sie dieses Feld als einen „SecureString“, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis. Nein
httpPfad Die Teil-URL, die dem Spark-Server entspricht. Nein
SSL aktivieren Gibt an, ob Verbindungen mit dem Server mit TLS verschlüsselt werden. Der Standardwert ist „FALSE“. Nein
VertrauenswürdigerZertifikatspfad Der vollständige Pfad der PEM-Datei mit vertrauenswürdigen Zertifizierungsstellenzertifikaten zur Überprüfung des Servers beim Verbindungsaufbau über TLS. Diese Eigenschaft kann nur festgelegt werden, wenn TLS in einer selbstgehosteten IR verwendet wird. Der Standardwert ist die Datei „cacerts.pem“, die mit der IR installiert wird. Nein
useSystemTrustStore Gibt an, ob ein Zertifizierungsstellenzertifikat aus dem Vertrauensspeicher des Systems oder aus einer angegebenen PEM-Datei verwendet werden soll. Der Standardwert ist „FALSE“. Nein
allowHostNameCNMismatch Gibt an, ob der Name eines von der Zertifizierungsstelle ausgestellten TLS-/SSL-Zertifikats mit dem Hostnamen des Servers übereinstimmen muss, wenn eine Verbindung über TLS hergestellt wird. Der Standardwert ist „FALSE“. Nein
Selbstsigniertes Serverzertifikat zulassen Gibt an, ob vom Server selbstsignierte Zertifikate zugelassen werden. Der Standardwert ist „FALSE“. Nein
connectVia Die Integrationslaufzeit, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden muss. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn keine Option angegeben ist, wird die standardmäßige Azure Integration Runtime verwendet. Nein

Beispiel:

{
    "name": "SparkLinkedService",
    "properties": {
        "type": "Spark",
        "typeProperties": {
            "host": "<cluster>.azurehdinsight.net",
            "port": "<port>",
            "authenticationType": "WindowsAzureHDInsightService",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

Dataset-Eigenschaften

Eine vollständige Liste mit den Abschnitten und Eigenschaften, die zum Definieren von Datasets zur Verfügung stehen, finden Sie im Artikel zu Datasets. Dieser Abschnitt enthält eine Liste der Eigenschaften, die vom Spark-Dataset unterstützt werden.

Legen Sie zum Kopieren von Daten aus Spark die „type“-Eigenschaft des Datasets auf SparkObject fest. Folgende Eigenschaften werden unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft des Datasets muss auf folgenden Wert festgelegt werden: SparkObject Ja
Schema Name des Schemas. Nein (wenn „query“ in der Aktivitätsquelle angegeben ist)
Tisch Der Name der Tabelle. Nein (wenn „query“ in der Aktivitätsquelle angegeben ist)
Tabellenname Name der Tabelle mit Schema. Diese Eigenschaft wird aus Gründen der Abwärtskompatibilität weiterhin unterstützt. Verwenden Sie schema und table für eine neue Workload. Nein (wenn „query“ in der Aktivitätsquelle angegeben ist)

Beispiel

{
    "name": "SparkDataset",
    "properties": {
        "type": "SparkObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Spark linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Eigenschaften der Kopieraktivität

Eine vollständige Liste mit den Abschnitten und Eigenschaften zum Definieren von Aktivitäten finden Sie im Artikel Pipelines. Dieser Abschnitt enthält eine Liste der Eigenschaften, die von der Spark-Quelle unterstützt werden.

Spark als Quelle

Legen Sie zum Kopieren von Daten aus Spark den Quelltyp in der Kopieraktivität auf SparkSource fest. Folgende Eigenschaften werden im Abschnitt source der Kopieraktivität unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft der Quelle der Kopieraktivität muss auf Folgendes festgelegt werden: SparkSource Ja
Abfrage Verwendet die benutzerdefinierte SQL-Abfrage zum Lesen von Daten. Beispiel: "SELECT * FROM MyTable". Nein (wenn „tableName“ im Dataset angegeben ist)

Beispiel:

"activities":[
    {
        "name": "CopyFromSpark",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Spark input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SparkSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Datentypzuordnung für Spark

Wenn Sie Daten aus und in Spark kopieren, werden die folgenden Zwischendatentypzuordnungen innerhalb des Diensts verwendet. Informationen dazu, wie die Kopieraktivität das Quellschema und den Datentyp der Spüle zuordnet, finden Sie unter Schema- und Datentypzuordnungen.

Spark-Datentyp Zwischendienstdatentyp (für Version 2.0) Zwischendienstdatentyp (für Version 1.0)
Boolean-Typ Boolean Boolean
ByteType Sbyte Int16
ShortType Int16 Int16
IntegerType Int32 Int32
LongType Int64 Int64
FloatType Ledig Ledig
DoubleType Doppelt Doppelt
Datumstyp Datum und Uhrzeit Datum und Uhrzeit
Zeitstempeltyp Datum/Uhrzeit-Offset Datum und Uhrzeit
StringType Schnur Schnur
Binärtyp Byte[] Byte[]
Dezimaltyp Dezimal Dezimal
ArrayType Schnur Schnur
StructType Schnur Schnur
Kartentyp Schnur Schnur
TimestampNTZType Datum und Uhrzeit Datum und Uhrzeit
YearMonthIntervalType Schnur Nicht unterstützt. 
Tageszeitintervalltyp Schnur Nicht unterstützt.

Eigenschaften der Lookup-Aktivität

Ausführliche Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität.

Aktualisieren des Spark-Connectors

  1. Wählen Sie auf der Seite "Verknüpften Dienst bearbeiten" 2.0 für die Version aus, und konfigurieren Sie den Verknüpften Dienst, indem Sie auf die Verknüpften Diensteigenschaften Version 2.0 verweisen.

  2. Die Datentypzuordnung für die verknüpfte Spark-Dienstversion 2.0 unterscheidet sich von der für die Version 1.0. Informationen zur neuesten Datentypzuordnung finden Sie unter "Datentypzuordnung für Spark".

Unterschiede zwischen Spark Version 2.0 und Version 1.0

Die Spark Connector Version 2.0 bietet neue Funktionen und ist mit den meisten Features von Version 1.0 kompatibel. Die folgende Tabelle zeigt die Featureunterschiede zwischen Version 2.0 und Version 1.0.

Version 2.0 Version 1.0
SharkServer und SharkServer2 werden für serverType nicht unterstützt. Unterstützen Sie SharkServer und SharkServer2 bei serverType.
Binär und SASL werden für thriftTransportProtocl nicht unterstützt. Unterstützung von Binary und SASL für thriftTransportProtocl.
Der Authentifizierungstyp "Benutzername" wird nicht unterstützt. Unterstützen Sie den Authentifizierungstyp "Benutzername".
Der Standardwert lautet enableSSL "true". trustedCertPath, useSystemTrustStoreallowHostNameCNMismatch und allowSelfSignedServerCert werden nicht unterstützt.

enableServerCertificateValidation wird unterstützt.
Der Standardwert lautet enableSSL "false". Darüber hinaus unterstützen trustedCertPath, useSystemTrustStore, allowHostNameCNMismatch und allowSelfSignedServerCert.

enableServerCertificateValidation wird nicht unterstützt.
Die folgenden Zuordnungen werden von Spark-Datentypen zu Zwischendienstdatentypen verwendet, die intern vom Dienst verwendet werden.

TimestampType -> DateTimeOffset
YearMonthIntervalType -> String
DayTimeIntervalType -> String
Die folgenden Zuordnungen werden von Spark-Datentypen zu Zwischendienstdatentypen verwendet, die intern vom Dienst verwendet werden.

TimestampTyp -> DatumUhrzeit
Andere Zuordnungen, die von Version 2.0 (Vorschau) unterstützt werden und links aufgelistet sind, werden von Version 1.0 nicht unterstützt.

Eine Liste der Datenspeicher, die als Quelles und Senken für die Kopieraktivität unterstützt werden, finden Sie in der Dokumentation für Unterstützte Datenspeicher.