Часто задаваемые вопросы о службе Azure Cosmos DB

General

Для чего используется Azure Cosmos DB?

Azure Cosmos DB хорошо подходит для веб-, мобильных устройств, игр и вариантов использования Интернета вещей. В этих случаях использования, автоматическое масштабирование, прогнозируемая производительность, быстрое время отклика в масштабе миллисекунд и возможность запрашивать данные без схемы важны. Azure Cosmos DB предоставляет возможности для быстрой разработки и поддерживает непрерывную итерацию моделей данных приложения. Приложения, которые управляют пользовательским контентом и данными, часто сопоставляются с типичными вариантами использования для Azure Cosmos DB.

Как Azure Cosmos DB обеспечивает прогнозируемую производительность?

Единица запроса — это мера пропускной способности в Azure Cosmos DB. Одна пропускная способность единицы запроса соответствует пропускной способности GET действия HTTP для документа с 1 килобитом. Каждая операция в Azure Cosmos DB; включая операции чтения, записи, запросы и выполнение хранимой процедуры; имеет детерминированное значение единицы запроса на основе пропускной способности, необходимой для выполнения операции. Вместо того, чтобы учитывать пропускную способность ЦП, операций ввода-вывода и памяти в отношении пропускной способности приложения, можно подумать с точки зрения единиц запросов.

Каждый контейнер Azure Cosmos DB можно настроить с выделенной пропускной способностью в единицах запросов в секунду (ЕЗ/с). Вы можете тестировать отдельные запросы, измеряя их в запросных единицах, и создать контейнер для обработки общей суммы запросных единиц всех запросов в этом контейнере за одну секунду. Можно также масштабировать пропускную способность контейнера в зависимости от потребностей приложения. Дополнительные сведения о том, как измерять единицы запросов, см. в калькуляторе пропускной способности.

Как Azure Cosmos DB поддерживает различные модели данных, например пары "ключ-значение", столбцы, документы и графы?

Такие модели данных, как пары "ключ-значение", столбцы, документы и графы изначально поддерживаются благодаря структуре ARS (атомы, записи и последовательности), на базе которой создана база данных Azure Cosmos DB. Атомы, записи и последовательности можно легко сопоставить и спроецировать для различных моделей данных. API для подмножества моделей доступны с помощью проектирования ARS (MongoDB, NoSQL, Table, Apache Cassandra и Apache Gremlin). Azure Cosmos DB также поддерживает другие API.

Что такое контейнер Azure Cosmos DB?

Контейнер — это группа элементов. Контейнеры могут охватывать одну или несколько секций и масштабироваться для обработки практически неограниченных объемов хранилища или пропускной способности.

Контейнеры, известные как
Azure Cosmos DB для работы с NoSQL Контейнер
Azure Cosmos DB for MongoDB Collection
Azure Cosmos DB для Apache Cassandra Таблица
Azure Cosmos DB для Apache Gremlin Graph
Azure Cosmos DB для таблицы Таблица

Контейнер — это оплачиваемая сущность, в которой пропускная способность и используемое хранилище определяет стоимость. Счета за использование контейнера выставляются ежечасно на основе подготовленной пропускной способности и используемого объема хранилища. Дополнительные сведения см. в разделе о ценах на Azure Cosmos DB.

Можно ли использовать несколько API для доступа к данным?

Azure Cosmos DB — это глобально распределенная многомодельная служба базы данных Майкрософт. Многоуровневая модель ссылается на поддержку Azure Cosmos DB для нескольких API и моделей данных. В этой парадигме разные API используют различные форматы данных для протокола хранилища и провода. Например; NoSQL использует JSON, MongoDB использует двоичный кодированный JSON (BSON), таблица использует модель данных сущностей (EDM), Cassandra использует язык запросов Cassandra (CQL), Gremlin использует формат JSON. Поэтому мы рекомендуем использовать только один API для обращения к данным в определенной учетной записи.

Можно ли интегрировать Azure Cosmos DB напрямую с другими службами?

Да. API Azure Cosmos DB разрешают прямую интеграцию. Например, интерфейсы REST API Azure Cosmos DB можно интегрировать с управлением API Azure для операций CRUD, устраняя необходимость в промежуточных сервисах, таких как функции Azure.

Соответствует ли Azure Cosmos DB HIPAA?

Да, база данных Azure Cosmos DB соответствует требованиям HIPAA. HIPAA устанавливает требования к использованию, раскрытию и защите идентифицирующей личной медицинской информации. Дополнительные сведения см. в Центре управления безопасностью Майкрософт.

Каковы ограничения на использование хранилища в Azure Cosmos DB?

Общий объем данных, которые контейнер может хранить в Azure Cosmos DB, не ограничен.

Каковы ограничения пропускной способности Azure Cosmos DB?

Общий объем пропускной способности, поддерживаемой контейнером в Azure Cosmos DB, не ограничен. Основная идея заключается в том, чтобы распределить рабочую нагрузку примерно равномерно между достаточно большим количеством ключей партиций.

Зашифрованы ли режимы прямого подключения и шлюза?

Да, шифрование полностью поддерживается в обоих режимах.

Сколько стоит Azure Cosmos DB?

Количество подготовленных контейнеров, количество контейнеров в сети и подготовленная пропускная способность для каждого контейнера определяет расходы на использование Azure Cosmos DB. Дополнительные сведения о ценах см. в ценах на Azure Cosmos DB.

Как получить дополнительную помощь с Azure Cosmos DB?

Технические вопросы можно разместить на одном из форумов вопросов и ответов ниже:

Чтобы устранить проблему с учетной записью, отправьте запрос в службу поддержки на портале Azure.

API для NoSQL

Как начать разработку с использованием Azure Cosmos DB для NoSQL?

Во-первых, вам нужно зарегистрироваться для получения подписки Azure. После регистрации подписки Azure вы можете добавить в подписку Azure API для контейнера NoSQL.

Пакеты средств разработки программного обеспечения (SDK) доступны для .NET, Python, Node.js, JavaScript, Go и Java. Разработчики также могут использовать REST API для взаимодействия с ресурсами Azure Cosmos DB с дополнительных платформ и языков.

Есть ли примеры Azure Cosmos DB для NoSQL для начала работы?

Ознакомьтесь с этими примерами кода и шаблонами быстрого запуска для API NoSQL:

Поддерживает ли Azure Cosmos DB для NoSQL данные без схемы?

Да, API для NoSQL позволяет приложениям хранить произвольные документы JSON в виде элементов без определений схемы или подсказок. Данные сразу же доступны для запроса с помощью языка запросов Azure Cosmos DB для NoSQL.

Поддерживает ли Azure Cosmos DB для NoSQL транзакции ACID (атомарность, согласованность, изоляцию, устойчивость) ?

Да, API для NoSQL поддерживает транзакции между документами, выраженные с помощью пакетов в SDK или как хранимые процедуры и триггеры JavaScript. Транзакции ограничиваются одной секцией в каждом контейнере и выполняются с помощью семантики ACID по принципу "все или ничего," изолированно от другого параллельно выполняемого кода и пользовательских запросов. При возникновении исключений выполняется откат всей транзакции.

Как создать базу данных Azure Cosmos DB для NoSQL?

Базы данных можно создать с помощью одного из следующих средств:

Можно ли выполнить проверку подлинности в Azure Cosmos DB для NoSQL с помощью существующих учетных записей идентификатора Microsoft Entra?

Yes! Azure Cosmos DB поддерживает проверку подлинности Microsoft Entra для управления службой и ее ресурсами (плоскости управления) и выполнения данных, операций и запросов (плоскости данных). Проверка подлинности плоскости управления выполняется с помощью функции управления доступом на основе ролей в Azure. Вы можете использовать встроенную предварительно настроенную роль или создать пользовательскую роль. С помощью управления доступом на основе ролей Azure можно управлять учетными записями, базами данных, контейнерами и метаданными. Плоскость управления включает в себя операции, включая, но не ограничиваясь этими примерами.

  • Создание, замена или удаление баз данных — создание, замена или удаление контейнеров — чтение или замена пропускной способности баз данных — чтение или замена пропускной способности контейнеров. Аутентификация на уровне передачи данных использует настраиваемый API для реализации многоуровневого управления доступом на основе ролей NoSQL. С помощью этой собственной реализации можно также использовать предварительно настроенные или пользовательские роли. С помощью собственного управления доступом на основе ролей можно выполнять запросы, управлять элементами или выполнять другие распространенные операции. Плоскость данных включает в себя операции, включая, но не ограничиваясь этими примерами.
  • Создание, замена, обновление или удаление элементов — исправление элементов — выполнение запросов

Поддерживает ли Azure Cosmos DB для NoSQL язык запросов SQL?

SQL (Structured Query Language) — это язык, который обычно используется для работы с реляционными данными. API для NoSQL имеет пользовательский язык запросов NoSQL , производный от SQL. Язык запросов NoSQL включает подмножество языка запросов SQL, обычно связанного с SQL Server, а также различные улучшения NoSQL. Язык запросов NoSQL предоставляет расширенные иерархические и реляционные операторы и расширяемость с помощью определяемых пользователем функций на основе JavaScript .UDFs. Грамматика JSON позволяет моделировать документы JSON в виде деревьев с помеченными узлами, которые используются как технологиями автоматического индексирования Azure Cosmos DB, так и запросами на диалекте языка SQL Azure Cosmos DB. Сведения об использовании этого языка запросов см.: NoSQL Query.

Поддерживает ли Azure Cosmos DB для NoSQL функции агрегирования SQL?

API для NoSQL поддерживает агрегирование с использованием агрегатных функций, таких как COUNT, MAX, AVG, и SUM с использованием языка запросов NoSQL.

Как Azure Cosmos DB для NoSQL обеспечивает параллелизм?

API для NoSQL поддерживает управление оптимистическим параллелизмом (OCC) с помощью тегов сущностей HTTP или ETags. Каждый ресурс API для NoSQL имеет ETag, и ETag устанавливается на сервере при каждом обновлении документа. Заголовок и текущее значение ETag добавляются во все сообщения ответа. ETags можно использовать с заголовком If-Match, чтобы позволить серверу определить, следует ли обновлять ресурс. Значением If-Match является значение ETag, используемое для проверки. Если это значение ETag совпадает со значением ETag сервера, ресурс будет обновлен. Если тег ETag больше не актуален, сервер отклоняет операцию с кодом ответа "HTTP 412: ошибка в предусловии". Затем клиент повторно запрашивает ресурс, чтобы получить его текущее значение ETag. Кроме того, ETags можно использовать с заголовком If-None-Match, чтобы определить, требуется ли повторная загрузка ресурса.

Большинство API для SDK NoSQL включают классы для управления оптимистическим параллелизмом.

Как выполнить массовую вставку документов в Azure Cosmos DB для NoSQL?

Используйте функцию массового импорта в пакете .NET SDK или Java SDK для API NoSQL, чтобы импортировать большие массивы данных. Эта функция оптимизирует подготовленную пропускную способность для импорта больших наборов данных.

Кроме того, используйте Apache Spark для импорта данных в больших объемах с помощью Python или Scala.

Поддерживает ли Azure Cosmos DB для NoSQL кэширование ссылок ресурсов?

Да, так как Azure Cosmos DB для NoSQL — это служба RESTful, ссылки на ресурсы неизменяемы и могут кэшироваться. API для клиентов NoSQL может указать заголовок If-None-Match для операций чтения в любом ресурсообразном документе или контейнере, а затем обновить локальные копии после изменения версии на сервере.

Доступен ли локальный экземпляр Azure Cosmos DB для NoSQL?

Да. Эмулятор Azure Cosmos DB предоставляет высокоточное воспроизведение службы Azure Cosmos DB. Она поддерживает функции, идентичные Azure Cosmos DB в различных API. Эта функция включает поддержку создания элементов, запроса элементов, подготовки контейнеров и масштабирования контейнеров. Вы можете разрабатывать и тестировать приложения с помощью конечных точек эмулятора. Затем можно развернуть приложения в Azure в глобальном масштабе, изменив строку подключения с эмулятора на рабочую службу.

Почему значения с плавающей запятой в элементе Azure Cosmos DB для NoSQL округляются при использовании обозревателя данных на портале?

Это ограничение Обозревателя данных является ограничением JavaScript. JavaScript использует номера форматов с плавающей запятой двойной точности, как указано в институте инженеров электротехники и электроники (IEEE) 754. Этот тип данных может безопасно хранить только числа между -(253 - 1) и 253 - 1 (то есть 9007199254740991).

Security

Что такое управление доступом на основе ролей (RBAC)?

Управление доступом на основе ролей (RBAC) — это метод регулирования доступа к компьютеру или сетевым ресурсам на основе ролей отдельных пользователей в организации. В Azure Cosmos DB RBAC используется для предоставления доступа к плоскости данных пользователям и приложениям. Для получения дополнительной информации о различных терминах управления доступом на основе ролей см. глоссарий безопасности.

Как включить управление доступом на основе ролей для уровня данных в Azure Cosmos DB для NoSQL?

Используйте собственную функцию управления доступом к данным на основе ролей (RBAC) в Azure Cosmos DB для предоставления доступа пользователям и приложениям. Дополнительные сведения см. в разделе "Предоставление ролевого доступа к плоскости данных".

Какие API-интерфейсы Azure Cosmos DB поддерживают управление доступом на основе ролей в плоскости данных?

По состоянию на данный момент поддерживается только API NoSQL.

Можно ли управлять определениями и назначениями ролей на портале Azure?

Поддержка управления ролями в портале Azure пока недоступна.

Какие пакеты SDK в API Azure Cosmos DB для NoSQL поддерживают управление доступом на основе ролей?

Сейчас поддерживаются пакеты SDK для .NET V3, Java V4, JavaScript V3 и Python V4.3+.

Будут ли пакеты SDK для Azure Cosmos DB автоматически обновлять маркер Microsoft Entra по истечении срока действия?

Да.

Можно ли отключить использование первичных или вторичных ключей учетной записи при использовании управления доступом на основе ролей?

Да. Дополнительные сведения см. в разделе отключение проверки подлинности на основе ключей.

Перенос учетных записей Azure Cosmos DB в разных группах ресурсов, подписках и клиентах

Как перенести учетную запись Azure Cosmos DB в другую группу ресурсов или в другую подписку?

Общие рекомендации по переносу учетной записи Cosmos DB в другую группу ресурсов или подписку описаны в статье о перемещении ресурсов Azure в новую группу ресурсов или статью подписки .

После успешного перемещения учетной записи Azure Cosmos DB в соответствии с общими рекомендациями необходимо переназначить все удостоверения (System-Assigned или User-Assigned), связанные с учетной записью. Это переназначение необходимо, чтобы гарантировать, что эти идентификаторы продолжат иметь необходимые разрешения для доступа к ключу Key Vault.

Предупреждение

Если у аккаунта Cosmos DB включены Ключи, управляемые клиентом, можно перенести ее только в другую группу ресурсов или подписку, если она находится в Активном состоянии. Учетные записи в отозванном состоянии нельзя перенести.

Как перенести учетную запись Azure Cosmos DB в другой клиент?

Если для вашей учетной записи Cosmos DB включены ключи, управляемые клиентом, вы можете переносить учетную запись только в том случае, если она является меж-арендаторской учетной записью с управляемыми клиентом ключами. Дополнительные сведения см. в руководстве по настройке клиентских ключей управления для разных тенантов в учетной записи Azure Cosmos DB с помощью Azure Key Vault.

Предупреждение

После миграции важно сохранить учетную запись Azure Cosmos DB и Azure Key Vault в отдельных арендаторах, чтобы сохранить исходную связь между арендаторами. Убедитесь, что ключ Key Vault остается на месте до завершения миграции учетной записи Cosmos DB.

Переход в режим непрерывного резервного копирования

Что следует ожидать во время и после миграции?

При переходе с периодического режима на непрерывный режим нельзя выполнять операции уровня управления, выполняющие обновления или удаления уровня учетной записи. Например, такие операции, как добавление или удаление регионов, отработка отказа учетной записи, обновление политики резервного копирования и т. д., не могут выполняться во время миграции. Время миграции зависит от размера данных и количества регионов в вашей учетной записи. Действие восстановления перенесенных учетных записей выполняется только с момента успешного завершения миграции.

После завершения миграции можно восстановить учетную запись. Если миграция завершится в 1:00 PST, можно выполнить восстановление до точки во времени, начиная с 1:00 PST.

Выполняется ли миграция только на уровне учетной записи?

Да.

Какие учетные записи можно использовать для миграции резервных копий для непрерывного резервного копирования?

API для NoSQL, API для таблиц, API Gremlin и API для учетных записей MongoDB, использующих общую, выделенную или автоматическую выделенную пропускную способность, поддерживают миграцию на непрерывное резервное копирование.

Учетные записи, для которых включена функция Azure Synapse Link либо функция Azure Synapse Link была отключена для одной или нескольких коллекций, не могут перейти на непрерывное резервное копирование.

Important

Synapse Link для Cosmos DB больше не поддерживается для новых проектов. Не используйте эту функцию.

Пожалуйста, используйте функцию зеркалирования Azure Cosmos DB для Microsoft Fabric, которая теперь доступна в общей доступности (GA). Зеркальное отображение обеспечивает те же преимущества нулевого ETL и полностью интегрировано с Microsoft Fabric. Дополнительные сведения см. в Обзоре зеркалирования Cosmos DB.

Занимает ли миграция время? Что такое типичное время?

Миграция занимает разное время, которое в значительной степени зависит от размера данных и количества регионов в вашей учетной записи. Вы можете получить состояние миграции с помощью команд Azure CLI или PowerShell. Для больших учетных записей с десятками терабайт данных миграция может занять до нескольких дней.

Требует ли миграция для учетной записи с многорегиональной записью (mrw) с периодической резервной копией к многорегиональной записи с непрерывным резервным копированием времени?

Да, эта миграция занимает время, главным образом потому, что необходимо подождать, пока все старые временные записи не будут обработаны в ходе непрерывной миграции резервных копий. Вы можете получить состояние миграции с помощью команд Azure CLI или PowerShell. Для больших учетных записей с десятками терабайт данных миграция может занять до нескольких дней.

Вызывает ли миграция простой?

Нет, операция миграции выполняется в фоновом режиме. Таким образом, запросы клиентов не затрагиваются. Однако во время миграции необходимо выполнить некоторые внутренние операции, и это может занять дополнительное время, если учетная запись находится под тяжелой нагрузкой.

Что произойдет, если миграция провалится? По-прежнему ли я получаю периодические резервные копии или непрерывные резервные копии?

После запуска процесса миграции учетная запись включена в непрерывном режиме. Если миграция завершается ошибкой, необходимо снова инициировать миграцию, пока она не завершится успешно.

Как выполнить восстановление до, во время или после миграции на определенную точку во времени?

Предположим, что вы начали миграцию в t1 и завершили в t5, нельзя использовать метку времени восстановления между t1 и t5. Кроме того, предположим, что ваша учетная запись теперь находится в непрерывном режиме. Чтобы восстановить после времени t5, выполните восстановление с помощью портала Azure, интерфейса командной строки или PowerShell, как обычно, с непрерывной учетной записью. Этот запрос самостоятельного восстановления можно выполнить только после завершения миграции. Чтобы восстановить систему к моменту, предшествующему t1, вы можете открыть обращение в службу поддержки, как обычно делаете это с учётной записью периодического резервного копирования. После миграции требуется до 30 дней для периодического восстановления. В течение этих 30 дней вы можете восстановить данные на основе периода сохранения резервной копии вашей учетной записи до миграции. Например, если резервная копия была настроена для хранения 24 копий через 1 час интервалов, можно восстановить в любое время между (t1 – 24 hours) и t1.

Какие операции уровня управления учетными записями блокируются во время миграции?

Такие операции, как добавление и удаление региона, аварийное переключение, изменение политики резервного копирования и любые изменения пропускной способности, приводящие к перемещению данных, блокируются во время миграции.

Если миграция завершается сбоем из-за некоторой базовой проблемы, будет ли она блокировать операцию управляющей плоскости до тех пор, пока не будет успешно выполнена повторная попытка миграции?

Сбой миграции не блокирует операции плоскости управления. Если миграция завершается ошибкой, повторите попытку до тех пор, пока она не завершится успешно, перед выполнением других операций на управляющей плоскости.

Можно ли отменить миграцию?

Невозможно отменить миграцию, так как миграции не являются обратимой операцией. Через команду поддержки вызовов можно временно приостановить и разрешить продолжение автономных операций. Но нельзя вернуться к периодическому состоянию резервного копирования.

Есть ли средство, которое может помочь оценить время миграции на основе использования данных и количества регионов?

Нет средства для оценки времени. Наши тестовые и масштабируемые запуски указывают на то, что учетная запись с 1 ТБ данных занимает примерно 90 минут. Для учетных записей с несколькими регионами вычислите общий размер данных в виде Number_of_regions * Data_in_single_region.

Теперь, когда режим непрерывного резервного копирования стал общедоступным, вы все еще рекомендуете восстанавливать копию вашей учетной записи? Рекомендуется ли выполнить миграцию на копию перед решением о переносе рабочей учетной записи?

Проверьте функцию непрерывного режима резервного копирования, чтобы убедиться, что она работает должным образом перед переносом рабочих учетных записей. Миграция является односторонняя операция и не может быть отменена.

Бесплатная пробная версия Azure Cosmos DB

Предусмотрена ли бесплатная учетная запись?

Да, вы можете зарегистрироваться для бесплатной учетной записи базы данных с 1000 ЕЗ/с и 25 ГБ бесплатно.

Если вы ранее не работали с Azure, можете зарегистрироваться, чтобы получить бесплатную учетную запись Azure на 30 дней, а также деньги на счет, которые можно потратить на ознакомление с любыми службами Azure. Если у вас уже есть подписка на Visual Studio, вам доступны бесплатные кредиты Azure, которые также можно потратить на любые службы Azure.

Вы также можете использовать эмулятор Azure Cosmos DB, чтобы локально разработать и протестировать приложение без создания подписки Azure и каких-либо затрат. Если приложение в эмуляторе Azure Cosmos DB работает правильно, вы можете использовать учетную запись Azure Cosmos DB в облаке.

Начало работы с Azure Cosmos DB

Как зарегистрироваться в Azure Cosmos DB?

Служба Azure Cosmos DB доступна на портале Azure. Во-первых, вам нужно зарегистрироваться для получения подписки Azure. После регистрации добавьте учетную запись Azure Cosmos DB в подписку Azure.

Как выполнить аутентификацию в Azure Cosmos DB?

Используйте идентификатор Microsoft Entra для проверки подлинности в Azure Cosmos DB для всех API, поддерживающих этот метод проверки подлинности. Для API, которые не поддерживают проверку подлинности идентификатора Microsoft Entra, используйте ключи с осторожностью. Убедитесь, что ключи для рабочих учетных записей хранятся безопасно, например в Azure Key Vault.

Где доступен Azure Cosmos DB?

Сведения о региональной доступности для Azure Cosmos DB см. в продуктах Azure, доступных по регионам. Вы можете привязать вашу базу данных к одному или нескольким из этих регионов.

Комплекты средств разработки программного обеспечения (SDK) для Azure Cosmos DB позволяют настраивать регионы, которые они используют для подключений. В большинстве пакетов SDK значение "PreferredLocations" устанавливается в любой из регионов Azure, в которых доступен Azure Cosmos DB.

Что необходимо учитывать при распределении данных по всему миру через центры обработки данных Azure?

Служба Azure Cosmos DB доступна во всех регионах Azure, как указано на странице со списком регионов Azure. Так как это базовая служба Azure, каждый новый центр обработки данных имеет присутствие Azure Cosmos DB.

Указывая регион, помните, что Azure Cosmos DB учитывает суверенные и государственные облака. Например, нельзя реплицировать данные из суверенного региона. Кроме того, вы не сможете включить репликацию в другие суверенные местоположения из внешней учетной записи.

Можно ли переключаться между подготовкой пропускной способности на уровне контейнера и базой данных?

Подготовка пропускной способности на уровне контейнера и базы данных являются отдельными предложениями, а также переключение между этими предложениями требует миграции данных из источника в назначение. Необходимо создать новую базу данных или контейнер, а затем перенести данные с помощью библиотеки для массового выполнения или Фабрика данных Azure.

Поддерживает ли Azure Cosmos DB аналитику временных рядов?

Да, Azure Cosmos DB поддерживает анализ временных рядов. Канал изменений можно использовать для создания агрегированных представлений по данным временных рядов. Этот подход можно расширить с помощью потоковой передачи Apache Spark или другого обработчика потоковых данных.

Каковы квоты службы Azure Cosmos DB и ограничения пропускной способности?

Сведения о квотах служб и ограничениях пропускной способности см. в разделах квоты служб и ограничения пропускной способности.