Snabbstart: Skapa en Cassandra-app med Python SDK och Azure Cosmos DB

GÄLLER FÖR: Cassandra

I den här snabbstarten skapar du ett Azure Cosmos DB för Apache Cassandra-konto och använder en Cassandra Python-app som klonas från GitHub för att skapa en Cassandra-databas och container. Azure Cosmos DB är en databastjänst med flera modeller som gör att du snabbt kan skapa och fråga dokument-, tabell-, nyckelvärde- och grafdatabaser med globala distributions- och vågräta skalningsfunktioner.

Förutsättningar

Skapa ett databaskonto

Innan du kan börja skapa en dokumentdatabas måste du skapa ett Cassandra-konto med Azure Cosmos DB.

  1. Välj Skapa en resurs på Azure Portal-menyn eller på startsidan.

  2. På sidan Nytt söker du efter och väljer Azure Cosmos DB.

  3. På sidan Azure Cosmos DB väljer du Skapa.

  4. API-sidan väljer du Skapa under avsnittet Cassandra .

    API:et avgör vilken typ av konto som skapas. Azure Cosmos DB innehåller fem API:er: NoSQL för dokumentdatabaser, Gremlin för grafdatabaser, MongoDB för dokumentdatabaser, Azure Table och Cassandra. Du måste skapa ett separat konto för varje API.

    Välj Cassandra eftersom du i den här snabbstarten skapar en tabell som fungerar med API:et för Cassandra.

    Läs mer om API:et för Cassandra.

  5. På sidan Skapa Azure Cosmos DB-konto anger du de grundläggande inställningarna för det nya Azure Cosmos DB-kontot.

    Inställning Värde Beskrivning
    Prenumeration Din prenumeration Välj den Azure-prenumeration som ska användas för det här Azure Cosmos DB-kontot.
    Resursgrupp Skapa ny

    Ange sedan samma namn som Kontonamn
    Välj Skapa ny. Ange sedan ett nytt resursgruppnamn för ditt konto. För enkelhetens skull använder du samma namn som ditt Azure Cosmos DB-kontonamn.
    Account Name Ange ett unikt namn Ange ett unikt namn som identifierar ditt Azure Cosmos DB-konto. Konto-URI:n läggs cassandra.cosmos.azure.com till ditt unika kontonamn.

    Kontonamnet kan bara använda gemener, siffror och bindestreck (-) och måste vara mellan 3 och 31 tecken långt.
    Location Den region som är närmast dina användare Välj en geografisk plats som värd för ditt Azure Cosmos DB-konto. Använd den plats som är närmast dina användare för att ge dem så snabb åtkomst till data som möjligt.
    Kapacitetsläge Etablerat dataflöde eller serverlöst Välj Etablerat dataflöde för att skapa ett konto i etablerat dataflödesläge . Välj Serverlös för att skapa ett konto i serverlöst läge.
    Tillämpa rabatt på den kostnadsfria Azure Cosmos DB-nivån Använd eller använd inte Med den kostnadsfria Azure Cosmos DB-nivån får du de första 1 000 RU/s och 25 GB lagringsutrymme kostnadsfritt på ett konto. Läs mer om den kostnadsfria nivån.
    Begränsa det totala kontots dataflöde Välj för att begränsa dataflödet för kontot Detta är användbart om du vill begränsa kontots totala dataflöde till ett visst värde.

    Anteckning

    Du kan ha upp till ett Azure Cosmos DB-konto på kostnadsfri nivå per Azure-prenumeration och måste anmäla dig när du skapar kontot. Om du inte ser alternativet för att tillämpa rabatten på den kostnadsfria nivån innebär det att ett annat konto i prenumerationen redan har aktiverats med den kostnadsfria nivån.

    Den nya kontosidan för Azure Cosmos DB för Apache Cassandra

  6. På fliken Global distribution konfigurerar du följande information. Du kan lämna standardvärdena i den här snabbstarten:

    Inställningen Värde Beskrivning
    Geo-redundans Inaktivera Aktivera eller inaktivera global distribution på ditt konto genom att para ihop din region med en parregion. Du kan lägga till fler regioner i ditt konto senare.
    Skrivåtgärder för flera regioner Inaktivera Med funktionen skrivningar i flera regioner kan du dra nytta av det etablerade dataflödet för dina databaser och containrar över hela världen.
    Tillgänglighetszoner Inaktivera Tillgänglighetszoner är isolerade platser i en Azure-region. Varje zon utgörs av ett eller flera datacenter som är utrustade med oberoende kraft, kylning och nätverk.

    Anteckning

    Följande alternativ är inte tillgängliga om du väljer Serverlös som kapacitetsläge:

    • Tillämpa rabatt för kostnadsfri nivå
    • Geo-redundans
    • Skrivåtgärder för flera regioner
  7. Du kan också konfigurera ytterligare information på följande flikar:

    • Nätverk – Konfigurera åtkomst från ett virtuellt nätverk.
    • Säkerhetskopieringsprincip – Konfigurera antingen regelbunden eller kontinuerlig säkerhetskopieringsprincip.
    • Kryptering – Använd antingen tjänsthanterad nyckel eller en kundhanterad nyckel.
    • Taggar – Taggar är namn/värde-par som gör att du kan kategorisera resurser och visa konsoliderad fakturering genom att använda samma tagg för flera resurser och resursgrupper.
  8. Välj Granska + skapa.

  9. Granska kontoinställningarna och välj sedan Skapa. Det tar några minuter att skapa kontot. Vänta tills portalsidan visar meddelandet Distributionen är klar.

    Meddelandefönstret på Azure-portalen

  10. Välj Gå till resurs för att gå till sidan för Azure Cosmos DB-kontot.

Klona exempelprogrammet

Nu ska vi klona ett API för Cassandra-appen från GitHub, ange anslutningssträngen och köra den. Du ser hur enkelt det är att arbeta med data programmatiskt.

  1. Öppna en kommandotolk. Skapa en ny mapp med namnet git-samples. Stäng kommandotolken.

    md "C:\git-samples"
    
  2. Öppna ett git-terminalfönster, t.ex. git bash, och använd kommandot cd för att ändra till den nya mappen där du vill installera exempelappen.

    cd "C:\git-samples"
    
  3. Klona exempellagringsplatsen med följande kommando. Detta kommando skapar en kopia av exempelappen på din dator.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-cassandra-python-getting-started.git
    

Granska koden

Det här är valfritt. Om du vill lära dig hur databasresurserna skapas i koden kan du granska följande kodavsnitt. Kodfragmenten hämtas från pyquickstart.py-filen . Annars kan du gå vidare till Uppdatera din anslutningssträng.

  • cluster initieras med contactPoint och port information som hämtas från Azure Portal. cluster Ansluter sedan till Azure Cosmos DB för Apache Cassandra med hjälp connect() av metoden . En auktoriserad anslutning upprättas med hjälp av användarnamnet, lösenordet och standardcertifikatet eller ett explicit certifikat om du anger ett i konfigurationsfilen.

    ssl_context = SSLContext(PROTOCOL_TLSv1_2)
    ssl_context.verify_mode = CERT_NONE
    auth_provider = PlainTextAuthProvider(username=cfg.config['username'], password=cfg.config['password'])
    cluster = Cluster([cfg.config['contactPoint']], port = cfg.config['port'], auth_provider=auth_provider,ssl_context=ssl_context)
    session = cluster.connect()
    
  • Ett nytt keyspace skapas.

    print ("\nCreating Keyspace")
    execute_command('CREATE KEYSPACE IF NOT EXISTS uprofile WITH replication = {\'class\': \'NetworkTopologyStrategy\', \'datacenter\' : \'1\' }');
    
  • En ny tabell skapas.

    print ("\nCreating Table")
    execute_command('CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)');
    
  • Nyckel/värde-entiteter infogas.

    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [1,'Lybkov','Seattle'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [2,'Doniv','Dubai'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [3,'Keviv','Chennai'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [4,'Ehtevs','Pune'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [5,'Dnivog','Belgaum'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [6,'Ateegk','Narewadi'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [7,'KannabbuS','Yamkanmardi'])
    execute_command("INSERT INTO  uprofile.user  (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [8,'Jonas','Atlanta'])
    
  • Fråga för att hämta alla nyckelvärden.

    print ("\nSelecting All")
    rows = session.execute('SELECT * FROM uprofile.user')
    PrintTable(rows)
    
  • Fråga för att hämta ett nyckelvärde.

    print ("\nSelecting Id=1")
    rows = session.execute('SELECT * FROM uprofile.user where user_id=1')
    PrintTable(rows)
    

Uppdatera din anslutningssträng

Gå nu tillbaka till Azure Portal för att hämta information om din anslutningssträng och kopiera den till appen. Anslutningssträngen gör det möjligt för appen att kommunicera med den värdbaserade databasen.

  1. I ditt Azure Cosmos DB-konto i Azure Portal väljer du Anslutningssträng.

  2. Använd knappen till höger på skärmen för att kopiera det översta värdet, kontaktpunkten.

    Visa och kopiera åtkomstanvändarnamn, lösenord och kontaktpunkt i Azure-portalen, på bladet för anslutningssträng

  3. Öppna filen config.py .

  4. Klistra in KONTAKTPUNKT-värdet från portalen över <FILLME> på rad 10.

    Rad 10 bör nu se ut ungefär som

    'contactPoint': 'cosmos-db-quickstarts.cassandra.cosmosdb.azure.com'

  5. Klistra in portvärdet från portalen över <FILLME> på rad 12.

    Rad 12 bör nu se ut ungefär som

    'port': 10350,

  6. Kopiera ANVÄNDARNAMN från portalen och klistra in det över <FILLME> på rad 6.

    Rad 6 bör nu se ut ungefär som

    'username': 'cosmos-db-quickstart',

  7. Kopiera LÖSENORD från portalen och klistra in det över <FILLME> på rad 8.

    Rad 8 bör nu se ut ungefär som

    'password' = '2Ggkr662ifxz2Mg==';`

  8. Spara filen config.py .

Köra Python-appen

  1. Använd cd-kommandot i git-terminalen för att ändra till den azure-cosmos-db-cassandra-python-getting-started-mappen.

  2. Installera modulerna som krävs med hjälp av följande kommandon:

    python -m pip install cassandra-driver==3.20.2
    python -m pip install prettytable
    python -m pip install requests
    python -m pip install pyopenssl
    

    Anteckning

    Vi rekommenderar Python-drivrutinen version 3.20.2 för användning med API för Cassandra. Högre versioner kan orsaka fel.

  3. Kör följande kommando för att starta Python-programmet:

    python pyquickstart.py
    
  4. Kontrollera att resultatet blir det man kan förvänta sig från kommandoraden.

    Tryck på CTRL+C för att stoppa körningen av programmet och stäng konsolfönstret.

    Visa och verifiera utdata

  5. I Datautforskaren på Azure-portalen kan du fråga, ändra och arbeta med dessa nya data.

    Visa data i Datautforskaren

Granska serviceavtal i Azure-portalen

Azure Portal övervakar dataflöde, lagring, tillgänglighet, svarstid och konsekvens för ditt Azure Cosmos DB-konto. Diagram för mått som är associerade med ett serviceavtal för Azure Cosmos DB (SLA) visar SLA-värdet jämfört med faktiska prestanda. Den här sviten med mått gör övervakningen av dina serviceavtal transparent.

Så här granskar du mått och serviceavtal:

  1. Välj Mått i ditt Azure Cosmos DB-kontos navigeringsmeny.

  2. Välj en flik, till exempel Svarstid, och välj en tidsram till höger. Jämför de faktiska raderna och SLA-raderna i diagrammen.

    Azure Cosmos DB-måttsvit

  3. Granska måtten på de andra flikarna.

Rensa resurser

När du är klar med appen och Azure Cosmos DB-kontot kan du ta bort de Azure-resurser som du skapade så att du inte debiteras fler avgifter. Ta bort resurser:

  1. I Azure Portal sökfältet söker du efter och väljer Resursgrupper.

  2. I listan väljer du den resursgrupp som du skapade för den här snabbstarten.

    Välj den resursgrupp som ska tas bort

  3. På sidan Översikt för resursgrupp väljer du Ta bort resursgrupp.

    Ta bort resursgruppen

  4. I nästa fönster anger du namnet på resursgruppen som ska tas bort och väljer sedan Ta bort.

Nästa steg

I den här snabbstarten har du lärt dig hur du skapar ett Azure Cosmos DB-konto med API för Cassandra och kör en Cassandra Python-app som skapar en Cassandra-databas och container. Nu kan du importera andra data till ditt Azure Cosmos DB-konto.