Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kom igång med Azure Cosmos DB för Apache Cassandra-klientbiblioteket för Go för att lagra, hantera och fråga ostrukturerade data. Följ stegen i den här guiden för att skapa ett nytt konto, installera ett Go-klientbibliotek, ansluta till kontot, utföra vanliga åtgärder och köra frågor mot dina slutliga exempeldata.
API-referensdokumentation | Källkod | för bibliotekPaket (Go)
Förutsättningar
En prenumeration på Azure
- Om du inte har en Azure-prenumeration, skapa ett gratis konto innan du börjar.
 
Den senaste versionen av Azure CLI i Azure Cloud Shell.
- Om du föredrar att köra CLI-referenskommandon lokalt loggar du in på Azure CLI med hjälp 
az loginav kommandot . 
- Om du föredrar att köra CLI-referenskommandon lokalt loggar du in på Azure CLI med hjälp 
 
- 
              
Go1.24 eller senare 
Förbereda
Konfigurera först konto- och utvecklingsmiljön för den här guiden. Det här avsnittet beskriver hur du skapar ett konto, hämtar dess autentiseringsuppgifter och sedan förbereder utvecklingsmiljön.
Skapa ett konto
Börja med att skapa ett API för Apache Cassandra-konto. När kontot har skapats skapar du nyckelområdet och tabellresurserna.
Om du inte redan har en målresursgrupp använder du
az group createkommandot för att skapa en ny resursgrupp i din prenumeration.az group create \ --name "<resource-group-name>" \ --location "<location>"az cosmosdb createAnvänd kommandot för att skapa ett nytt Azure Cosmos DB för Apache Cassandra-konto med standardinställningar.az cosmosdb create \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --locations "regionName=<location>" \ --capabilities "EnableCassandra"Skapa ett nytt keyspace med
az cosmosdb cassandra keyspace createnamnetcosmicworks.az cosmosdb cassandra keyspace create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --name "cosmicworks"Skapa ett nytt JSON-objekt som representerar schemat med hjälp av ett Bash-kommando med flera rader.
az cosmosdb cassandra table createAnvänd sedan kommandot för att skapa en ny tabell med namnetproducts.schemaJson=$(cat <<EOF { "columns": [ { "name": "id", "type": "text" }, { "name": "name", "type": "text" }, { "name": "category", "type": "text" }, { "name": "quantity", "type": "int" }, { "name": "price", "type": "decimal" }, { "name": "clearance", "type": "boolean" } ], "partitionKeys": [ { "name": "id" } ] } EOF )az cosmosdb cassandra table create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --keyspace-name "cosmicworks" \ --name "product" \ --schema "$schemaJson"
Hämta autentiseringsuppgifter
Hämta nu lösenordet för klientbiblioteket som ska användas för att skapa en anslutning till det nyligen skapade kontot.
Använd
az cosmosdb showför att hämta kontaktpunkten och användarnamnet för kontot.az cosmosdb show \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --query "{username:name,contactPoint:documentEndpoint}"Registrera värdet för
contactPointegenskaperna ochusernamefrån föregående kommandons utdata. Dessa egenskapers värden är kontaktpunkten och användarnamnet som du använder senare i den här guiden för att ansluta till kontot med biblioteket.Använd
az cosmosdb keys listför att hämta nycklarna för kontot.az cosmosdb keys list \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --type "keys"Registrera värdet för
primaryMasterKeyegenskapen från föregående kommandons utdata. Den här egenskapens värde är det lösenord som du använder senare i den här guiden för att ansluta till kontot med biblioteket.
Förbereda utvecklingsmiljön
Konfigurera sedan utvecklingsmiljön med ett nytt projekt och klientbiblioteket. Det här steget är det sista nödvändiga kravet innan du går vidare till resten av den här guiden.
Börja i en tom katalog.
Skapa en ny Go-modul.
go mod init quickstartgithub.com/apache/cassandra-gocql-driver/v2Importera paketet från Go.go get github.com/apache/cassandra-gocql-driver/v2Skapa filen main.go .
Lägg till mallkoden för Go-applikationen.
package main func main() { }Viktigt!
De återstående stegen i den här guiden förutsätter att du lägger till din kod i
mainfunktionen.
Objektmodell
| Beskrivning | |
|---|---|
Cluster | 
Representerar en specifik anslutning till ett kluster | 
Session | 
Entiteter som har en specifik anslutning till ett kluster | 
Kodexempel
Autentisera klient
Börja med att autentisera klienten med de autentiseringsuppgifter som samlats in tidigare i den här guiden.
Öppna filen main.go i din integrerade utvecklingsmiljö (IDE).
mainI funktionen importerar du följande paket tillsammans medgithub.com/apache/cassandra-gocql-driver/v2paketet:contextcrypto/tls
import ( "context" "crypto/tls" "github.com/apache/cassandra-gocql-driver/v2" )Skapa strängvariabler för de autentiseringsuppgifter som samlats in tidigare i den här guiden. Ge variablerna
username,passwordochcontactPointnamn.username := "<username>" password := "<password>" contactPoint := "<contact-point>"Konfigurera en instans av typen
PasswordAuthenticatormed de autentiseringsuppgifter som angavs i föregående steg. Lagra resultatet i en variabel med namnetauthentication.authentication := gocql.PasswordAuthenticator{ Username: username, Password: password, }Konfigurera en instans av
SslOptionsmed en minsta version av TLS (Transport Layer Security) 1.2 och variabelncontactPointsom målservernamn. Lagra resultatet i en variabel med namnetsslOptions.sslOptions := &gocql.SslOptions{ Config: &tls.Config{ MinVersion: tls.VersionTLS12, ServerName: contactPoint, }, }Skapa en ny klusterspecifikation med hjälp av
NewClusteroch variabelncontactPoint.cluster := gocql.NewCluster(contactPoint)Konfigurera klustrets specifikationsobjekt med hjälp av de autentiserings- och konfigurationsvariabler som skapades i föregående steg.
cluster.SslOpts = sslOptions cluster.Authenticator = authenticationKonfigurera resten av klustrets specifikationsobjekt med dessa statiska värden.
cluster.Keyspace = "cosmicworks" cluster.Port = 10350 cluster.ProtoVersion = 4Skapa en ny session som ansluter till klustret med hjälp av
CreateSession.session, _ := cluster.CreateSession()Konfigurera sessionen så att funktionen
Closeanropas efter att funktionenmainhar returnerat.defer session.Close()Skapa ett nytt
Backgroundkontextobjekt och lagra det i variabelnctx.ctx := context.Background()
Varning
Fullständig TLS-validering (Transport Layer Security) är inaktiverad i den här guiden för att förenkla autentiseringen. Aktivera validering fullt ut för produktionsdistributioner.
Infoga eller uppdatera data
Därefter ökar du nya data till en tabell. Upserting säkerställer att data skapas eller ersätts på lämpligt sätt beroende på om samma data redan finns i tabellen.
Definiera en ny typ med namnet
Productmed fält som motsvarar tabellen som skapades tidigare i den här guiden.type Product struct { id string name string category string quantity int clearance bool }Tips/Råd
I Go kan du skapa den här typen i en annan fil eller skapa den i slutet av den befintliga filen.
Skapa ett nytt objekt av typen
Product. Lagra objektet i en variabel med namnetproduct.product := Product { id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", name: "Yamba Surfboard", category: "gear-surf-surfboards", quantity: 12, clearance: false, }Skapa en ny strängvariabel med namnet
insertQuerymed frågan Cassandra Query Language (CQL) för att infoga en ny rad.insertQuery := ` INSERT INTO product (id, name, category, quantity, clearance) VALUES (?, ?, ?, ?, ?) `Använd funktionerna
QueryochExecContextför att köra frågan. Skicka in olika egenskaper för variabelnproductsom frågeparametrar._ = session.Query( insertQuery, product.id, product.name, product.category, product.quantity, product.clearance, ).ExecContext(ctx)
Läs data
Läs sedan data som tidigare har laddats upp i tabellen.
Skapa en ny strängvariabel med namnet
readQuerymed en CQL-fråga som matchar objekt med sammaidfält.readQuery := ` SELECT id, name, category, quantity, clearance FROM product WHERE id = ? LIMIT 1 `Skapa en strängvariabel
idmed namnet med samma värde som den produkt som skapades tidigare i den här guiden.id := "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"Skapa en annan variabel med namnet
matchedProductför att lagra resultatet av den här åtgärden i.var matchedProduct ProductQueryAnvänd funktionerna ,Consistency,IterContextochScantillsammans för att hitta det enda objekt som matchar frågan och tilldela dess egenskaper till variabelnmatchedProduct.session.Query( readQuery, &id, ).Consistency(gocql.One).IterContext(ctx).Scan( &matchedProduct.id, &matchedProduct.name, &matchedProduct.category, &matchedProduct.quantity, &matchedProduct.clearance, )
Fråga efter data
Slutligen använder du en fråga för att hitta alla data som matchar ett specifikt filter i tabellen.
Skapa strängvariabler med namnet
findQueryochcategorymed CQL-frågan och den obligatoriska parametern.findQuery := ` SELECT id, name, category, quantity, clearance FROM product WHERE category = ? ALLOW FILTERING ` category := "gear-surf-surfboards"QueryAnvänd funktionerna ,Consistency,IterContextochScannertillsammans för att skapa en skanner som kan iterera över flera objekt som matchar frågan.queriedProducts := session.Query( findQuery, &category, ).Consistency(gocql.All).IterContext(ctx).Scanner()NextAnvänd funktionerna ochScanför att iterera över frågeresultaten och tilldela egenskaperna för varje resultat till den inrequeriedProductvariabeln.for queriedProducts.Next() { var queriedProduct Product queriedProducts.Scan( &queriedProduct.id, &queriedProduct.name, &queriedProduct.category, &queriedProduct.quantity, &queriedProduct.clearance, ) // Do something here with each result }
Kör koden
Kör det nyligen skapade programmet med hjälp av en terminal i programkatalogen.
go run .
Rensa resurser
Hämta nu lösenordet för klientbiblioteket som ska användas för att skapa en anslutning till det nyligen skapade kontot.
Använd
az cosmosdb showför att hämta kontaktpunkten och användarnamnet för kontot.az cosmosdb show \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --query "{username:name,contactPoint:documentEndpoint}"Registrera värdet för
contactPointegenskaperna ochusernamefrån föregående kommandons utdata. Dessa egenskapers värden är kontaktpunkten och användarnamnet som du använder senare i den här guiden för att ansluta till kontot med biblioteket.Använd
az cosmosdb keys listför att hämta nycklarna för kontot.az cosmosdb keys list \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --type "keys"Registrera värdet för
primaryMasterKeyegenskapen från föregående kommandons utdata. Den här egenskapens värde är det lösenord som du använder senare i den här guiden för att ansluta till kontot med biblioteket.