Gegevens kopiëren uit Cassandra met behulp van Azure Data Factory of Synapse Analytics

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In dit artikel wordt beschreven hoe u de kopieeractiviteit gebruikt in een Azure Data Factory- of Synapse Analytics-pijplijn om gegevens uit een Cassandra-database te kopiëren. Het is gebaseerd op het artikel over het overzicht van kopieeractiviteiten met een algemeen overzicht van de kopieeractiviteit.

Ondersteunde mogelijkheden

Deze Cassandra-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Copy-activiteit (bron/-) ① ②
Activiteit Lookup ① ②

(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime

Zie de tabel Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen/sinks.

Deze Cassandra-connector ondersteunt met name:

  • Cassandra-versies 2.x en 3.x.
  • Gegevens kopiëren met basis- of anonieme verificatie.

Notitie

Voor activiteiten die worden uitgevoerd op zelf-hostende Integration Runtime, wordt Cassandra 3.x ondersteund sinds IR-versie 3.7 en hoger.

Vereisten

Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.

Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.

U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.

Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.

Integration Runtime biedt een ingebouwd Cassandra-stuurprogramma, dus u hoeft geen stuurprogramma handmatig te installeren bij het kopiëren van gegevens van/naar Cassandra.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Een gekoppelde service maken voor Cassandra met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde service te maken voor Cassandra in de gebruikersinterface van Azure Portal.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:

  2. Zoek naar Cassandra en selecteer de Cassandra-connector.

    Screenshot of the Cassandra connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Screenshot of linked service configuration for Cassandra.

configuratiedetails Verbinding maken or

De volgende secties bevatten details over eigenschappen die worden gebruikt voor het definiëren van Data Factory-entiteiten die specifiek zijn voor cassandra-connector.

Eigenschappen van gekoppelde service

De volgende eigenschappen worden ondersteund voor de gekoppelde Cassandra-service:

Eigenschappen Beschrijving Vereist
type De typeeigenschap moet worden ingesteld op: Cassandra Ja
host Een of meer IP-adressen of hostnamen van Cassandra-servers.
Geef een door komma's gescheiden lijst met IP-adressen of hostnamen op om gelijktijdig verbinding te maken met alle servers.
Ja
poort De TCP-poort die de Cassandra-server gebruikt om te luisteren naar clientverbindingen. Nee (standaard is 9042)
authenticationType Type verificatie dat wordt gebruikt om verbinding te maken met de Cassandra-database.
Toegestane waarden zijn: Basic en Anoniem.
Ja
gebruikersnaam Geef de gebruikersnaam op voor het gebruikersaccount. Ja, als authenticationType is ingesteld op Basic.
password Geef het wachtwoord op voor het gebruikersaccount. Markeer dit veld als SecureString om het veilig op te slaan of verwijs naar een geheim dat is opgeslagen in Azure Key Vault. Ja, als authenticationType is ingesteld op Basic.
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nr.

Notitie

De verbinding met Cassandra met behulp van TLS wordt momenteel niet ondersteund.

Voorbeeld:

{
    "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"
        }
    }
}

Eigenschappen van gegevensset

Zie het artikel gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets . Deze sectie bevat een lijst met eigenschappen die worden ondersteund door cassandra-gegevensset.

Als u gegevens uit Cassandra wilt kopiëren, stelt u de typeeigenschap van de gegevensset in op CassandraTable. De volgende eigenschappen worden ondersteund:

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op: CassandraTable Ja
keyspace Naam van de keyspace of het schema in de Cassandra-database. Nee (als 'query' voor 'CassandraSource' is opgegeven)
tableName Naam van de tabel in cassandra-database. Nee (als 'query' voor 'CassandraSource' is opgegeven)

Voorbeeld:

{
    "name": "CassandraDataset",
    "properties": {
        "type": "CassandraTable",
        "typeProperties": {
            "keySpace": "<keyspace name>",
            "tableName": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Cassandra linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Eigenschappen van de kopieeractiviteit

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door cassandra-bron.

Cassandra als bron

Als u gegevens uit Cassandra wilt kopiëren, stelt u het brontype in de kopieeractiviteit in op CassandraSource. De volgende eigenschappen worden ondersteund in de sectie bron van kopieeractiviteit:

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op: CassandraSource Ja
query Gebruik de aangepaste query om gegevens te lezen. SQL-92-query of CQL-query. Zie naslaginformatie over CQL.

Wanneer u sql-query gebruikt, geeft u keyspace name.table op om de tabel weer te geven die u wilt opvragen.
Nee (als 'tableName' en 'keyspace' in de gegevensset zijn opgegeven).
consistencyLevel Het consistentieniveau geeft aan hoeveel replica's moeten reageren op een leesaanvraag voordat gegevens naar de clienttoepassing worden geretourneerd. Cassandra controleert het opgegeven aantal replica's voor gegevens om te voldoen aan de leesaanvraag. Zie Gegevensconsistentie configureren voor meer informatie.

Toegestane waarden zijn: ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM en LOCAL_ONE.
Nee (standaard is ONE)

Voorbeeld:

"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"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Toewijzing van gegevenstypen voor Cassandra

Bij het kopiëren van gegevens uit Cassandra worden de volgende toewijzingen gebruikt van Cassandra-gegevenstypen naar tussentijdse gegevenstypen die intern in de service worden gebruikt. Zie Schema- en gegevenstypetoewijzingen voor meer informatie over hoe kopieeractiviteit het bronschema en het gegevenstype toewijst aan de sink.

Cassandra-gegevenstype Tussentijdse servicegegevenstype
ASCII String
BIGINT Int64
BLOB Byte[]
BOOLEAN Boolean
DECIMAL Decimal
DOUBLE Dubbel
FLOAT Eén
INET String
INT Int32
TEKST String
TIMESTAMP Datum en tijd
TIMEUUID Guid
UUID Guid
VARCHAR String
VARINT Decimal

Notitie

Voor verzamelingstypen (kaart, set, lijst, enzovoort) raadpleegt u Werken met Cassandra-verzamelingstypen met behulp van de sectie virtuele tabellen .

Door de gebruiker gedefinieerde typen worden niet ondersteund.

De lengte van de lengte van binaire kolommen en tekenreekskolommen mag niet groter zijn dan 4000.

Werken met verzamelingen met behulp van een virtuele tabel

De service maakt gebruik van een ingebouwd ODBC-stuurprogramma om verbinding te maken met en gegevens te kopiëren uit uw Cassandra-database. Voor verzamelingstypen, waaronder kaart, set en lijst, worden de gegevens opnieuw genormaliseerd in de bijbehorende virtuele tabellen. Als een tabel verzamelingskolommen bevat, genereert het stuurprogramma de volgende virtuele tabellen:

  • Een basistabel, die dezelfde gegevens bevat als de echte tabel, met uitzondering van de verzamelingskolommen. De basistabel gebruikt dezelfde naam als de werkelijke tabel die wordt aangegeven.
  • Een virtuele tabel voor elke verzamelingskolom, waarmee de geneste gegevens worden uitgebreid. De virtuele tabellen die verzamelingen vertegenwoordigen, worden benoemd met behulp van de naam van de echte tabel, een scheidingsteken 'vt' en de naam van de kolom.

Virtuele tabellen verwijzen naar de gegevens in de echte tabel, zodat het stuurprogramma toegang heeft tot de gedenormaliseerde gegevens. Zie de sectie Voorbeeld voor meer informatie. U kunt toegang krijgen tot de inhoud van Cassandra-verzamelingen door query's uit te voeren op de virtuele tabellen en deze samen te voegen.

Opmerking

De volgende 'ExampleTable' is bijvoorbeeld een Cassandra-databasetabel die een primaire sleutelkolom met een geheel getal bevat met de naam 'pk_int', een tekstkolom met de naam waarde, een lijstkolom, een kaartkolom en een setkolom (met de naam 'StringSet').

pk_int Weergegeven als List Overzicht StringSet
1 "voorbeeldwaarde 1" ["1", "2", "3"] {"S1": "a", "S2": "b"} {"A", "B", "C"}
3 "voorbeeldwaarde 3" ["100", "101", "102", "105"] {"S1": "t"} {"A", "E"}

Het stuurprogramma genereert meerdere virtuele tabellen om deze enkele tabel weer te geven. De refererende-sleutelkolommen in de virtuele tabellen verwijzen naar de primaire-sleutelkolommen in de echte tabel en geven aan met welke echte tabelrij de virtuele tabelrij overeenkomt.

De eerste virtuele tabel is de basistabel met de naam 'ExampleTable' wordt weergegeven in de volgende tabel:

pk_int Weergegeven als
1 "voorbeeldwaarde 1"
3 "voorbeeldwaarde 3"

De basistabel bevat dezelfde gegevens als de oorspronkelijke databasetabel, met uitzondering van de verzamelingen, die uit deze tabel worden weggelaten en worden uitgevouwen in andere virtuele tabellen.

In de volgende tabellen worden de virtuele tabellen weergegeven waarmee de gegevens uit de kolommen List, Map en StringSet opnieuw worden genormaliseerd. De kolommen met namen die eindigen op '_index' of '_key' geven de positie van de gegevens in de oorspronkelijke lijst of kaart aan. De kolommen met namen die eindigen op '_value' bevatten de uitgebreide gegevens uit de verzameling.

Tabel '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

Tabel 'ExampleTable_vt_Map':

pk_int Map_key Map_value
1 S1 V
1 S2 b
3 S1 h

Tabel 'ExampleTable_vt_StringSet':

pk_int StringSet_value
1 V
1 B
1 E
3 A
3 E

Eigenschappen van opzoekactiviteit

Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.

Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.