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
- Una cuenta existente de Azure Cosmos DB for NoSQL.
- Si tiene una suscripción de Azure, cree una nueva cuenta.
- ¿No tiene una suscripción de Azure? Puede probar Azure Cosmos DB de forma gratuita, sin necesidad de usar su tarjeta de crédito.
- Instale Visual Studio Code y configure el entorno para usar cuadernos.
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.
- Abra Visual Studio Code.
- 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
Comience en la celda de código predeterminada.
Instale el paquete Azure.cosmos. Ejecute esta celda antes de continuar.
%pip install azure.cosmos
Importe los paquetes que necesite para este tutorial.
import azure.cosmos from azure.cosmos.partition_key import PartitionKey from azure.cosmos import CosmosClient
Cree una instancia de CosmosClient.
endpoint = "<FILL ME>" key = "<FILL ME>" cosmos_client = CosmosClient(url=endpoint, credential=key)
Cree una base de datos denominada RetailIngest mediante el SDK integrado.
database = cosmos_client.create_database_if_not_exists('RetailIngest')
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'))
Seleccione Ejecutar para crear la base de datos y el recurso de contenedor.
Importación de datos a un contenedor
Adición de una nueva celda de código
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)
Ejecute la celda. Tardará entre 45 segundos y 1 minuto en ejecutarse.
Analice los datos
Cree otra nueva celda de código.
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)
Cree otra nueva celda de código.
En la celda de código, genere los 10 elementos principales de la trama de datos. Ejecute esta celda.
df_cosmos.head(10)
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 Cree otra nueva celda de código.
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()
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