Snabbstart: Skapa en Java-app för att hantera Azure Cosmos DB Tabell-API data

GÄLLER för: tabell-API

I den här snabbstarten skapar du ett Azure Cosmos DB Tabell-API-konto och använder Datautforskaren och en Java-app som klonas från GitHub för att skapa tabeller och entiteter. Azure Cosmos DB är en databastjänst med flera modeller som gör att du snabbt kan skapa och fråga databaser för dokument, tabeller, nyckelvärden och grafer med global distribution och horisontella skalningsfunktioner.

Förutsättningar

Skapa ett databaskonto

Viktigt

Du måste skapa ett nytt tabell-API-konto för att arbeta med de allmänt tillgängliga tabell-API SDK:erna. Tabell-API-konton som skapas i förhandsversionen stöds inte av de allmänt tillgängliga SDK:erna.

  1. Logga in på Azure Portal i ett nytt webbläsarfönster.

  2. I den vänstra menyn väljer du Skapa en resurs.

    Skapa en resurs på Azure-portalen

  3. På sidan Nytt väljer du Databaser > Azure Cosmos DB.

    Fönstret Databaser på Azure Portal

  4. På sidan Skapa Azure Cosmos DB konto anger du inställningarna för det nya Azure Cosmos DB konto.

    Inställning Värde Beskrivning
    Prenumeration Din prenumeration Välj den Azure-prenumeration som ska användas för det här Azure Cosmos DB-kontot.
    Resursgrupp Skapa ny och sedan Kontonamn Välj Skapa ny. Ange sedan ett nytt resursgruppnamn för ditt konto. För enkelhetens skull använder du samma namn som Azure Cosmos DB kontonamnet.
    Account Name Ett unikt namn Ange ett unikt namn som identifierar ditt Azure Cosmos DB-konto.

    Kontonamnet får bara använda gemener, siffror och bindestreck (-) och måste vara mellan 3 och 44 tecken långt.
    API Tabell API:et avgör vilken typ av konto som skapas. Azure Cosmos DB innehåller fem API:er: Core (SQL) för dokumentdatabaser, Gremlin för grafdatabaser, MongoDB för dokumentdatabaser, Azure Table och Cassandra. Du måste skapa ett separat konto för varje API.

    Välj Azure-tabell eftersom du i den här snabbstarten skapar en tabell som fungerar med Tabell-API.

    Läs mer om Tabell-API.
    Location Den region som är närmast dina användare Välj en geografisk plats som värd för ditt Azure Cosmos DB-konto. Använd den plats som är närmast dina användare så att de får så snabb åtkomst till data som möjligt.
    Kapacitetsläge Etablerat dataflöde eller serverlöst Välj Etablerat dataflöde för att skapa ett konto i etablerat dataflödesläge. Välj Serverlös för att skapa ett konto i serverlöst läge.

    Du kan lämna alternativen Geo-redundans och Skrivningar i flera regioner på Inaktivera för att undvika ytterligare avgifter och hoppa över avsnitten Nätverk och taggar.

  5. Välj Granska + skapa. När verifieringen är klar väljer du Skapa för att skapa kontot.

    Den nya kontosidan för Azure Cosmos DB

  6. Det tar några minuter att skapa kontot. Du ser ett meddelande om att Distributionen är på gång. Vänta tills distributionen har avslutats och välj sedan Gå till resurs.

    Fönstret Azure Portal meddelanden

Lägg till en tabell

Nu kan du använda Datautforskaren i Azure Portal för att skapa en databas och en tabell.

  1. Välj Datautforskaren > Ny tabell.

    Området Lägg till tabell visas längst till höger, du kan behöva bläddra åt höger för att se det.

    Datautforskaren i Azure Portal

  2. På sidan Lägg till tabell anger du inställningarna för den nya tabellen.

    Inställning Föreslaget värde Beskrivning
    Tabell-id sample-table ID för din nya tabell. Samma teckenkrav gäller för tabellnamn som databas-id. Databasnamn måste innehålla mellan 1 och 255 tecken och får inte innehålla / \ # ? eller avslutande blanksteg.
    Dataflöde 400 RU:er Ändra genomflödet till 400 begäransenheter per sekund (RU/s). Du kan skala upp dataflödet senare om du vill minska svarstiden.
  3. Välj OK.

  4. Datautforskaren visar den nya databasen och tabellen.

    Datautforskaren i Azure-portalen visar den nya databasen och samlingen

Lägga till exempeldata

Du kan nu lägga till data till den nya tabellen med datautforskaren.

  1. Expandera Datautforskaren sample-table i Datautforskaren entiteter och välj sedan Lägg till entitet.

    Skapa nya entiteter i datautforskaren i Azure Portal

  2. Lägg nu till data i värderutan PartitionKey och värderutan RowKey och välj Lägg till entitet.

    Ange partitionsnyckel och radnyckel för en ny entitet

    Du kan nu lägga till fler entiteter i din tabell, redigera entiteter eller ställa frågor mot data i Datautforskaren. I Datautforskaren kan du även skala ditt dataflöde och lägga till lagrade procedurer, användardefinierade funktioner och utlösare i tabellen.

Klona exempelprogrammet

Nu ska vi klona en Table-app från GitHub, ange anslutningssträngen och köra appen. Du kommer att se hur lätt det är att arbeta med data programmässigt.

  1. Öppna en kommandotolk, skapa en ny mapp som heter git-samples och stäng sedan kommandotolken.

    md "C:\git-samples"
    
  2. Öppna ett git-terminalfönster, t.ex. git bash, och använd kommandot cd för att ändra till den nya mappen där du vill installera exempelappen.

    cd "C:\git-samples"
    
  3. Klona exempellagringsplatsen med följande kommando. Detta kommando skapar en kopia av exempelappen på din dator.

    git clone https://github.com/Azure-Samples/storage-table-java-getting-started.git 
    

Tips

En mer detaljerad genomgång av liknande kod finns i artikeln Cosmos DB Tabell-API exempel.

Granska koden

Det här är valfritt. Om du vill lära dig hur databasresurserna skapas i koden kan du granska följande kodavsnitt. Annars kan du gå vidare och uppdatera avsnittet om anslutningssträngen i det här dokumentet.

  • Följande kod visar hur du skapar en tabell i Azure Storage:

    private static CloudTable createTable(CloudTableClient tableClient, String tableName) throws StorageException, RuntimeException, IOException, InvalidKeyException,   IllegalArgumentException, URISyntaxException, IllegalStateException {
    
      // Create a new table
      CloudTable table = tableClient.getTableReference(tableName);
      try {
          if (table.createIfNotExists() == false) {
              throw new IllegalStateException(String.format("Table with name \"%s\" already exists.", tableName));
          }
      }
      catch (StorageException s) {
          if (s.getCause() instanceof java.net.ConnectException) {
              System.out.println("Caught connection exception from the client. If running with the default configuration please make sure you have started the storage emulator.");
          }
          throw s;
      }
    
      return table;
    }
    
  • Följande kod visar hur du infogar data i tabellen:

    private static void batchInsertOfCustomerEntities(CloudTable table) throws StorageException {
    
    // Create the batch operation
    TableBatchOperation batchOperation1 = new TableBatchOperation();
    for (int i = 1; i <= 50; i++) {
        CustomerEntity entity = new CustomerEntity("Smith", String.format("%04d", i));
        entity.setEmail(String.format("smith%04d@contoso.com", i));
        entity.setHomePhoneNumber(String.format("425-555-%04d", i));
        entity.setWorkPhoneNumber(String.format("425-556-%04d", i));
        batchOperation1.insertOrMerge(entity);
    }
    
    // Execute the batch operation
    table.execute(batchOperation1);
    }
    
  • Följande kod visar hur du frågar efter data från tabellen:

    private static void partitionScan(CloudTable table, String partitionKey) throws StorageException {
    
        // Create the partition scan query
        TableQuery<CustomerEntity> partitionScanQuery = TableQuery.from(CustomerEntity.class).where(
            (TableQuery.generateFilterCondition("PartitionKey", QueryComparisons.EQUAL, partitionKey)));
    
        // Iterate through the results
        for (CustomerEntity entity : table.execute(partitionScanQuery)) {
            System.out.println(String.format("\tCustomer: %s,%s\t%s\t%s\t%s", entity.getPartitionKey(), entity.getRowKey(), entity.getEmail(), entity.getHomePhoneNumber(), entity.  getWorkPhoneNumber()));
        }
    }
    
  • Följande kod visar hur du tar bort data från tabellen:

    
    System.out.print("\nDelete any tables that were created.");
    
    if (table1 != null && table1.deleteIfExists() == true) {
        System.out.println(String.format("\tSuccessfully deleted the table: %s", table1.getName()));
    }
    
    if (table2 != null && table2.deleteIfExists() == true) {
        System.out.println(String.format("\tSuccessfully deleted the table: %s", table2.getName()));
    }
    

Uppdatera din anslutningssträng

Gå nu tillbaka till Azure Portal för att hämta information om din anslutningssträng och kopiera den till appen. På så vis kan appen kommunicera med den värdbaserade databasen.

  1. I ditt Azure Cosmos DB-konto i Azure Portalväljer du Anslutningssträng.

    Visa information om anslutningssträngen i fönstret Anslutningssträng

  2. Kopiera PRIMÄR ANSLUTNINGSSTRÄNG med hjälp av kopieringsknappen till höger.

  3. Öppna config.properties från mappen C:\git-samples\storage-table-java-getting-started\src\main\resources.

  4. Kommentera ut rad ett och avkommentera rad två. De två första raderna bör nu se ut så här.

    #StorageConnectionString = UseDevelopmentStorage=true
    StorageConnectionString = DefaultEndpointsProtocol=https;AccountName=[ACCOUNTNAME];AccountKey=[ACCOUNTKEY]
    
  5. Klistra in PRIMÄR ANSLUTNINGSSTRÄNG från portalen i värdet StorageConnectionString på rad 2.

    Viktigt

    Om slutpunkten använder documents.azure.com innebär det att du har ett förhandsversionskonto, och du måste skapa ett nytt tabell-API-konto för att kunna arbeta med den allmänt tillgängliga SDK:n för tabell-API.

  6. Spara filen config.properties.

Du har nu uppdaterat appen med all information som behövs för kommunikation med Azure Cosmos DB.

Kör appen

  1. I git-terminalfönstret lägger du till cd framför mappen storage-table-java-getting-started.

    cd "C:\git-samples\storage-table-java-getting-started"
    
  2. Kör Java-programmet genom att köra följande kommandon i git-terminalfönstret.

    mvn compile exec:java 
    

    Konsolfönstret visar de data som läggs till i den nya tabelldatabasen i Azure Cosmos DB.

    Du kan nu gå tillbaka till datautforskaren och se frågan, ändra och arbeta med dessa nya data.

Granska serviceavtal i Azure-portalen

Den Azure Portal övervakar Cosmos DB dataflöde, lagring, tillgänglighet, svarstid och konsekvens för ditt konto. Diagram för mått som är associerade med Azure Cosmos DB Serviceavtal (SLA) visar SLA-värdet jämfört med faktiska prestanda. Den här måttsviten gör övervakningen av dina serviceavtal transparent.

Så här granskar du mått och serviceavtal:

  1. Välj Mått i Cosmos DB-kontots navigeringsmeny.

  2. Välj en flik, till exempel Svarstid, och välj en tidsram till höger. Jämför linjerna Actual och SLA i diagrammen.

    Azure Cosmos DB-måttsvit

  3. Granska måtten på de andra flikarna.

Rensa resurser

När du är klar med din app och Azure Cosmos DB-konto kan du ta bort de Azure-resurser som du skapade så att du inte debiteras mer. Ta bort resurser:

  1. I sökfältet Azure Portal du efter och väljer Resursgrupper.

  2. I listan väljer du den resursgrupp som du skapade för den här snabbstarten.

    Välj den resursgrupp som ska tas bort

  3. På sidan Översikt för resursgruppen väljer du Ta bort resursgrupp.

    Ta bort resursgruppen

  4. I nästa fönster anger du namnet på den resursgrupp som ska tas bort och väljer sedan Ta bort.

Nästa steg

I den här snabbstarten har du lärt dig hur du skapar ett Azure Cosmos DB-konto, skapar en tabell med Datautforskaren och kör en Java-app för att lägga till tabelldata. Du kan nu ställa frågor mot dina data med tabell-API:t.