Compartir vía


Tutorial: Creación de un cuaderno de Jupyter Notebook para analizar datos en la cuenta de Azure Cosmos DB for NoSQL usando cuadernos de Jupyter Notebook de Visual Studio Code

SE APLICA A: NoSQL

En este tutorial se explica cómo usar los cuadernos de Jupyter Notebook de Visual Studio Code para interactuar con su cuenta de Azure Cosmos DB for NoSQL. Verá cómo conectarse a su cuenta, importar datos y ejecutar consultas.

Requisitos previos

Creación un nuevo cuaderno

En esta sección creará la base de datos y el contenedor de Azure Cosmos e importará los datos comerciales en el contenedor.

  1. Abra Visual Studio Code.
  2. Ejecute el comando Create: New Jupyter Notebook desde la paleta de comandos (Ctrl+Mayús+P) o cree un archivo .ipynb en el área de trabajo.

Sugerencia

Ahora que se ha creado el cuaderno, puede guardarlo y asignarle un nombre similar a AnalyzeRetailData.ipynb.

Creación de una base de datos y un contenedor mediante el SDK

  1. Comience en la celda de código predeterminada.

  2. Instale el paquete Azure.cosmos. Ejecute esta celda antes de continuar.

    %pip install azure.cosmos
    
  3. Importe los paquetes que necesite para este tutorial.

    import azure.cosmos
    from azure.cosmos.partition_key import PartitionKey
    from azure.cosmos import CosmosClient
    
  4. Cree una instancia de CosmosClient.

    endpoint = "<FILL ME>"
    key = "<FILL ME>"
    cosmos_client = CosmosClient(url=endpoint, credential=key)
    
  5. Cree una base de datos denominada RetailIngest mediante el SDK integrado.

    database = cosmos_client.create_database_if_not_exists('RetailIngest')
    
  6. Cree un contenedor denominado WebsiteMetrics con una clave de partición de /CartID.

    container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
    
  7. Seleccione Ejecutar para crear la base de datos y el recurso de contenedor.

    Captura de pantalla de la celda Ejecutar en el bloc de notas Jupyter de Visual Studio Code.

Importación de datos a un contenedor

  1. Adición de una nueva celda de código

  2. En la celda de código, agregue el siguiente código para cargar datos desde esta dirección 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. Ejecute la celda. Tardará entre 45 segundos y 1 minuto en ejecutarse.

Analice los datos

  1. Cree otra nueva celda de código.

  2. En la celda de código, use una consulta SQL para rellenar un DataFrame de Pandas. Ejecute esta celda.

    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. Cree otra nueva celda de código.

  4. En la celda de código, genere los 10 elementos principales de la trama de datos. Ejecute esta celda.

    df_cosmos.head(10)
    
  5. Observe la salida de ejecución del comando.

    Acción ItemRevenue Country (País) Elemento
    0 Compradas 19,99 Macedonia del Norte Camisa con botones
    1 Visto 12.00 Papúa Nueva Guinea Collar
    2 Visto 25.00 Eslovaquia (República Eslovaca) Chaqueta de punto
    3 Compradas 14.00 Senegal Chanclas
    4 Visto 50,00 Panamá Pantalones cortos vaqueros
    5 Visto 14.00 Senegal Chanclas
    6 Se agregó 14.00 Senegal Chanclas
    7 Se agregó 50,00 Panamá Pantalones cortos vaqueros
    8 Compradas 33.00 Territorio de Palestina Top rojo
    9 Visto 30.00 Malta Suéter verde
  6. Cree otra nueva celda de código.

  7. En la celda de código, importe el paquete pandas para personalizar la salida de la trama de datos. Ejecute esta celda.

    import pandas as pd    
    df_cosmos.groupby("Item").size().reset_index()
    
  8. Observe la salida de ejecución del comando.

    Elemento Prueba
    0 Chanclas 66
    1 Collar 55
    2 Zapatillas de deporte 111
    ... ... ...
    45 Windbreaker Jacket 56

Pasos siguientes