Esercitazione: Creare un notebook Jupyter per analizzare i dati nell'account Azure Cosmos DB for NoSQL usando i notebook jupyter di Visual Studio Code
SI APPLICA A: NoSQL
Questa esercitazione illustra come usare i notebook Jupyter di Visual Studio Code per interagire con l'account Azure Cosmos DB for NoSQL. Si vedrà come connettersi all'account, importare i dati ed eseguire query.
Prerequisiti
- Un account Azure Cosmos DB for NoSQL già presente.
- Se si ha già una sottoscrizione di Azure, creare un nuovo account.
- Se non si ha una sottoscrizione di Azure, è possibile provare Azure Cosmos DB gratuitamente senza necessità di carta di credito.
- Installare visual Studio Code e configurare l'ambiente per usare i notebook.
Creare un nuovo notebook
In questa sezione si creeranno il database di Azure Cosmos e il contenitore e si importeranno i dati retail nel contenitore.
- Aprire Visual Studio Code.
- Eseguire il comando Crea: Nuovo Jupyter Notebook dal riquadro comandi (Ctrl+Maiusc+P) o creare un nuovo file .ipynb nell'area di lavoro.
Suggerimento
Ora che è stato creato un nuovo notebook, è possibile rinominarlo, ad esempio come AnalyzeRetailData.ipynb.
Creare un database e un contenitore usando l'SDK
Iniziare nella cella di codice predefinita.
Installare il pacchetto Azure.cosmos. Eseguire questa cella prima di continuare.
%pip install azure.cosmos
Importare tutti i pacchetti necessari per questa esercitazione.
import azure.cosmos from azure.cosmos.partition_key import PartitionKey from azure.cosmos import CosmosClient
Creare una nuova istanza di CosmosClient.
endpoint = "<FILL ME>" key = "<FILL ME>" cosmos_client = CosmosClient(url=endpoint, credential=key)
Creare un database denominato RetailIngest usando l'SDK integrato.
database = cosmos_client.create_database_if_not_exists('RetailIngest')
Creare un contenitore denominato WebsiteMetrics con una chiave di partizione di
/CartID
.container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
Selezionare Esegui per creare il database e la risorsa contenitore.
Importare i dati in un contenitore
Aggiungere una nuova cella di codice
Nella cella di codice, aggiungere il codice seguente per caricare i dati da questo 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)
Eseguire la cella. L'esecuzione richiederà da 45 secondi a 1 minuto.
Analizzare i dati
Creare un'altra cella di codice nuova.
Nella cella di codice, usare una query SQL per popolare un Pandas DataFrame. Eseguire questa cella.
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)
Creare un'altra cella di codice nuova.
Nella cella di codice, fornire i primi 10 elementi dal dataframe. Eseguire questa cella.
df_cosmos.head(10)
Osservare l'output dell'esecuzione del comando.
Azione ItemRevenue Country Articolo 0 Acquistato 19,99 Macedonia Camicia con bottoni 1 Visualizzato 12,00 Papua Nuova Guinea Collana 2 Visualizzato 25.00 Slovacchia (Repubblica slovacca) Cardigan 3 Acquistato 14,00 Senegal Infradito 4 Visualizzato 50.00 Panama Shorts in denim 5 Visualizzato 14,00 Senegal Infradito 6 Aggiunto 14,00 Senegal Infradito 7 Aggiunto 50.00 Panama Shorts in denim 8 Acquistato 33.00 Palestina Maglia rossa 9 Visualizzato 30.00 Malta Maglione verde Creare un'altra cella di codice nuova.
Nella cella di codice, importare il pacchetto pandas per personalizzare l'output del dataframe. Eseguire questa cella.
import pandas as pd df_cosmos.groupby("Item").size().reset_index()
Osservare l'output dell'esecuzione del comando.
Articolo Test 0 Infradito 66 1 Collana 55 2 Scarpa da ginnastica 111 ... ... ... 45 Giacca a vento 56