Руководство. Создание записной книжки Jupyter для анализа данных в учетной записи Azure Cosmos DB для NoSQL с помощью записных книжек Jupyter Для Visual Studio Code

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

В этом руководстве описывается, как использовать записные книжки Jupyter Для Visual Studio Code для взаимодействия с учетной записью Azure Cosmos DB для NoSQL. Вы увидите, как подключиться к учетной записи, импортировать данные и выполнять запросы.

Необходимые компоненты

Создание записной книжки

В этом разделе описано, как создать базу данных Azure Cosmos, контейнер и импортировать данные розничной торговли в контейнер.

  1. Откройте Visual Studio Code.
  2. Выполните команду Create: New Jupyter Notebook из палитры команд (CTRL+SHIFT+P) или создайте новый IPYNB-файл в рабочей области.

Совет

Теперь, когда была создана новая записная книжка, ее можно сохранить и присвоить ему имя, например AnalyzeRetailData.ipynb.

Создание базы данных и контейнера с помощью пакета SDK

  1. Начните с ячейки кода по умолчанию.

  2. Установите пакет Azure.cosmos. Запустите эту ячейку перед продолжением.

    %pip install azure.cosmos
    
  3. Импортируйте все пакеты, необходимые для этого руководства.

    import azure.cosmos
    from azure.cosmos.partition_key import PartitionKey
    from azure.cosmos import CosmosClient
    
  4. Создайте новый экземпляр CosmosClient.

    endpoint = "<FILL ME>"
    key = "<FILL ME>"
    cosmos_client = CosmosClient(url=endpoint, credential=key)
    
  5. Создайте базу данных с именем RetailIngest с помощью встроенного пакета SDK.

    database = cosmos_client.create_database_if_not_exists('RetailIngest')
    
  6. Создайте контейнер с именем WebsiteMetrics с ключом секции /CartID.

    container = database.create_container_if_not_exists(id='WebsiteMetrics', partition_key=PartitionKey(path='/CartID'))
    
  7. Выберите "Выполнить" , чтобы создать базу данных и ресурс контейнера.

    Screenshot of Execute cell in Visual Studio Code Jupyter notebook.

Импорт данных в контейнер

  1. Добавление новой ячейки кода

  2. В ячейке кода добавьте следующий код для отправки данных из этого 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. Запустите ячейку. Это займет 45 секунд до 1 минуты.

Анализ данных

  1. Создайте другую ячейку кода.

  2. В ячейке кода используйте SQL-запрос для заполнения кадра данных Pandas. Выполните код в этой ячейке.

    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. Создайте другую ячейку кода.

  4. В ячейке кода выводится 10 элементов из кадра данных. Выполните код в этой ячейке.

    df_cosmos.head(10)
    
  5. Просмотрите выходные данные выполнения команды.

    Действие ItemRevenue Страна/регион Позиция
    0 Куплено £9,99 Македония Кнопка вверх рубашка
    1 Просмотрено 12,00 Папуа — Новая Гвинея Ожерелье
    2 Просмотрено 25,00 Словакия (Словацкая Республика) Кардиган Свитер
    3 Куплено 14.00 Сенегал Шлепанцы
    4 Просмотрено 50.00 Панама Деним Шорты
    5 Просмотрено 14.00 Сенегал Шлепанцы
    6 Добавлено 14.00 Сенегал Шлепанцы
    7 Добавлено 50.00 Панама Деним Шорты
    8 Куплено 33,00 Палестинские территории Красный топ
    9 Просмотрено 30.00 Мальта Зеленый свитер
  6. Создайте другую ячейку кода.

  7. В ячейке кода импортируйте пакет Pandas , чтобы настроить выходные данные кадра данных. Выполните код в этой ячейке.

    import pandas as pd    
    df_cosmos.groupby("Item").size().reset_index()
    
  8. Просмотрите выходные данные выполнения команды.

    Позиция Тест
    0 Шлепанцы 66
    1 Ожерелье 55
    2 Кроссовки 111
    ... ... ...
    45 Куртка ветрозащиты 56

Следующие шаги