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/-) | (1) (2) |
Activiteit Lookup | (1) (2) |
(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:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST API
- Een Azure Resource Manager-sjabloon
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.
Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:
Zoek naar Cassandra en selecteer de Cassandra-connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
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 | Booleaanse waarde |
DECIMAL | Decimal |
DOUBLE | Dubbel |
FLOAT | Eén |
INET | String |
INT | Int32 |
SMS | 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.
Gerelateerde inhoud
Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.