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

S’APPLIQUE À : NoSQL

Ce tutoriel explique comment utiliser les notebooks Jupyter Visual Studio Code pour interagir avec votre compte Azure Cosmos DB for NoSQL. Vous verrez comment vous connecter à votre compte, importer des données et exécuter des requêtes.

Prérequis

Créer une nouvelle instance Notebook

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 Créer : nouveau Jupyter Notebook à partir de la palette de commandes (Ctrl+Maj+P) ou créez un fichier .ipynb dans votre espace de travail.

Conseil

Une fois que vous avez créé le notebook, vous pouvez l’enregistrer et le renommer 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 de la commande Exécuter la cellule dans un Jupyter Notebook de Visual Studio Code.

Importer des données dans un conteneur

  1. Ajouter une 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 Country É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 Tongues
    4 Consulté 50.00 Panama Shorts en denim
    5 Consulté 14.00 Sénégal Tongues
    6 Ajouté 14.00 Sénégal Tongues
    7 Ajouté 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.

    Article Test
    0 Tongues 66
    1 Collier 55
    2 Athletic Shoes 111
    ... ... ...
    45 Veste coupe-vent 56

Étapes suivantes