Azure Cosmos DB: Creare un'app console API MongoDB con Java e il portale di AzureAzure Cosmos DB: Build a MongoDB API console app with Java and the Azure portal

Azure Cosmos DB è il servizio di database multimodello distribuito a livello globale di Microsoft.Azure Cosmos DB is Microsoft’s globally distributed multi-model database service. È possibile creare ed eseguire rapidamente query su database di documenti, coppie chiave/valore e grafi, sfruttando in ognuno dei casi i vantaggi offerti dalle funzionalità di scalabilità orizzontale e distribuzione globale alla base di Azure Cosmos DB.You can quickly create and query document, key/value, and graph databases, all of which benefit from the global distribution and horizontal scale capabilities at the core of Azure Cosmos DB.

Questa guida di avvio rapido mostra come creare un account, un database di documenti e una raccolta di Azure Cosmos DB tramite il portale di Azure.This quick start demonstrates how to create an Azure Cosmos DB account, document database, and collection using the Azure portal. Si creerà e distribuirà quindi un'app console basata sul driver Java MongoDB.You'll then build and deploy a console app built on the MongoDB Java driver.

PrerequisitiPrerequisites

Prima di poter eseguire questo esempio, è necessario soddisfare i prerequisiti seguenti:Before you can run this sample, you must have the following prerequisites:

  • JDK 1.7+ (eseguire apt-get install default-jdk se JDK non è disponibile)JDK 1.7+ (Run apt-get install default-jdk if you don't have JDK)
  • Maven (eseguire apt-get install maven se Maven non è disponibile)Maven (Run apt-get install maven if you don't have Maven)

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

In alternativa, è possibile provare gratuitamente Microsoft Azure Cosmos DB senza una sottoscrizione di Azure e senza impegnoAlternatively, you can Try Azure Cosmos DB for free without an Azure subscription, free of charge and commitments. oppure usare l'emulatore Azure Cosmos DB per questa esercitazione, con una stringa di connession diOr you can use the Azure Cosmos DB Emulator for this tutorial with a connection string of

mongodb://localhost:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==@localhost:10255/admin?ssl=true

Creare un account di databaseCreate a database account

  1. In una nuova finestra accedere al portale di Azure.In a new window, sign in to the Azure portal.
  2. Nel menu a sinistra fare clic su Nuovo, quindi su Database e in Azure Cosmos DB fare clic su Crea.In the left menu, click New, click Databases, and then under Azure Cosmos DB, click Create.

    Screenshot del portale di Azure in cui sono evidenziati Altri servizi e Azure Cosmos DB

  3. Nel pannello Nuovo account specificare la configurazione desiderata per l'account Azure Cosmos DB.In the New account blade, specify the desired configuration for the Azure Cosmos DB account.

    Con Azure Cosmos DB è possibile scegliere uno dei quattro modelli di programmazione: Gremlin (graph), MongoDB, SQL (DocumentDB) e Table (key-value).With Azure Cosmos DB, you can choose one of four programming models: Gremlin (graph), MongoDB, SQL (DocumentDB), and Table (key-value).

    In questa guida introduttiva eseguiremo la programmazione in base all'API MongoDB, per cui occorrerà scegliere MongoDB nella compilazione del modulo.In this quick start we'll be programming against the MongoDB API so you'll choose MongoDB as you fill out the form. Tuttavia, se si dispone di dati grafo per un'app social media, dati documento di un'app di catalogo o dati chiave-valore (tabella), tenere presente che Azure Cosmos DB può fornire una piattaforma di servizi di database distribuiti a livello globale e a disponibilità elevata per tutte le applicazioni cruciali.But if you have graph data for a social media app, document data from a catalog app, or key/value (table) data, realize that Azure Cosmos DB can provide a highly available, globally-distributed database service platform for all your mission-critical applications.

    Compilare il pannello Nuovo account usando le informazioni riportate nella tabella come guida.Fill out the New account blade using the information in the table as a guide.

    Screenshot del pannello Nuovo Azure Cosmos DB

    ImpostazioneSetting Valore consigliatoSuggested value DescrizioneDescription
    IDID Valore univocoUnique value Nome univoco scelto per identificare l'account Azure Cosmos DB.A unique name you choose to identify the Azure Cosmos DB account. Poiché alI'ID fornito viene aggiunto documents.azure.com per creare l'URI, usare un ID univoco ma facilmente identificabile.documents.azure.com is appended to the ID you provide to create your URI, so use a unique but identifiable ID. L'ID può contenere solo lettere minuscole, numeri e il carattere '-' e deve avere una lunghezza compresa tra 3 e 50 caratteri.The ID may contain only lowercase letters, numbers, and the '-' character, and must be between 3 and 50 characters.
    APIAPI MongoDBMongoDB L'API determina il tipo di account da creare.The API determines the type of account to create. Azure Cosmos DB offre cinque API per soddisfare le esigenze dell'applicazione, ovvero SQL (database di documenti) Gremlin (grafo), MongoDB, SQL (database di documenti), Tabella di Azure e Cassandra, per ognuna delle quali è attualmente necessario un account separato.Azure Cosmos DB provides five APIs to suits the needs of your application: SQL (document database), Gremlin (graph database), MongoDB (document database), Azure Table, and Cassandra, each which currently require a separate account.

    Selezionare MongoDB perché in questa guida introduttiva si crea un database di documenti su cui è possibile eseguire query usando MongoDB.Select MongoDB because in this quickstart you are creating a document database that is queryable using MongoDB.

    Altre informazioni sull'API MongoDBLearn more about the MongoDB API
    SottoscrizioneSubscription Sottoscrizione in usoYour subscription Sottoscrizione di Azure da usare per l'account Azure Cosmos DB.The Azure subscription that you want to use for the Azure Cosmos DB account.
    Gruppo di risorseResource Group Stesso valore di IDThe same value as ID Nome del nuovo gruppo di risorse per l'account.The new resource group name for your account. Per semplicità si può usare lo stesso nome usato come ID.For simplicity, you can use the same name as your ID.
    LocalitàLocation Area più vicina ai propri utentiThe region closest to your users Posizione geografica in cui ospitare l'account Azure Cosmos DB.The geographic location in which to host your Azure Cosmos DB account. Scegliere la posizione più vicina ai propri utenti per fornire loro l'accesso più rapido possibile ai dati.Choose the location closest to your users to give them the fastest access to the data.
  4. Fare clic su Crea per creare l'account.Click Create to create the account.

  5. Sulla barra degli strumenti fare clic su Notifiche per monitorare il processo di distribuzione.On the toolbar, click Notifications to monitor the deployment process.

    Notifica di distribuzione avviata

  6. Al termine della distribuzione aprire il nuovo account dal riquadro Tutte le risorse.When the deployment is complete, open the new account from the All Resources tile.

    Account Azure Cosmos DB nel riquadro Tutte le risorse

Aggiungere una raccoltaAdd a collection

Assegnare un nome al nuovo database, db, e alla nuova raccolta, coll.Name your new database, db, and your new collection, coll.

È ora possibile usare lo strumento Esplora dati nel portale di Azure per creare un database e una raccolta.You can now use the Data Explorer tool in the Azure portal to create a database and collection.

  1. Fare clic su Esplora dati > Nuova raccolta.Click Data Explorer > New Collection.

    A destra verrà visualizzata l'area Aggiungi raccolta. Per vederla potrebbe essere necessario scorrere verso destra.The Add Collection area is displayed on the far right, you may need to scroll right to see it.

    Esplora dati nel portale di Azure: pannello Aggiungi raccolta

  2. Nella pagina Aggiungi raccolta immettere le impostazioni per la nuova raccolta.In the Add collection page, enter the settings for the new collection.

    ImpostazioneSetting Valore consigliatoSuggested value DescrizioneDescription
    ID databaseDatabase id AttivitàTasks Immettere Tasks come nome del nuovo database.Enter Tasks as the name for the new database. I nomi dei database devono avere una lunghezza compresa tra 1 e 255 caratteri e non possono contenere /, \, #, ? o spazi finali.Database names must contain from 1 through 255 characters, and they cannot contain /, \, #, ?, or a trailing space.
    ID raccoltaCollection id ItemsItems Immettere Items come nome della nuova raccolta.Enter Items as the name for your new collection. Gli ID delle raccolte prevedono gli stessi requisiti relativi ai caratteri dei nomi di database.Collection ids have the same character requirements as database names.
    Capacità di archiviazioneStorage capacity Fissa (10 GB)Fixed (10 GB) Modificare il valore in Fissa (10 GB).Change the value to Fixed (10 GB). Questo valore indica la capacità di archiviazione del database.This value is the storage capacity of the database.
    Velocità effettivaThroughput 400 UR400 RU Modificare la velocità effettiva in 400 unità richiesta al secondo (UR/sec).Change the throughput to 400 request units per second (RU/s). La capacità di archiviazione deve essere impostata su Fisso (10 GB) per impostare la velocità effettiva su 400 UR/sec.Storage capacity must be set to Fixed (10 GB) in order to set throughput to 400 RU/s. Se si vuole ridurre la latenza, è possibile aumentare la velocità effettiva in un secondo momento.If you want to reduce latency, you can scale up the throughput later.
    Chiave di partizionePartition key /category/category Immettere /category come chiave di partizione.Enter /category as the partition key. Una chiave di partizione che distribuisce i dati in modo uniforme a ogni partizione del database.A partition key distributes data evenly to each partition in the database. Per altre informazioni sul partizionamento, vedere Progettazione per il partizionamento.To learn more about partitioning, see Designing for partitioning.

    Fare clic su OK.Click OK.

    In Esplora dati verranno visualizzati il nuovo database e la nuova raccolta.Data Explorer displays the new database and collection.

    Esplora dati nel portale di Azure, con il nuovo database e la nuova raccolta

Clonare l'applicazione di esempioClone the sample application

Clonare ora un'app per le API MongoDB da GitHub, impostare la stringa di connessione ed eseguirla.Now let's clone a MongoDB API app from github, set the connection string, and run it. Come si noterà, è facile usare i dati a livello di codice.You'll see how easy it is to work with data programmatically.

  1. Aprire una finestra del terminale Git, ad esempio Git Bash, ed eseguire il comando cd per passare a una directory di lavoro.Open a git terminal window, such as git bash, and cd to a working directory.

  2. Eseguire il comando seguente per clonare l'archivio di esempio.Run the following command to clone the sample repository.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-java-getting-started.git
    
  3. Aprire quindi il file della soluzione in Visual Studio.Then open the solution file in Visual Studio.

Esaminare il codiceReview the code

Ecco una breve analisi di ciò che accade nell'app.Let's make a quick review of what's happening in the app. Aprire il file Program.cs. Come si noterà, queste righe di codice creano le risorse di Azure Cosmos DB.Open the Program.cs file and you'll find that these lines of code create the Azure Cosmos DB resources.

  • Viene inizializzato DocumentClient.The DocumentClient is initialized.

    MongoClientURI uri = new MongoClientURI("FILLME");`
    
    MongoClient mongoClient = new MongoClient(uri);            
    
  • Vengono creati un nuovo database e una nuova raccolta.A new database and collection are created.

    MongoDatabase database = mongoClient.getDatabase("db");
    
    MongoCollection<Document> collection = database.getCollection("coll");
    
  • Vengono inseriti alcuni documenti usando MongoCollection.insertOneSome documents are inserted using MongoCollection.insertOne

    Document document = new Document("fruit", "apple")
    collection.insertOne(document);
    
  • Vengono eseguite alcune query usando MongoCollection.findSome queries are performed using MongoCollection.find

    Document queryResult = collection.find(Filters.eq("fruit", "apple")).first();
    System.out.println(queryResult.toJson());       
    

Aggiornare la stringa di connessioneUpdate your connection string

Tornare ora al portale di Azure per recuperare le informazioni sulla stringa di connessione e copiarle nell'app.Now go back to the Azure portal to get your connection string information and copy it into the app.

  1. Dall'account, selezionare Avvio rapido, selezionare Java e quindi copiare la stringa di connessione negli AppuntiFrom the Account, select Quick Start, select Java, then copy the connection string to your clipboard

  2. Aprire il file Program.java, sostituire l'argomento del costruttore MongoClientURI con la stringa di connessione.Open the Program.java file, replace the argument to the MongoClientURI constructor with the connection string. L'app è stata aggiornata con tutte le informazioni necessarie per comunicare con Azure Cosmos DB.You've now updated your app with all the info it needs to communicate with Azure Cosmos DB.

Eseguire l'app consoleRun the console app

  1. Eseguire mvn package in un terminale per installare i moduli npm necessariRun mvn package in a terminal to install required npm modules

  2. Eseguire mvn exec:java -D exec.mainClass=GetStarted.Program in un terminale per avviare l'applicazione Java.Run mvn exec:java -D exec.mainClass=GetStarted.Program in a terminal to start your Java application.

È ora possibile usare Robomongo / Studio 3T per modificare e usare i nuovi dati, nonché eseguire query su di essi.You can now use Robomongo / Studio 3T to query, modify, and work with this new data.

Esaminare i contratti di servizio nel portale di AzureReview SLAs in the Azure portal

La velocità effettiva, lo spazio di archiviazione, la disponibilità, la latenza e la coerenza delle risorse nell'account vengono monitorati nel portale di Azure.The throughput, storage, availability, latency, and consistency of the resources in your account are monitored in the Azure portal. Di seguito vengono illustrate brevemente queste metriche.Let's take a quick look at these metrics.

  1. Fare clic su Metriche nel menu di spostamento.Click Metrics in the navigation menu.

    Metriche nel portale di Azure

  2. Fare clic su ogni scheda per conoscere le metriche offerte da Azure Cosmos DB.Click through each of the tabs so you're aware of the metrics Azure Cosmos DB provides.

    Ogni grafico associato ai contratti di servizio per Azure Cosmos DB contiene una linea che indica le eventuali violazioni dei contratti di servizio.Each chart that's associated with the Azure Cosmos DB Service Level Agreements (SLAs) provides a line that shows if any of the SLAs have been violated. Con questo gruppo di metriche, Azure Cosmos DB garantisce trasparenza nel monitoraggio dei contratti di servizio.Azure Cosmos DB makes monitoring your SLAs transparent with this suite of metrics.

    Gruppo di metriche di Azure Cosmos DB

Pulire le risorseClean up resources

Se non si intende continuare a usare l'app, eliminare tutte le risorse create tramite questa guida di avvio rapido nel portale di Azure eseguendo questi passaggi:If you're not going to continue to use this app, delete all resources created by this quickstart in the Azure portal with the following steps:

  1. Scegliere Gruppi di risorse dal menu a sinistra del portale di Azure e quindi fare clic sul nome della risorsa creata.From the left-hand menu in the Azure portal, click Resource groups and then click the name of the resource you created.
  2. Nella pagina del gruppo di risorse fare clic su Elimina, digitare il nome della risorsa da eliminare nella casella di testo e quindi fare clic su Elimina.On your resource group page, click Delete, type the name of the resource to delete in the text box, and then click Delete.

Passaggi successiviNext steps

In questa guida di avvio rapido si è appreso come creare un account Azure Cosmos DB, come creare una raccolta con Esplora dati e come eseguire un'app console.In this quickstart, you've learned how to create an Azure Cosmos DB account, create a collection using the Data Explorer, and run a console app. È ora possibile importare dati aggiuntivi nell'account Cosmos DB.You can now import additional data to your Cosmos DB account.