Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 einer Cassandra-Datenbank 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 Cassandra Connector Version 1.0 wird entfernt. Sie werden empfohlen, den Cassandra-Connector von Version 1.0 auf 2.0 zu aktualisieren.
Unterstützte Funktionen
Für den Cassandra-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 als Quellen/Senken unterstützten Datenspeicher finden Sie in der Tabelle Unterstützte Datenspeicher.
Der Cassandra-Connector unterstützt insbesondere Folgendes:
- Cassandra-Versionen 3.x.x und 4.x.x für Version 2.0.
- Cassandra-Versionen 2.x und 3.x für Version 1.0.
- Kopieren von Daten unter Verwendung der Standard- oder anonymen Authentifizierung
Hinweis
Für Aktivitäten in einer selbstgehosteten Integration Runtime wird seit IR-Version 3.7 Cassandra 3.x unterstützt.
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.
Die Integration Runtime bietet einen integrierten Cassandra-Treiber. Daher müssen beim Kopieren von Daten aus bzw. nach Cassandra keine Treiber manuell installiert werden.
Erste Schritte
Zum Ausführen der Kopieraktivität mit einer Pipeline können Sie eines der folgenden Tools oder SDKs verwenden:
- Datenkopier-Werkzeug
- Azure-Portal
- .NET SDK
- Python SDK
- Azure PowerShell
- REST-API
- Azure Resource Manager-Vorlage
Erstellen eines verknüpften Diensts für Cassandra über die Benutzeroberfläche
Führen Sie die folgenden Schritte aus, um über die Benutzeroberfläche des Azure-Portals einen verknüpften Dienst für Cassandra zu erstellen.
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“:
Suchen Sie nach Cassandra, und wählen Sie den Cassandra-Connector aus.
Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.
Details zur Connectorkonfiguration
Die folgenden Abschnitte enthalten Details zu Eigenschaften, die zum Definieren von Data Factory-Entitäten speziell für den Cassandra-Connector verwendet werden.
Eigenschaften des verknüpften Diensts
Folgende Eigenschaften werden für den mit Cassandra verknüpften Dienst unterstützt:
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| Typ | Die type-Eigenschaft muss auf Cassandra festgelegt werden. | Ja |
| version | Die von Ihnen angegebene Version. | Ja für Version 2.0. |
| Gastgeber | Mindestens eine IP-Adresse oder ein Hostname von Cassandra-Servern. Geben Sie eine durch Trennzeichen getrennte Liste mit IP-Adressen oder Hostnamen an, um gleichzeitig mit allen Servern Verbindungen herzustellen. |
Ja |
| Hafen | Der TCP-Port, den der Cassandra-Server verwendet, um auf Clientverbindungen zu lauschen. | Nein (Standard = 9042) |
| Authentifizierungstyp | Typ der Authentifizierung für die Verbindung mit der Cassandra-Datenbank. Zulässige Werte sind Basic oder Anonymous. |
Ja |
| Benutzername | Geben Sie einen Benutzernamen für das Benutzerkonto an. | Ja, wenn authenticationType auf „Basic“ (Standard) festgelegt ist. |
| Kennwort | Geben Sie ein Kennwort für das Benutzerkonto an. Markieren Sie dieses Feld als einen „SecureString“, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis. | Ja, wenn authenticationType auf „Basic“ (Standard) festgelegt ist. |
| connectVia | Die Integration Runtime, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden soll. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn keine Angabe erfolgt, wird die standardmäßige Azure Integration Runtime verwendet. | Nein |
Hinweis
Verbindungen mit Cassandra über TLS werden derzeit nicht unterstützt.
Beispiel: Version 2.0
{
"name": "CassandraLinkedService",
"properties": {
"type": "Cassandra",
"version": "2.0",
"typeProperties": {
"host": "<host>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Beispiel: Version 1.0
{
"name": "CassandraLinkedService",
"properties": {
"type": "Cassandra",
"typeProperties": {
"host": "<host>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Dataset-Eigenschaften
Eine vollständige Liste mit den Abschnitten und Eigenschaften zum Definieren von Datasets finden Sie im Artikel zu Datasets. Dieser Abschnitt enthält eine Liste der Eigenschaften, die vom Cassandra-Dataset unterstützt werden.
Legen Sie zum Kopieren von Daten aus Cassandra die type-Eigenschaft des Datasets auf CassandraTable fest. Folgende Eigenschaften werden unterstützt:
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| Typ | Die type-Eigenschaft des Datasets muss auf CassandraTable festgelegt werden. | Ja |
| keyspace | Name des Keyspace oder Schemas in der Cassandra-Datenbank. | Nein (wenn „query“ für „CassandraSource“ nicht angegeben ist) |
| Tabellenname | Name der Tabelle in der Cassandra-Datenbank. | Nein (wenn „query“ für „CassandraSource“ nicht angegeben ist) |
Beispiel:
{
"name": "CassandraDataset",
"properties": {
"type": "CassandraTable",
"typeProperties": {
"keySpace": "<keyspace name>",
"tableName": "<table name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<Cassandra 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 Cassandra-Quelle unterstützt werden.
Cassandra als Quelle
Wenn Sie Version 2.0 zum Kopieren von Daten aus Cassandra verwenden, legen Sie den Quelltyp in der Kopieraktivität auf CassandraSource 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 CassandraSource festgelegt werden. | Ja |
| query | Verwendet die benutzerdefinierte Abfrage zum Lesen von Daten. CQL-Abfrage finden Sie unter CQL-Referenz. | Nein (wenn „tableName“ und „keyspace“ im Dataset angegeben sind) |
| Konsistenzniveau | Mit der Konsistenzebene (consistencyLevel) wird angegeben, wie viele Replikate auf eine Leseanforderung reagieren müssen, bevor Daten an die Clientanwendung zurückgegeben werden. Cassandra überprüft die angegebene Anzahl von Replikaten auf Daten, um die Leseanforderung zu erfüllen. Ausführliche Informationen finden Sie unter Konfigurieren der Datenkonsistenz. Zulässige Werte: ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM und LOCAL_ONE. |
Nein (Standard = ONE) |
Beispiel:
"activities":[
{
"name": "CopyFromCassandra",
"type": "Copy",
"inputs": [
{
"referenceName": "<Cassandra input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "CassandraSource",
"query": "select id, firstname, lastname from mykeyspace.mytable",
"consistencyLevel": "one"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Wenn Sie Version 1.0 zum Kopieren von Daten aus Cassandra verwenden, legen Sie den Quelltyp in der Kopieraktivität auf CassandraSource 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 CassandraSource festgelegt werden. | Ja |
| query | Verwendet die benutzerdefinierte Abfrage zum Lesen von Daten. SQL-92-Abfrage oder CQL-Abfrage. Weitere Informationen finden Sie in der Referenz zu CQL. Bei Verwendung der SQL-Abfrage geben Sie die abzufragende Tabelle mit Keyspacename.Tabellenname an. |
Nein (wenn „tableName“ und „keyspace“ im Dataset angegeben sind) |
| Konsistenzniveau | Mit der Konsistenzebene (consistencyLevel) wird angegeben, wie viele Replikate auf eine Leseanforderung reagieren müssen, bevor Daten an die Clientanwendung zurückgegeben werden. Cassandra überprüft die angegebene Anzahl von Replikaten auf Daten, um die Leseanforderung zu erfüllen. Ausführliche Informationen finden Sie unter Konfigurieren der Datenkonsistenz. Zulässige Werte: ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM und LOCAL_ONE. |
Nein (Standard = ONE) |
Datentypzuordnung für Cassandra
Beim Kopieren von Daten aus Cassandra werden die folgenden Zuordnungen von Cassandra-Datentypen zu den vom Dienst intern verwendeten Zwischendatentypen verwendet. Unter Schema- und Datentypzuordnungen erfahren Sie, wie Sie Aktivitätszuordnungen für Quellschema und Datentyp in die Senke kopieren.
| Cassandra-Datentyp | Zwischendienstdatentyp (für Version 2.0) | Zwischendienstdatentyp (für Version 1.0) |
|---|---|---|
| ASCII | Schnur | Schnur |
| bigint | Int64 | Int64 |
| BLOB | Byte[] | Byte[] |
| BOOLEAN | Boolean | Boolean |
| Datum | DateTime | DateTime |
| DECIMAL | Dezimalzahl | Dezimalzahl |
| Double | Double | Double |
| GLEITKOMMAZAHL | Ledig | Ledig |
| INET | Schnur | Schnur |
| INT | Int32 | Int32 |
| SMALLINT | Short | Int16 |
| TEXT | Schnur | Schnur |
| timestamp | DateTime | DateTime |
| TIMEUUID | Leitfaden | Leitfaden |
| TINYINT | SByte | Int16 |
| UUID | Leitfaden | Leitfaden |
| VARCHAR | Schnur | Schnur |
| VARINT | Dezimalzahl | Dezimalzahl |
Hinweis
Weitere Informationen zu Sammlungstypen („map“, „set“, „list“ usw.) unter Version 1.0 finden Sie im Abschnitt Verwenden von Cassandra-Sammlungstypen mithilfe virtueller Tabellen unter Verwendung von Version 1.0.
Benutzerdefinierte Typen werden nicht unterstützt.
Die Länge von „Binary Column“ und „String Column“ darf 4.000 nicht übersteigen.
Arbeiten mit Sammlungen bei Verwendung von Version 2.0
Wenn Sie Mit Version 2.0 Daten aus Ihrer Cassandra-Datenbank kopieren, werden keine virtuellen Tabellen für Sammlungstypen erstellt. Sie können eine Quelltabelle im JSON-Format mit ihrem ursprünglichen Typ in die Senke kopieren.
Beispiel
Die folgende Beispieltabelle „ExampleTable“ ist beispielsweise eine Cassandra-Datenbanktabelle, die eine Spalte mit dem Namen „pk_int“ für ganzzahlige Primärschlüssel, eine Textspalte mit dem Namen „value“ und die Spalten „list“, „map“ und „set“ („StringSet“) enthält.
| pk_int | Wert | Liste | Karte | StringSet |
|---|---|---|---|---|
| 1 | "Beispielwert 1" | ["1", "2", "3"] | {"S1": "a", "S2": "b"} | {"A", "B", "C"} |
| 3 | "Beispielwert 3" | ["100", "101", "102", "105"] | {"S1": "t"} | {"A", "E"} |
Die Daten können direkt aus einer Quelltabelle gelesen werden, und die Spaltenwerte werden in ihren ursprünglichen Typen im JSON-Format beibehalten, wie in der folgenden Tabelle dargestellt:
| pk_int | Wert | Liste | Karte | StringSet |
|---|---|---|---|---|
| 1 | "Beispielwert 1" | ["1", "2", "3"] | {"S1": "a", "S2": "b"} | ["A"; "B"; "C"] |
| 3 | "Beispielwert 3" | ["100", "101", "102", "105"] | {"S1": "t"} | ["A", "E"] |
Arbeiten mit Sammlungen mithilfe einer virtuellen Tabelle bei Verwendung von Version 1.0
Der Dienst verwendet einen integrierten ODBC-Treiber, um eine Verbindung mit der Cassandra-Datenbank herzustellen und Daten daraus zu kopieren. Für Sammlungstypen, z. B. „map“, „set“ und „list“, normalisiert der Treiber die Daten erneut in die entsprechenden virtuellen Tabellen. Wenn eine Tabelle Sammlungsspalten enthält, generiert der Treiber die folgenden virtuellen Tabellen:
- Eine Basistabelle, die die gleichen Daten wie die tatsächliche Tabelle enthält, mit Ausnahme der Sammlungsspalten. Für die Basistabelle wird der gleiche Name wie für die tatsächliche Tabelle verwendet, die sie repräsentiert.
- Eine virtuelle Tabelle für jede Sammlungsspalte (Erweiterung der geschachtelten Daten). Die virtuellen Tabellen, die Sammlungen repräsentieren, werden mit dem Namen der tatsächlichen Tabelle benannt und erhalten zusätzlich das Trennzeichen „vt“ und den Namen der Spalte.
Virtuelle Tabellen beziehen sich auf die Daten in der echten Tabelle, sodass der Treiber auf die denormalisierten Daten zugreifen kann. Details finden Sie unten im Abschnitt mit dem Beispiel. Sie können auf den Inhalt von Cassandra-Sammlungen zugreifen, indem Sie die virtuellen Tabellen abfragen und verknüpfen.
Beispiel
Die folgende Beispieltabelle „ExampleTable“ ist beispielsweise eine Cassandra-Datenbanktabelle, die eine Spalte mit dem Namen „pk_int“ für ganzzahlige Primärschlüssel, eine Textspalte mit dem Namen „value“ und die Spalten „list“, „map“ und „set“ („StringSet“) enthält.
| pk_int | Wert | Liste | Karte | StringSet |
|---|---|---|---|---|
| 1 | "Beispielwert 1" | ["1", "2", "3"] | {"S1": "a", "S2": "b"} | {"A", "B", "C"} |
| 3 | "Beispielwert 3" | ["100", "101", "102", "105"] | {"S1": "t"} | {"A", "E"} |
Der Treiber erzeugt mehrere virtuelle Tabellen, um diese einzelne Tabelle zu repräsentieren. Die Fremdschlüsselspalten in den virtuellen Tabellen verweisen auf die Primärschlüsselspalten in der tatsächlichen Tabelle und geben an, welcher Zeile der tatsächlichen Tabelle die Zeile der virtuellen Tabelle entspricht.
Die erste virtuelle Tabelle ist die unten dargestellte Basistabelle mit dem Namen „ExampleTable“:
| pk_int | Wert |
|---|---|
| 1 | "Beispielwert 1" |
| 3 | "Beispielwert 3" |
Die Basistabelle enthält die gleichen Daten wie die ursprüngliche Datenbanktabelle, mit Ausnahme der Sammlungen, die in dieser Tabelle fehlen und in anderen virtuellen Tabellen enthalten sind.
Die folgenden Tabellen enthalten die virtuellen Tabellen, in denen die Daten aus den Spalten „List“, „Map“ und „StringSet“ erneut normalisiert werden. Die Spalten mit Namen, die auf „_index“ oder „_key“ enden, geben die Position der Daten in der Originalliste (list) bzw. -zuordnung (map) an. Die Spalten mit Namen, die auf „_value“ enden, enthalten die erweiterten Daten aus der Sammlung.
Tabelle „ExampleTable_vt_List“:
| pk_int | List_index | List_value |
|---|---|---|
| 1 | 0 | 1 |
| 1 | 1 | 2 |
| 1 | 2 | 3 |
| 3 | 0 | 100 |
| 3 | 1 | 101 |
| 3 | 2 | 102 |
| 3 | 3 | 103 |
Tabelle „ExampleTable_vt_Map“:
| pk_int | Map_key | Map_value |
|---|---|---|
| 1 | S1 | A |
| 1 | S2 | b |
| 3 | S1 | t |
Tabelle „ExampleTable_vt_StringSet“:
| pk_int | StringSet_value |
|---|---|
| 1 | A |
| 1 | B |
| 1 | C |
| 3 | A |
| 3 | E |
Eigenschaften der Lookup-Aktivität
Ausführliche Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität.
Aktualisieren des Cassandra-Connectors
Hier sind Schritte, mit denen Sie den Cassandra-Connector aktualisieren können:
Wählen Sie auf der Seite "Verknüpften Dienst bearbeiten" Version 2.0 aus, und konfigurieren Sie den verknüpften Dienst, indem Sie auf verknüpfte Diensteigenschaften verweisen.
In Version 2.0 unterstützt die Kopieraktivitätsquelle
querynur die CQL-Abfrage und nicht die SQL-92-Abfrage. Weitere Informationen finden Sie unter Cassandra als Quelle.Die Datentypzuordnung für Version 2.0 unterscheidet sich von der für Version 1.0. Informationen zur neuesten Datentypzuordnung finden Sie unter "Datentypzuordnung" für Cassandra.
Unterschiede zwischen Cassandra Version 2.0 und Version 1.0
Die Cassandra 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 |
|---|---|
| Unterstützt die CQL-Abfrage. | Unterstützen Sie SQL-92-Abfrage oder CQL-Abfrage. |
Unterstützung für das separate Angeben von keyspace und tableName im Datensatz. |
Unterstützt die Bearbeitung von keyspace, wenn Sie den Tabellennamen manuell im Dataset eingeben |
| Für Sammlungstypen werden keine virtuellen Tabellen erstellt. Weitere Informationen finden Sie unter Arbeiten mit Sammlungen bei Verwendung von Version 2.0. | Virtuelle Tabellen werden für Sammlungstypen erstellt. Weitere Informationen finden Sie unter Arbeiten mit Cassandra-Sammlungstypen mit virtueller Tabelle bei Verwendung von Version 1.0. |
| Die folgenden Zuordnungen von Cassandra-Datentypen zu Zwischendienstdatentypen werden verwendet. SMALLINT > Short TINYINT > SByte |
Die folgenden Zuordnungen von Cassandra-Datentypen zu Zwischendienstdatentypen werden verwendet. SMALLINT > Int16 TINYINT > Int16 |
Verwandte Inhalte
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.