Läs på engelska Redigera

Dela via


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

GÄLLER FÖR: NoSQL

Allmänt

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:

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 dataflöde för containrar 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

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).

Säkerhet

Vad är rollbaserad åtkomstkontroll (RBAC)?

Rollbaserad åtkomstkontroll (RBAC) är en metod för att reglera åtkomsten till dator- eller nätverksresurser baserat på rollerna för enskilda användare i ett företag. I Azure Cosmos DB används RBAC för att bevilja dataplansåtkomst till användare och program. Mer information om olika termer i rollbaserad åtkomstkontroll finns i säkerhetsordlistan.

Hur gör jag för att aktivera rollbaserad åtkomstkontroll för dataplan för Azure Cosmos DB för NoSQL?

Använd funktionen för intern rollbaserad åtkomstkontroll (RBAC) i Azure Cosmos DB för att ge dataplansåtkomst till användare och program. Mer information finns i Bevilja rollbaserad åtkomst för dataplan.

Vilka Azure Cosmos DB-API:er stöder rollbaserad åtkomstkontroll på dataplan?

Från och med nu stöds endast NoSQL-API:et.

Går det att hantera rolldefinitioner och rolltilldelningar från Azure-portalen?

Azure Portal stöd för rollhantering är inte tillgängligt ännu.

Vilka SDK:er i Azure Cosmos DB API för NoSQL stöder rollbaserad åtkomstkontroll?

.NET V3, Java V4, JavaScript V3 och Python V4.3+ SDK:er stöds för närvarande.

Uppdateras Microsoft Entra-token automatiskt av Azure Cosmos DB-SDK: er när den upphör att gälla?

Ja.

Går det att inaktivera användningen av kontots primära/sekundära nycklar när du använder rollbaserad åtkomstkontroll?

Ja. Mer information finns i inaktivera nyckelbaserad autentisering.