Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Это руководство содержит рекомендации по решениям, созданным с помощью последней версии пакета SDK для Python для Azure Cosmos DB для NoSQL. Рекомендации, включенные здесь, помогают повысить задержку, повысить доступность и повысить общую производительность решений.
Конфигурация учетной записи
- Чтобы сократить задержку, запускайте приложение в том же регионе Azure, что и учетная запись Azure Cosmos DB, если это возможно. Включите репликацию в 2+ регионах в учетных записях для обеспечения оптимальной доступности. Для рабочих нагрузок включите аварийное переключение, управляемое службой. В случае отсутствия этой конфигурации учетная запись теряет возможность записи на всё время простоя региона записи, так как ручное переключение не может быть выполнено из-за отсутствия связи с регионом. Дополнительные сведения о добавлении нескольких регионов с помощью пакета SDK для Python см. в руководстве по глобальному распространению.
Использование пакета SDK
- Всегда используйте последнюю версию пакета SDK Azure Cosmos DB, доступную для оптимальной производительности.
- Используйте один экземпляр
CosmosClient
для времени существования приложения для повышения производительности. - Задайте конфигурацию
preferred_locations
в клиенте Cosmos. Во время переключения на резервный узел операции записи отправляются в текущий регион записи, а все операции чтения направляются в первый регион в списке предпочитаемых расположений. Дополнительные сведения о региональном механизме переключения при сбое см. в статье об устранении неполадок с доступностью. - Временная ошибка — это ошибка, причина которой быстро устраняется сама собой. При разработке приложений, которые подключаются к вашей базе данных, необходимо учитывать возможность появления этих временных ошибок и предусматривать их обработку путем реализации логики повторных попыток в коде вместо вывода пользователю сообщений об ошибках приложения. В SDK есть встроенная логика обработки таких временных ошибок в повторяемых запросах, таких как операции чтения или запроса. SDK не может повторить запись для временных сбоев, так как записи не являются идемпотентными. В SDK пользователи могут настраивать логику повторных попыток для регулирования. Подробности о том, какие ошибки следует повторить, можно найти здесь.
- Используйте ведение журнала SDK для сбора диагностической информации и устранения лагов.
Проектирование данных
- Плата за запрос (т. е. затраты на обработку запросов) указанной операции напрямую зависит от размера документа. Рекомендуется уменьшить размер документов, так как операции с большими документами стоят больше, чем с меньшими.
- Некоторые символы ограничены и не могут использоваться в некоторых идентификаторах: "/", "\", "?", "#". Общая рекомендация заключается в том, чтобы не использовать специальные символы в идентификаторах, таких как имя базы данных, имя коллекции, идентификатор элемента или ключ секции, чтобы избежать непредвиденного поведения.
- Политика индексирования Azure Cosmos DB также позволяет указать пути к документам для включения или исключения из индексирования с помощью путей индексирования. Исключите из индексирования неиспользуемые пути, чтобы ускорить выполнение операций записи. Дополнительные сведения см. в статье о создании индексов с помощью примера пакета SDK.
Характеристики хоста
- Вы можете столкнуться с проблемами подключения или доступности из-за недостатка ресурсов на клиентском компьютере. Следите за использованием ЦП на узлах, где работает клиент Azure Cosmos DB, и увеличивайте ресурсы или расширяйте, если уровень использования высок.
- Если вы используете для запуска приложения виртуальную машину, включите на ней ускорение сети, чтобы устранить узкие места при большом объеме трафика и уменьшить задержку или нагрузку на ЦП. Кроме того, можно использовать конечную виртуальную машину более высокого класса, где максимальная загрузка ЦП будет составлять менее 70 %.
- По умолчанию результаты запроса возвращаются в блоках из 100 элементов или 4 МБ, в зависимости от того, какое ограничение сначала достигается. Если запрос возвращает более 100 элементов, увеличьте размер страницы, чтобы уменьшить количество необходимых круговых путей. Потребление памяти увеличивается по мере увеличения размера страницы.
Следующие шаги
Чтобы узнать больше о советах по повышению производительности Python SDK, см. Советы по производительности для Python SDK в Azure Cosmos DB.
Дополнительные сведения о создании приложения с высокой масштабируемостью и производительностью см. в статье Partitioning and scaling in Azure Cosmos DB (Секционирование и масштабирование в Azure Cosmos DB).
Пытаетесь спланировать ресурсы для миграции в Azure Cosmos DB? Для планирования ресурсов можно использовать сведения об имеющемся кластере базы данных.
- Если вам известно только количество виртуальных ядер и серверов в существующем кластере баз данных, см. сведения об оценке единиц запросов на основе виртуальных ядер или vCPUs.
- Если вам известна стандартная частота запросов для текущей рабочей нагрузки базы данных, ознакомьтесь со статьей о расчете единиц запросов с помощью планировщика ресурсов Azure Cosmos DB