Partager via


Tutoriel : créer un notebook Jupyter pour analyser des données dans votre compte Azure Cosmos DB for NoSQL à l’aide de notebooks Jupyter Visual Studio Code

Ce tutoriel explique comment interagir avec votre compte Azure Cosmos DB for NoSQL à l’aide des notebooks Jupyter Visual Studio Code. Vous allez découvrir comment vous connecter à votre compte, importer des données et exécuter des requêtes.

Prerequisites

Créer un nouveau cahier

Dans cette section, vous allez créer la base de données Azure Cosmos et le conteneur, puis importer les données de vente dans le conteneur.

  1. Ouvrez Visual Studio Code.
  2. Exécutez la commande Create: New Jupyter Notebook à partir de la palette de commandes (Ctrl + Maj + P) ou créez un fichier .ipynb dans votre espace de travail.

Conseil / Astuce

Après avoir créé le notebook, vous pouvez l’enregistrer et le nommer par exemple AnalyzeRetailData.ipynb.

Créer une base de données et un conteneur avec le SDK

  1. Démarrez dans la cellule de code par défaut.

  2. Installez le package Azure.cosmos. Exécutez cette cellule avant de continuer.

    %pip install azure.cosmos
    
  3. Importez les packages dont vous avez besoin pour ce tutoriel.

    import azure.cosmos
    from azure.cosmos.partition_key import PartitionKey
    from azure.cosmos import CosmosClient
    
  4. Créez une instance de CosmosClient.

    endpoint = "<FILL ME>"
    key = "<FILL ME>"
    cosmos_client = CosmosClient(url=endpoint, credential=key)
    
  5. Créez une base de données nommée RetailIngest à l’aide du Kit de développement logiciel (SDK) intégré.

    database = cosmos_client.create_database_if_not_exists('RetailIngest')
    
  6. Créez un conteneur nommé WebsiteMetrics avec une clé de partition de /CartID.

    container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
    
  7. Sélectionnez Exécuter pour créer la base de données et la ressource de conteneur.

    Capture d’écran du bouton Exécuter la cellule dans un notebook Jupyter Visual Studio Code.

Importer des données dans un conteneur

  1. Ajouter une nouvelle cellule de code

  2. Dans la cellule de code, ajoutez le code suivant pour charger des données à partir de cette URL : <https://cosmosnotebooksdata.blob.core.windows.net/notebookdata/websiteData.json>.

        import urllib.request
        import json
    
        with urllib.request.urlopen("https://cosmosnotebooksdata.blob.core.windows.net/notebookdata/websiteData.json") as url:
            docs = json.loads(url.read().decode())
    
        for doc in docs:
            container.upsert_item(doc)
    
  3. Exécutez la cellule. L’exécution prend 45 secondes à 1 minute.

Analyser vos données

  1. Créez une autre cellule de code.

  2. Dans la cellule de code, utilisez une requête SQL pour remplir un DataFrame Pandas. Exécutez cette cellule.

    import pandas as pd
    from pandas import DataFrame
    
    QUERY = "SELECT c.Action, c.Price as ItemRevenue, c.Country, c.Item FROM c"
    results = container.query_items(
        query=QUERY, enable_cross_partition_query=True
    )
    
    df_cosmos = pd.DataFrame(results)
    
  3. Créez une autre cellule de code.

  4. Dans la cellule de code, sortiez les 10 premiers éléments du dataframe. Exécutez cette cellule.

    df_cosmos.head(10)
    
  5. Observez la sortie de l’exécution de la commande.

    Action ItemRevenue Pays Élément
    0 Acheté 19.99 Macédoine du Nord Chemise à boutons
    1 Consulté 12,00 Papouasie-Nouvelle-Guinée Collier
    2 Consulté 25,00 Slovaquie (République slovaque) Cardigan
    3 Acheté 14,00 Sénégal Tongs
    4 Consulté 50.00 Panama Shorts en denim
    5 Consulté 14,00 Sénégal Tongs
    6 Ajouté(e) 14,00 Sénégal Tongs
    7 Ajouté(e) 50.00 Panama Shorts en denim
    8 Acheté 33,00 Territoires palestiniens Haut rouge
    9 Consulté 30,00 Malte Pull vert
  6. Créez une autre cellule de code.

  7. Dans la cellule de code, importez le package pandas pour personnaliser la sortie du dataframe. Exécutez cette cellule.

    import pandas as pd    
    df_cosmos.groupby("Item").size().reset_index()
    
  8. Observez la sortie de l’exécution de la commande.

    Élément Test
    0 Tongs 66
    1 Collier 55
    2 Athletic Shoes 111
    ... ...
    45 Coupe-vent 56

Étapes suivantes