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

Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisiert werden, um auf neue Funktionen in der Datenwissenschaft, Echtzeitanalysen und Berichterstellung zuzugreifen.

In diesem Artikel wird beschrieben, wie Sie die Kopieraktivität in einer Azure Data Factory- oder Synapse Analytics-Pipeline 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
Aktivität kopieren (Quelle/-) (1) (2)
Lookup-Aktivität (1) (2)

(1) Azure Integrationslaufzeit (2) Selbst gehostete Integrationslaufzeit

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, einem Azure virtuellen Netzwerk oder amazon Virtual Private Cloud befindet, müssen Sie eine self-gehostete Integrationslaufzeit konfigurieren, um eine Verbindung damit herzustellen.

Wenn Ihr Datenspeicher ein verwalteter Clouddatendienst ist, können Sie die Azure Integration Runtime verwenden. Wenn der Zugriff auf IPs beschränkt ist, die in den Firewallregeln genehmigt wurden, können Sie der Zulassungsliste Azure Integration Runtime-IPs hinzufügen.

Sie können auch das Feature managed virtual network integration runtime in Azure Data Factory verwenden, um auf das lokale Netzwerk zuzugreifen, ohne eine selbst gehostete Integrationslaufzeit 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

Führen Sie die folgenden Schritte aus, um einen verknüpften Dienst mit Spark in der benutzeroberfläche des Azure Portals zu erstellen.

  1. Navigieren Sie in Ihrem Azure Data Factory- oder Synapse-Arbeitsbereich zur Registerkarte "Verwalten", und 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 port als 443 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 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 Integration Runtime wird verwendet, um eine Verbindung mit dem Datenspeicher herzustellen. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn nicht angegeben, wird die Standard-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 port als 443 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 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 Integration Runtime wird verwendet, um eine Verbindung mit dem Datenspeicher herzustellen. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn nicht angegeben, wird die Standard-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.