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. In Microsoft Fabric können Sie alle erforderlichen Aufgaben ausführen, 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 1.0 wird entfernt. Es wird empfohlen, den Spark-Connector von Version 1.0 auf 2.0 zu aktualisieren.

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 Amazon Virtual Private 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

Zum Ausführen der Kopieraktivität mit einer Pipeline können Sie eines der folgenden Tools oder SDKs 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 zur 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: Spark-Connector.

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

    Screenshot: 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 Spark festgelegt werden. Ja
version 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
serverType Der Typ des Spark-Servers.
Der zulässige Wert lautet: SparkThriftServer
Nein
thriftTransportProtocol 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: 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
httpPath Die Teil-URL, die dem Spark-Server entspricht.
Für den Authentifizierungstyp „WindowsAzureHDInsightService“ lautet der Standardwert /sparkhive2.
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 Angabe erfolgt, 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 Spark festgelegt werden. 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
serverType Der Typ des Spark-Servers.
Zulässige Werte: SharkServer, SharkServer2, SparkThriftServer
Nein
thriftTransportProtocol Das auf der Thrift-Ebene zu verwendende Transportprotokoll.
Zulässige Werte: Binary, SASL, HTTP
Nein
Authentifizierungstyp Die Authentifizierungsmethode für den Zugriff auf den Spark-Server.
Zulässige Werte: 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
httpPath 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 Angabe erfolgt, 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 Typeigenschaft (type) des Datasets muss auf Folgendes 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 SparkSource festgelegt werden. 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 Double Double
Datumstyp Datum und Uhrzeit Datum und Uhrzeit
Zeitstempeltyp DateTimeOffset Datum und Uhrzeit
StringType Schnur Schnur
Binärtyp Byte[] Byte[]
Dezimaltyp Decimal Decimal
Zeichenfolge (Genauigkeit > 28)
ArrayType Schnur Schnur
StructType Schnur Schnur
Kartentyp Schnur Schnur
TimestampNTZType Datum und Uhrzeit Datum und Uhrzeit
JahrMonatIntervallTyp 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.

Connectorlebenszyklus und -upgrade für Spark

Die folgende Tabelle zeigt die Releasestufe und Änderungsprotokolle für verschiedene Versionen des Spark-Connectors:

Version Freigabestufe Änderungsprotokoll
Version 1.0 Entfernt Nicht zutreffend.
Version 2.0 GA-Version verfügbar enableServerCertificateValidation wird unterstützt.

• Der Standardwert von enableSSL ist „true“.

• Für den Authentifizierungstyp „WindowsAzureHDInsightService“ lautet der Standardwert von httpPath gleich /sparkhive2.

• „DecimalType“ wird als Dezimaldatentyp gelesen. 

• „TimestampType“ wird als DateTimeOffset-Datentyp gelesen.

• „YearMonthIntervalType“, „DayTimeIntervalType“ werden als String-Datentyp gelesen.

trustedCertPath, useSystemTrustStore, allowHostNameCNMismatch und allowSelfSignedServerCert werden nicht unterstützt.

• SharkServer und SharkServer2 werden für serverType nicht unterstützt.

• Binärdatei und SASL werden für thriftTransportProtocl nicht unterstützt.

• Der Authentifizierungstyp „Benutzername“ wird nicht unterstützt.

Aktualisieren des Spark-Connectors von Version 1.0 auf Version 2.0

  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".

Eine Liste der Datenspeicher, die als Quellen und Senken für die Copy-Aktivität unterstützt werden, finden Sie in der Dokumentation zu unterstützten Datenspeichern.