Vanliga frågor och svar om Azure Cosmos DB för NoSQL

GÄLLER FÖR: NoSQL

Hur gör jag för att börja utveckla mot Azure Cosmos DB för NoSQL?

Först måste du registrera dig för en Azure-prenumeration. När du har registrerat dig för en Azure-prenumeration kan du lägga till ett API för NoSQL-container i din Azure-prenumeration.

SDK:er (Software Development Kit) är tillgängliga för .NET, Python, Node.js, JavaScript, Go och Java. Utvecklare kan också använda REST-API:et för att interagera med Azure Cosmos DB-resurser från fler plattformar och språk.

Finns det Azure Cosmos DB for NoSQL-exempel för att komma igång?

Kolla in följande snabbstartskodexempel och mallar för API:et för NoSQL:

Stöder Azure Cosmos DB for NoSQL schemafria data?

Ja, API:et för NoSQL tillåter att program lagrar godtyckliga JSON-dokument som objekt utan schemadefinitioner eller tips. Data är omedelbart tillgängliga för frågor med Frågespråket Azure Cosmos DB for NoSQL.

Stöder Azure Cosmos DB for NoSQL ACID-transaktioner (atomicitet, konsekvens, isolering, hållbarhet) ?

Ja, API:et för NoSQL stöder transaktioner mellan dokument som uttrycks med antingen batchar i SDK:erna eller som JavaScript-lagrade procedurer och utlösare. Transaktioner begränsas till en enda partition i varje container och körs med ACID-semantik som "allt eller inget", isolerat från andra kod- och användarbegäranden som körs samtidigt. Om undantag inträffar återställs hela transaktionen.

Hur gör jag för att skapa en Azure Cosmos DB för NoSQL-databas?

Du kan skapa databaser med något av följande verktyg:

Hur gör jag för att konfigurera Azure Cosmos DB för NoSQL-databasinbyggda användare och behörigheter?

Du kan skapa användare och behörigheter med hjälp av en av Azure Cosmos DB för NoSQL SDK:er eller REST-API:et. Mer information finns i konfigurera användare och resurstoken. Att skapa behörigheter med hjälp av resurstoken tillåts på containernivå och dess underordnade objekt (till exempel dokument, bifogade filer). Det är för närvarande inte tillåtet att skapa en behörighet på databas- eller kontonivå.

Kan jag autentisera till Azure Cosmos DB för NoSQL med mina befintliga Microsoft Entra-ID-konton?

Japp! Azure Cosmos DB stöder Microsoft Entra-autentisering för att hantera tjänsten och dess resurser (kontrollplan) och köra data, åtgärder och frågor (dataplan). Kontrollplansautentisering utförs med hjälp av den rollbaserade åtkomstkontrollfunktionen i Azure. Du kan använda en förkonfigurerad inbyggd roll](.. /.. /role-based-access-control/built-in-roles.md) eller så kan du skapa en anpassad roll. Med rollbaserad åtkomstkontroll i Azure kan du hantera konton, databaser, containrar och metadata. Kontrollplanet innehåller åtgärder inklusive, men inte begränsat till dessa exempel.

  • Skapa, ersätta eller ta bort databaser – Skapa, ersätta eller ta bort containrar – Läsa eller ersätta databasdataflöde – Läsa eller ersätta containerdataflöde Mer information finns i Rollbaserad åtkomstkontroll för Azure Cosmos DB-kontrollplan. Dataplansautentisering använder ett anpassat API för noSQL-intern rollbaserad implementering av åtkomstkontroll. Med den här interna implementeringen kan du också använda förkonfigurerade eller anpassade roller. Med inbyggd rollbaserad åtkomstkontroll kan du köra frågor, hantera objekt eller utföra andra vanliga åtgärder. Dataplanet innehåller åtgärder inklusive, men inte begränsat till dessa exempel.
  • Skapa, ersätta, uppdatera eller ta bort objekt – Korrigera objekt – Köra frågor Mer information finns i Rollbaserad åtkomstkontroll för Azure Cosmos DB-dataplan.

Stöder Azure Cosmos DB for NoSQL SQL-frågespråket?

Structured Query Language (SQL) är ett språk som vanligtvis används för att fråga relationsdata. API:et för NoSQL har ett anpassat NoSQL-frågespråk som härletts från SQL. NoSQL-frågespråket innehåller en delmängd av SQL-frågespråket som vanligtvis är associerat med SQL Server tillsammans med olika NoSQL-specifika förbättringar. NoSQL-frågespråket ger omfattande hierarkiska operatorer och relationsoperatorer och utökningsbarhet via JavaScript-baserade, användardefinierade funktioner (UDF:er). Med JSON-grammatik kan du modellera JSON-dokument som träd med etiketterade noder, som används av både azure Cosmos DB:s automatiska indexeringstekniker och SQL-frågedialekten i Azure Cosmos DB. Information om hur du använder det här frågespråket finns i NoSQL-fråga.

Har Azure Cosmos DB for NoSQL stöd för SQL-sammansättningsfunktioner?

API:et för NoSQL stöder aggregering via aggregeringsfunktioner som: COUNT, MAX, AVGoch SUM via NoSQL-frågespråket.

Hur ger Azure Cosmos DB for NoSQL samtidighet?

API:et för NoSQL stöder optimistisk samtidighetskontroll (OCC) via HTTP-entitetstaggar eller ETags. Varje API för NoSQL-resurs har en ETag och ETag anges på servern varje gång ett dokument uppdateras. ETag-huvudet och det aktuella värdet ingår i alla svarsmeddelanden. ETags kan användas med If-Match huvudet så att servern kan bestämma om en resurs ska uppdateras. Värdet If-Match är det ETag-värde som ska kontrolleras mot. Om ETag-värdet matchar serverns ETag-värde uppdateras resursen. Om ETag inte längre är aktuell avvisar servern åtgärden med svarskoden "HTTP 412-förhandsvillkorsfel". Klienten växlar sedan om resursen för att hämta det aktuella ETag-värdet för resursen. Dessutom kan ETags användas med If-None-Match huvudet för att avgöra om det behövs för att hämta en resurs.

De flesta AV API:erna för NoSQL SDK:er innehåller klasser för att hantera optimistisk samtidighetskontroll.

Hur massinfogar jag dokument i Azure Cosmos DB för NoSQL?

Använd massimportfunktionen i .NET SDK eller Java SDK för API:et för NoSQL för att importera stora mängder data. Den här funktionen optimerar etablerat dataflöde för att importera stora datamängder.

Du kan också använda Apache Spark för att importera data i stor skala med hjälp av Python eller Scala.

Stöder Azure Cosmos DB for NoSQL cachelagring av resurslänkar?

Ja, eftersom Azure Cosmos DB for NoSQL är en RESTful-tjänst är resurslänkar oföränderliga och kan cachelagras. API för NoSQL-klienter kan ange ett "If-None-Match"-huvud för läsningar mot alla resursliknande dokument eller containrar och sedan uppdatera sina lokala kopior när serverversionen har ändrats.

Är en lokal instans av Azure Cosmos DB for NoSQL tillgänglig?

Ja. Azure Cosmos DB-emulatorn ger en emulering med hög återgivning av Azure Cosmos DB-tjänsten. Den stöder funktioner som är identiska med Azure Cosmos DB för olika API:er. Den här funktionen omfattar stöd för att skapa objekt, köra frågor mot objekt, etablera containrar och skala containrar. Du kan utveckla och testa program med hjälp av emulatorns slutpunkter. Du kan sedan distribuera programmen till Azure i global skala genom att ändra anslutningssträng från emulatorn till livetjänsten.

Varför avrundas långa flyttalsvärden i ett Azure Cosmos DB för NoSQL-objekt när datautforskaren används i portalen?

Den här datautforskarens begränsning är en begränsning för JavaScript. JavaScript använder flyttalsformat med dubbel precision enligt vad som anges i Institute of Electrical and Electronics Engineers (IEEE) 754. Den här datatypen kan säkert innehålla tal mellan -(253 –1) och 253–1 (det vill säga endast 9007199254740991).