Краткое введение в изучение данных Azure Cosmos DB с помощью встроенных записных книжек Jupyter

В мае 2019 года команда Cosmos DB объявила о предварительном запуске записных книжек Jupyter внутри учетных записей Cosmos DB. Эта функция стала общедоступной в сентябре 2019 года и доступна для всех API Cosmos DB. Благодаря этой функции мы можем использовать записные книжки Jupyter для выполнения интерактивных запросов, изучения наших данных и визуализации наших данных. Мы даже можем создавать модели машинного обучения на основе наших данных в Cosmos DB!

Что я получу от этого?

Наличие записных книжек Jupyter в наших учетных записях Cosmos DB дает множество замечательных преимуществ. К ним относятся:

  • Классные визуализации данных, которые мы можем создать на основе данных Cosmos DB.
  • Упрощение совместного использования кода в наших записных книжках. Вы когда-нибудь пробовали поделиться кодом в коде Jupyter Notebook в GitHub? Это работает, но, имея записные книжки в Cosmos DB, он становится более интерактивным, и мы можем отображать результаты на портале Azure.
  • Наш код более интерактивен, и мы можем встраивать пользовательские элементы управления в наши записные книжки.
  • Мы можем комбинировать различные типы документации, текст, изображения, анимацию и т. Д. В одном документе.
  • Мы можем выполнять волшебные команды Cosmos в наших записных книжках! Подробнее об этом позже.

Звучит круто, как мне получить эту функцию?

Создать новую учетную запись Azure Cosmos DB с поддержкой Notebook действительно просто:

На портале Azure нажмите Создать ресурс и выберите Azure Cosmos DB. Убедитесь, что в разделе Создать учетную запись Azure Cosmos DB вы выбрали Ноутбуки. Нажмите Обзор + Создать, а затем Создать.

Создав учетную запись, вы найдете рабочую область записных книжек на панели Проводник данных.

Но у меня уже есть учетная запись Cosmos DB! Нужно ли мне уничтожить существующий, чтобы использовать записные книжки?

Нисколько! Вы можете включить функцию записных книжек, выполнив следующие действия:

Перейдите на панель Обозреватель данных в своей учетной записи Cosmos DB и выберите Включить записные книжки. Нажмите Завершить настройку, и ваша учетная запись будет включена для использования записных книжек. !

ОК, все готово! Покажи мне демо!

Теперь, когда у нас есть записные книжки в нашей учетной записи Cosmos DB, приступим к работе с ними! Я создал контейнер в своей учетной записи Cosmos DB и заполнил его данными, следуя этой демонстрации. (Эта демонстрация представляет собой серию демонстраций, предоставленных командой разработчиков Cosmos DB, и если вы хотите глубоко погрузиться во все, что связано с Cosmos DB, я очень рекомендую ее!).

Мы можем устанавливать новые пакеты в наши записные книжки Jupyter в Cosmos, как и на любой другой ноутбук. Давайте установим Pandas, введя следующую команду:

import pandas as pd

Нажмите «Выполнить», и вскоре мы сможем использовать панд в нашем блокноте. Теперь давайте воспользуемся одной из этих космических команд для создания фрейма данных Pandas, с которым мы сможем работать. У меня есть коллекция под названием CustomCollection, которая разбита на / type. Я хочу создать DataFrame, который будет обрабатывать все мои товары с типом PurchaseFoodOrBeverage. Мы можем сделать это, выполнив следующую команду:

%%sql --database EntertainmentDatabase --container CustomCollection --output df_foodOrBeverage
SELECT c.id, c.unitPrice, c.totalPrice, c.quantity, c.type FROM c WHERE c.type = "PurchaseFoodOrBeverage"

В этом запросе я выбрал только наши свойства POCO. SELECT * также будет включать свойства, созданные системой Cosmos DB, поэтому я их пока исключил. Теперь мы можем просмотреть наш DataFrame, выполнив следующую команду:

df_foodOrBeverage.head(10)

Теперь мы должны увидеть следующий результат:

Давайте закончим эту быструю демонстрацию визуализацией. Введите следующую команду:

pd.options.display.html.table_schema = True
pd.options.display.max_rows = None
df_foodOrBeverage.groupby("quantity").size()

Это создает интерактивный проводник данных. Это позволяет нам фильтровать и визуализировать наши DataFrames. Мы просто устанавливаем для table_schema значение True, а max_rows - либо значение, которое мы хотим, либо значение None, чтобы показать все результаты.

С записными книжками мы можем делать целый ряд вещей, например, использовать встроенный Python SDK для Cosmos DB и загружать файлы JSON в конкретный контейнер Cosmos DB. Ознакомьтесь с документацией, чтобы увидеть весь спектр возможностей Jupyter Notebooks для Cosmos DB!

Заключение

Надеюсь, теперь у вас есть общее представление о том, что можно делать в Cosmos DB Jupyter Notebooks. Если у вас есть какие-либо вопросы, задавайте их в комментариях!