Udostępnij za pośrednictwem


Samouczek: tworzenie notesu Jupyter w celu analizowania danych na koncie usługi Azure Cosmos DB for NoSQL przy użyciu notesów Jupyter programu Visual Studio Code

DOTYCZY: NoSQL

W tym samouczku przedstawiono sposób korzystania z notesów Jupyter programu Visual Studio Code w celu interakcji z kontem usługi Azure Cosmos DB for NoSQL. Zobaczysz, jak nawiązać połączenie z kontem, zaimportować dane i uruchomić zapytania.

Wymagania wstępne

Tworzenie nowego notesu

W tej sekcji utworzysz bazę danych, kontener usługi Azure Cosmos i zaimportujesz dane detaliczne do kontenera.

  1. Otwórz Visual Studio Code.
  2. Uruchom polecenie Utwórz: nowy notes Jupyter Notebook z palety poleceń (Ctrl+Shift+P) lub utwórz nowy plik ipynb w obszarze roboczym.

Napiwek

Po utworzeniu nowego notesu możesz zapisać go i nadać mu nazwę podobną do AnalyzeRetailData.ipynb.

Tworzenie bazy danych i kontenera przy użyciu zestawu SDK

  1. Rozpocznij w domyślnej komórce kodu.

  2. Zainstaluj pakiet Azure.cosmos. Uruchom tę komórkę przed kontynuowaniem.

    %pip install azure.cosmos
    
  3. Zaimportuj wszystkie wymagane pakiety na potrzeby tego samouczka.

    import azure.cosmos
    from azure.cosmos.partition_key import PartitionKey
    from azure.cosmos import CosmosClient
    
  4. Utwórz nowe wystąpienie obiektu CosmosClient.

    endpoint = "<FILL ME>"
    key = "<FILL ME>"
    cosmos_client = CosmosClient(url=endpoint, credential=key)
    
  5. Utwórz bazę danych o nazwie RetailIngest przy użyciu wbudowanego zestawu SDK.

    database = cosmos_client.create_database_if_not_exists('RetailIngest')
    
  6. Utwórz kontener o nazwie WebsiteMetrics z kluczem /CartIDpartycji .

    container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
    
  7. Wybierz pozycję Uruchom , aby utworzyć bazę danych i zasób kontenera.

    Zrzut ekranu przedstawiający polecenie Wykonaj komórkę w notesie Jupyter programu Visual Studio Code.

Importowanie danych do kontenera

  1. Dodawanie nowej komórki kodu

  2. W komórce kodu dodaj następujący kod, aby przekazać dane z tego adresu 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. Uruchom komórkę. Uruchomienie tego polecenia potrwa od 45 sekund do 1 minuty.

Analizowanie danych

  1. Utwórz kolejną nową komórkę kodu.

  2. W komórce kodu użyj zapytania SQL, aby wypełnić ramkę danych Biblioteki Pandas. Uruchom tę komórkę.

    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. Utwórz kolejną nową komórkę kodu.

  4. W komórce kodu wyprowadź 10 pierwszych elementów z ramki danych. Uruchom tę komórkę.

    df_cosmos.head(10)
    
  5. Zwróć uwagę na dane wyjściowe uruchomienia polecenia .

    Akcja ItemRevenue Kraj Towar
    0 Zakupione 19.99 Macedonia Północna Koszula z guzikiem
    1 Wyświetlono 12,00 Papua Nowa Gwinea Naszyjnik
    2 Wyświetlono 25.00 Słowacja (Republika Słowacka) Sweter kardiganowy
    3 Zakupione 14.00 Senegal Przerzucanie butów Flop
    4 Wyświetlono 50.00 Panama Szorty denimowe
    5 Wyświetlono 14.00 Senegal Przerzucanie butów Flop
    6 Dodane 14.00 Senegal Przerzucanie butów Flop
    7 Dodane 50.00 Panama Szorty denimowe
    8 Zakupione 33,00 Autonomia Palestyńska Czerwony górny
    9 Wyświetlono 30.00 Malta Zielony sweter
  6. Utwórz kolejną nową komórkę kodu.

  7. W komórce kodu zaimportuj pakiet pandas , aby dostosować dane wyjściowe ramki danych. Uruchom tę komórkę.

    import pandas as pd    
    df_cosmos.groupby("Item").size().reset_index()
    
  8. Zwróć uwagę na dane wyjściowe uruchomienia polecenia .

    Towar Test
    0 Przerzucanie butów Flop 66
    1 Naszyjnik 55
    2 Buty sportowe 111
    ... ... ...
    45 Kurtka wiatrowa 56

Następne kroki