Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Вы ищете решение для баз данных для крупномасштабных сценариев с соглашением об уровне обслуживания (SLA) с доступностью 99,999%, мгновенным автомасштабированием и автоматическим переключением на резервные ресурсы в нескольких регионах? Рассмотрим Azure Cosmos DB для NoSQL.
В этом кратком руководстве описано, как развернуть базовое приложение Azure Cosmos DB для таблиц с помощью пакета SDK Azure для Python. Azure Cosmos DB для таблицы — это хранилище данных без схемы, позволяющее приложениям хранить структурированные данные таблицы в облаке. Вы узнаете, как создавать таблицы, строки и выполнять основные задачи в ресурсе Azure Cosmos DB с помощью пакета SDK Azure для Python.
Справочная документация по API | Исходный код библиотеки | Пакет (PyPI) | Azure Developer CLI
Предпосылки
- Azure Developer CLI (Интерфейс командной строки для разработчиков Azure)
- Docker Desktop
- Python 3.12
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
Инициализация проекта
Используйте интерфейс командной строки разработчика Azure (azd) для создания учетной записи Azure Cosmos DB для таблицы и развертывания контейнерного примера приложения. Пример приложения использует клиентскую библиотеку для управления, создания, чтения и выполнения запросов к образцам данных.
Откройте терминал в пустом каталоге.
Если вы еще не прошли проверку подлинности, выполните проверку подлинности в интерфейсе командной строки разработчика Azure с помощью
azd auth login. Следуйте инструкциям, указанным инструментом, чтобы выполнить аутентификацию в CLI, используя ваши предпочитаемые учетные данные Azure.azd auth loginИспользуйте
azd initдля инициализации проекта.azd init --template cosmos-db-table-python-quickstartВо время инициализации настройте уникальное имя среды.
Разверните учетную запись Azure Cosmos DB с помощью
azd up. Шаблоны Bicep также развертывают образец веб-приложения.azd upВ процессе подготовки выберите вашу подписку, желаемое местоположение и целевую группу ресурсов. Дождитесь завершения процесса настройки. Процесс может занять около пяти минут.
После завершения подготовки ресурсов Azure в выходные данные включён URL-адрес работающего веб-приложения.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.Используйте URL-адрес консоли для перехода к веб-приложению в браузере. Просмотрите выходные данные запущенного приложения.
Установка клиентской библиотеки
Клиентская библиотека доступна через PyPi в качестве azure-data-tables пакета.
Откройте терминал и перейдите в папку
/src.cd ./srcЕсли
azure-data-tablesеще не установлен, установите пакет с помощьюpip install.pip install azure-data-tablesОткройте и просмотрите файл src/requirements.txt , чтобы убедиться, что запись
azure-data-tablesсуществует.
Импорт библиотек
Импортируйте типы DefaultAzureCredential и TableServiceClient в код вашего приложения.
from azure.data.tables import TableServiceClient
from azure.identity import DefaultAzureCredential
Объектная модель
| Name | Description |
|---|---|
TableServiceClient |
Этот тип является основным типом клиента и используется для управления метаданными или базами данных на уровне учетной записи. |
TableClient |
Этот тип представляет клиента для таблицы в рамках учетной записи. |
Примеры кода
Пример кода в шаблоне использует таблицу с именем cosmicworks-products. В cosmicworks-products таблице содержатся такие сведения, как имя, категория, количество, цена, уникальный идентификатор и флаг продажи для каждого продукта. Контейнер использует уникальный идентификатор в качестве ключа строки и категории в качестве ключа секции.
аутентификация клиента;
В этом примере создается новый экземпляр TableServiceClient типа.
credential = DefaultAzureCredential()
client = TableServiceClient(endpoint="<azure-cosmos-db-table-account-endpoint>", credential=credential)
Забронировать стол
В этом примере экземпляр типа TableClient создается с помощью функции GetTableClient типа TableServiceClient.
table = client.get_table_client("<azure-cosmos-db-table-name>")
Создайте сущность
Самый простой способ создания сущности в таблице — создать новый объект, гарантирующий, что необходимо указать обязательные RowKey и PartitionKey свойства.
new_entity = {
"RowKey": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"PartitionKey": "gear-surf-surfboards",
"Name": "Yamba Surfboard",
"Quantity": 12,
"Sale": False,
}
Создание сущности в таблице с помощью upsert_entity.
created_entity = table.upsert_entity(new_entity)
Получите сущность
Вы можете получить определенную сущность из таблицы с помощью get_entity.
existing_entity = table.get_entity(
row_key="aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
partition_key="gear-surf-surfboards",
)
Запрос сущностей
После вставки сущности можно также запустить запрос, чтобы получить все сущности, соответствующие определенному фильтру, с помощью query_entities строкового фильтра OData.
category = "gear-surf-surfboards"
# Ensure the value is OData-compliant by escaping single quotes
safe_category = category.replace("'", "''")
filter = f"PartitionKey eq '{safe_category}'"
entities = table.query_entities(query_filter=filter)
Проанализируйте результаты запроса с разбивкой на страницы с помощью цикла for.
for entity in entities:
# Do something
Очистите ресурсы
Когда вы больше не нуждаетесь в демонстрационном приложении или ресурсах, удалите соответствующее развертывание и все ресурсы.
azd down