Поделиться через


Быстрый старт: использование Azure Cosmos DB для таблицы с SDK Azure для Java

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

Справочная документация по API | Исходный код библиотеки | Пакет (Maven) | Azure Developer CLI

Предварительные условия

  • Azure Developer CLI
  • Docker Desktop
  • Java 21

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

Инициализация проекта

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

  1. Откройте терминал в пустом каталоге.

  2. Если вы еще не прошли проверку подлинности, выполните проверку подлинности в интерфейсе командной строки разработчика Azure с помощью azd auth login. Выполните действия, указанные средством для проверки подлинности в CLI с помощью предпочитаемых учетных данных Azure.

    azd auth login
    
  3. Используется azd init для инициализации проекта.

    azd init --template cosmos-db-table-java-quickstart
    
  4. Во время инициализации настройте уникальное имя среды.

  5. Разверните учетную запись Azure Cosmos DB с помощью azd up. Шаблоны Bicep также развертывают пример веб-приложения.

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

  7. После завершения подготовки ресурсов 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.
    
  8. Используйте URL-адрес консоли для перехода к веб-приложению в браузере. Просмотрите выходные данные запущенного приложения.

Снимок экрана: работающее веб-приложение.

Установка клиентской библиотеки

Клиентская библиотека доступна через Maven в качестве azure-data-tables пакета.

  1. Перейдите в папку /src/web и откройте файл pom.xml .

    cd ./src
    
  2. Если он еще не существует, добавьте запись для azure-data-tables пакета.

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-data-tables</artifactId>
    </dependency>
    

Импорт библиотек

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

import com.azure.core.http.rest.PagedFlux;
import com.azure.data.tables.TableAsyncClient;
import com.azure.data.tables.TableClientBuilder;
import com.azure.data.tables.models.ListEntitiesOptions;
import com.azure.data.tables.models.TableEntity;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;

Объектная модель

Имя Описание
TableServiceAsyncClient Этот тип является основным типом клиента и используется для управления метаданными или базами данных на уровне учетной записи.
TableAsyncClient Этот тип представляет клиента для таблицы в рамках учетной записи.

Примеры кода

Пример кода в шаблоне использует таблицу с именем cosmicworks-products. В cosmicworks-products таблице содержатся такие сведения, как имя, категория, количество, цена, уникальный идентификатор и флаг продажи для каждого продукта. Контейнер использует уникальный идентификатор* в качестве ключа строки и категории в качестве ключа секции.

аутентификация клиента;

В этом примере создается новый экземпляр TableServiceAsyncClient класса.

DefaultAzureCredential azureTokenCredential = new DefaultAzureCredentialBuilder()
    .build();

TableServiceAsyncClient client = new TableServiceClientBuilder()
    .endpoint("<azure-cosmos-db-table-account-endpoint>")
    .credential(credential)
    .buildAsyncClient();

Получите стол

В этом примере создается экземпляр класса TableAsyncClient с помощью метода GetTableClient класса TableServiceClient.

TableAsyncClient table = client
    .getTableClient("<azure-cosmos-db-table-name>");

Создайте сущность

Самый простой способ создания сущности в таблице — использовать createEntity.

String rowKey = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb";
String partitionKey = "gear-surf-surfboards";

TableEntity entity = new TableEntity(partitionKey, rowKey)
        .addProperty("Name", "Yamba Surfboard")
        .addProperty("Quantity", 12)
        .addProperty("Price", 850.00)
        .addProperty("Sale", false);

Создание сущности в коллекции с помощью upsertEntity.

Mono<Void> response = table.upsertEntity(entity);

Получите сущность

Вы можете получить определенную сущность из таблицы с помощью getEntity.

String rowKey = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb";
String partitionKey = "gear-surf-surfboards";

TableEntity entity = table.getEntity(partitionKey, rowKey);

Запрос сущностей

После вставки сущности можно также запустить запрос, чтобы получить все сущности, соответствующие определенному фильтру, с помощью listEntities и ListEntitiesOptions класса. Используйте метод setFilter для указания строкового фильтра OData.

ListEntitiesOptions options = new ListEntitiesOptions()
    .setFilter("PartitionKey eq 'gear-surf-surfboards'");

PagedFlux<TableEntity> tableEntities = table.listEntities(options, null, null);

Анализ результатов запроса с разбивкой на страницы с помощью подписки.

tableEntities
    .DoOnNext(entity -> {
        // Do something
    });

Очистка ресурсов

Если вам больше не нужен пример приложения или ресурсов, удалите соответствующее развертывание и все ресурсы.

azd down