Często zadawane pytania dotyczące usługi Azure Cosmos DB for NoSQL

DOTYCZY: NoSQL

Jak mogę zacząć programować w usłudze Azure Cosmos DB for NoSQL?

Najpierw musisz zarejestrować się w celu uzyskania subskrypcji platformy Azure. Po zarejestrowaniu się w celu uzyskania subskrypcji platformy Azure możesz dodać kontener API for NoSQL do subskrypcji platformy Azure.

Zestawy SDK (Software Development Kit) są dostępne dla platform .NET, Python, Node.js, JavaScript, Go i Java. Deweloperzy mogą również korzystać z interfejsu API REST do interakcji z zasobami usługi Azure Cosmos DB z większej liczby platform i języków.

Czy do rozpoczęcia pracy można rozpocząć korzystanie z przykładów usługi Azure Cosmos DB for NoSQL?

Zapoznaj się z przykładami i szablonami kodu szybkiego startu dla interfejsu API dla noSQL:

Czy usługa Azure Cosmos DB for NoSQL obsługuje dane bez schematu?

Tak, interfejs API for NoSQL umożliwia aplikacjom przechowywanie dowolnych dokumentów JSON jako elementów bez definicji schematu lub wskazówek. Dane są natychmiast dostępne do wykonywania zapytań za pomocą języka zapytań usługi Azure Cosmos DB for NoSQL.

Czy usługa Azure Cosmos DB for NoSQL obsługuje transakcje ACID (niepodzielność, spójność, izolacja, trwałość)?

Tak, interfejs API dla noSQL obsługuje transakcje między dokumentami wyrażone przy użyciu partii w zestawach SDK lub jako procedury składowane i wyzwalacze języka JavaScript. Transakcje są ograniczone do jednej partycji w każdym kontenerze i wykonywane za pomocą semantyki ACID jako "wszystkie lub nic", odizolowane od innych współbieżnie wykonujących kod i żądania użytkownika. Jeśli wystąpią wyjątki, cała transakcja zostanie wycofana.

Jak mogę utworzyć bazę danych Azure Cosmos DB for NoSQL?

Bazy danych można tworzyć przy użyciu jednego z następujących narzędzi:

Jak mogę skonfigurować usługę Azure Cosmos DB dla użytkowników i uprawnień natywnych dla bazy danych NoSQL?

Możesz utworzyć użytkowników i uprawnienia przy użyciu jednego z zestawów SDK usługi Azure Cosmos DB for NoSQL lub interfejsu API REST. Aby uzyskać więcej informacji, zobacz konfigurowanie użytkowników i tokenów zasobów. Tworzenie uprawnień przy użyciu tokenów zasobów jest dozwolone na poziomie kontenera i jego elementów podrzędnych (takich jak dokumenty, załączniki). Tworzenie uprawnienia na poziomie bazy danych lub konta nie jest obecnie dozwolone.

Czy mogę uwierzytelnić się w usłudze Azure Cosmos DB for NoSQL przy użyciu istniejących kont microsoft Entra ID?

Tak! Usługa Azure Cosmos DB obsługuje uwierzytelnianie firmy Microsoft Entra w celu zarządzania usługą i jej zasobami (płaszczyzną sterowania) oraz wykonywania danych, operacji i zapytań (płaszczyzna danych). Uwierzytelnianie płaszczyzny sterowania odbywa się przy użyciu funkcji kontroli dostępu opartej na rolach platformy Azure. Możesz użyć wstępnie skonfigurowanej roli wbudowanej](.. /.. /role-based-access-control/built-in-roles.md) lub możesz utworzyć rolę niestandardową. Za pomocą kontroli dostępu opartej na rolach platformy Azure można zarządzać kontami, bazami danych, kontenerami i metadanymi. Płaszczyzna sterowania obejmuje między innymi operacje, ale nie tylko te przykłady.

  • Tworzenie, zastępowanie lub usuwanie baz danych — tworzenie, zastępowanie lub usuwanie kontenerów — odczytywanie lub zastępowanie przepływności bazy danych — odczytywanie lub zastępowanie przepływności kontenera Aby uzyskać więcej informacji, zobacz Kontrola dostępu oparta na rolach na płaszczyźnie kontroli usługi Azure Cosmos DB. Uwierzytelnianie płaszczyzny danych używa niestandardowego interfejsu API do implementacji kontroli dostępu opartej na rolach natywnych dla noSQL. Dzięki tej natywnej implementacji można również użyć wstępnie skonfigurowanych lub niestandardowych ról. Za pomocą natywnej kontroli dostępu opartej na rolach można wykonywać zapytania, zarządzać elementami lub wykonywać inne typowe operacje. Płaszczyzna danych obejmuje między innymi operacje, ale nie tylko te przykłady.
  • Tworzenie, zastępowanie, aktualizowanie lub usuwanie elementów — elementy poprawiania — wykonywanie zapytań Aby uzyskać więcej informacji, zobacz Kontrola dostępu oparta na rolach w usłudze Azure Cosmos DB.

Czy usługa Azure Cosmos DB for NoSQL obsługuje język zapytań SQL?

Structured Query Language (SQL) to język, który jest zwykle używany do wykonywania zapytań dotyczących danych relacyjnych. Interfejs API dla NoSQL ma niestandardowy język zapytań NoSQL pochodzący z języka SQL. Język zapytań NoSQL zawiera podzestaw języka zapytań SQL zwykle skojarzony z programem SQL Server wraz z różnymi ulepszeniami specyficznymi dla programu NoSQL. Język zapytań NoSQL udostępnia rozbudowane operatory hierarchiczne i relacyjne oraz rozszerzalność za pomocą funkcji zdefiniowanych przez użytkownika (UDF) opartych na języku JavaScript. Gramatyka JSON umożliwia modelowanie dokumentów JSON jako drzew z węzłami oznaczonymi etykietami, które są używane zarówno przez techniki automatycznego indeksowania usługi Azure Cosmos DB, jak i dialekt zapytań SQL usługi Azure Cosmos DB. Aby uzyskać informacje na temat korzystania z tego języka zapytań, zobacz Zapytanie NoSQL.

Czy usługa Azure Cosmos DB for NoSQL obsługuje funkcje agregacji SQL?

Interfejs API dla noSQL obsługuje agregację za pomocą funkcji agregujących, takich jak: COUNT, MAX, AVGi SUM za pośrednictwem języka zapytań NoSQL.

Jak usługa Azure Cosmos DB for NoSQL zapewnia współbieżność?

Interfejs API dla noSQL obsługuje optymistyczną kontrolę współbieżności (OCC) za pomocą tagów jednostek HTTP lub elementów ETag. Każdy zasób interfejsu API dla noSQL ma element ETag, a element ETag jest ustawiany na serwerze za każdym razem, gdy dokument jest aktualizowany. Nagłówek ETag i bieżąca wartość są uwzględniane we wszystkich komunikatach odpowiedzi. Tagi ETag mogą być używane z nagłówkiem If-Match , aby umożliwić serwerowi podjęcie decyzji, czy zasób ma zostać zaktualizowany. Wartość If-Match jest wartością elementu ETag do sprawdzenia. Jeśli wartość elementu ETag jest zgodna z wartością ETag serwera, zasób zostanie zaktualizowany. Jeśli element ETag nie jest już aktualny, serwer odrzuca operację z kodem odpowiedzi "Błąd warunku wstępnego HTTP 412". Następnie klient pobiera zasób, aby uzyskać bieżącą wartość elementu ETag dla zasobu. Ponadto elementy ETag mogą być używane z nagłówkiem, If-None-Match aby określić, czy jest potrzebny do ponownego pobrania zasobu.

Większość zestawów SDK interfejsu API dla noSQL obejmuje klasy do zarządzania optymistyczną kontrolą współbieżności.

Jak mogę wstawić zbiorczo dokumenty do usługi Azure Cosmos DB for NoSQL?

Użyj funkcji importowania zbiorczego w zestawie SDK platformy .NET lub zestawie SDK języka Java dla interfejsu API for NoSQL, aby zaimportować duże zestawy danych. Ta funkcja optymalizuje aprowizowaną przepływność w celu importowania dużych zestawów danych.

Możesz też użyć platformy Apache Spark do importowania danych na dużą skalę przy użyciu języka Python lub języka Scala.

Czy usługa Azure Cosmos DB for NoSQL obsługuje buforowanie łączy zasobów?

Tak, ponieważ usługa Azure Cosmos DB for NoSQL jest usługą RESTful, łącza zasobów są niezmienne i mogą być buforowane. Interfejs API dla klientów NoSQL może określić nagłówek "If-None-Match" dla odczytów względem dowolnego dokumentu lub kontenera, a następnie zaktualizować swoje kopie lokalne po zmianie wersji serwera.

Czy jest dostępne lokalne wystąpienie usługi Azure Cosmos DB for NoSQL?

Tak. Emulator usługi Azure Cosmos DB zapewnia wysoką wierność emulacji usługi Azure Cosmos DB. Obsługuje ona funkcje identyczne z usługą Azure Cosmos DB w różnych interfejsach API. Ta funkcja obejmuje obsługę tworzenia elementów, wykonywania zapytań o elementy, aprowizowania kontenerów i skalowania kontenerów. Aplikacje można opracowywać i testować przy użyciu punktów końcowych emulatora. Następnie możesz wdrożyć aplikacje na platformie Azure w skali globalnej, zmieniając parametry połączenia z emulatora na usługę na żywo.

Dlaczego długie wartości zmiennoprzecinkowe w elemencie Usługi Azure Cosmos DB for NoSQL są zaokrąglane podczas korzystania z Eksploratora danych w portalu?

To ograniczenie eksploratora danych jest ograniczeniem języka JavaScript. Język JavaScript używa liczb zmiennoprzecinkowych o podwójnej precyzji, jak określono w Institute of Electrical and Electronics Engineers (IEEE) 754. Ten typ danych może bezpiecznie przechowywać liczby między -(253 -1) i 253-1 (czyli tylko 9007199254740991).