19 KiB
Работа с данными: Нереляционные данные
![]() |
---|
Работа с NoSQL данными - Скетчноут от @nitya |
Тест перед лекцией
Данные не ограничиваются только реляционными базами данных. Этот урок посвящен нереляционным данным и охватывает основы работы с электронными таблицами и NoSQL.
Электронные таблицы
Электронные таблицы — это популярный способ хранения и анализа данных, так как они требуют минимальной настройки для начала работы. В этом уроке вы узнаете основные компоненты электронной таблицы, а также формулы и функции. Примеры будут иллюстрироваться с использованием Microsoft Excel, но большинство элементов и тем будут иметь схожие названия и шаги в других программах для работы с таблицами.
Электронная таблица — это файл, который доступен в файловой системе компьютера, устройства или облачного хранилища. Программное обеспечение может быть браузерным или приложением, которое нужно установить на компьютер или загрузить как приложение. В Excel такие файлы называются рабочими книгами, и этот термин будет использоваться на протяжении всего урока.
Рабочая книга содержит один или несколько листов, которые обозначены вкладками. На каждом листе есть прямоугольники, называемые ячейками, которые содержат данные. Ячейка — это пересечение строки и столбца, где столбцы обозначены буквами, а строки — числами. Некоторые таблицы содержат заголовки в первых строках, чтобы описать данные в ячейках.
Используя эти базовые элементы рабочей книги Excel, мы рассмотрим пример из Microsoft Templates, связанный с инвентаризацией, чтобы изучить дополнительные части таблицы.
Управление инвентаризацией
Файл таблицы под названием "InventoryExample" — это форматированная таблица с элементами инвентаря, которая содержит три листа с вкладками "Inventory List", "Inventory Pick List" и "Bin Lookup". Строка 4 на листе Inventory List — это заголовок, который описывает значение каждой ячейки в соответствующем столбце.
Иногда значение ячейки зависит от значений других ячеек. Таблица Inventory List отслеживает стоимость каждого элемента инвентаря, но что, если нам нужно узнать общую стоимость всего инвентаря? Формулы выполняют действия с данными ячеек и используются для вычислений, как в этом примере. В таблице используется формула в столбце Inventory Value для расчета стоимости каждого элемента путем умножения количества (QTY) на стоимость (COST). Двойной щелчок или выделение ячейки покажет формулу. Формулы начинаются со знака равенства, за которым следует вычисление или операция.
Мы можем использовать другую формулу, чтобы сложить все значения столбца Inventory Value и получить общую стоимость. Это можно сделать, складывая каждую ячейку, но это трудоемко. Excel предоставляет функции, или предопределенные формулы, для выполнения вычислений. Функции требуют аргументов — значений, необходимых для вычислений. Если функция требует более одного аргумента, их нужно указывать в определенном порядке, иначе результат может быть неверным. В этом примере используется функция SUM, которая суммирует значения столбца Inventory Value и выводит итог в строке 3, столбце B (B3).
NoSQL
NoSQL — это общее название для различных способов хранения нереляционных данных и может интерпретироваться как "не-SQL", "нереляционные" или "не только SQL". Эти системы баз данных делятся на 4 типа.
Источник: Блог Michał Białecki
Базы данных типа ключ-значение связывают уникальные ключи, которые являются идентификаторами, с определенными значениями. Эти пары хранятся с использованием хэш-таблиц с соответствующей хэш-функцией.
Источник: Microsoft
Графовые базы данных описывают отношения между данными и представлены в виде коллекции узлов и ребер. Узел представляет сущность, например студента или банковскую выписку. Ребра описывают связь между двумя сущностями. Каждый узел и ребро имеют свойства, которые предоставляют дополнительную информацию.
Колоночные хранилища данных организуют данные в строки и столбцы, как в реляционных структурах, но каждый столбец разделен на группы, называемые семействами столбцов. Все данные в одном столбце связаны и могут быть извлечены или изменены как единое целое.
Документные хранилища данных с Azure Cosmos DB
Документные хранилища данных основаны на концепции хранилищ типа ключ-значение и состоят из полей и объектов. В этом разделе мы изучим документные базы данных с помощью эмулятора Cosmos DB.
База данных Cosmos DB соответствует определению "Не только SQL", так как документная база данных Cosmos DB использует SQL для запросов. Предыдущий урок о SQL охватывает основы языка, и мы сможем применить некоторые из этих запросов к документной базе данных. Мы будем использовать эмулятор Cosmos DB, который позволяет создавать и исследовать документные базы данных локально. Подробнее об эмуляторе можно прочитать здесь.
Документ — это коллекция полей и значений объектов, где поля описывают, что представляет значение объекта. Пример документа приведен ниже.
{
"firstname": "Eva",
"age": 44,
"id": "8c74a315-aebf-4a16-bb38-2430a9896ce5",
"_rid": "bHwDAPQz8s0BAAAAAAAAAA==",
"_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/",
"_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"",
"_attachments": "attachments/",
"_ts": 1630544034
}
Интересующие нас поля в этом документе: firstname
, id
и age
. Остальные поля с подчеркиваниями были сгенерированы Cosmos DB.
Исследование данных с помощью эмулятора Cosmos DB
Вы можете скачать и установить эмулятор для Windows здесь. Для macOS и Linux ознакомьтесь с этой документацией.
Эмулятор открывает окно браузера, где в представлении Explorer можно исследовать документы.
Если вы следуете за уроком, нажмите "Start with Sample", чтобы создать пример базы данных SampleDB. Если развернуть SampleDB, вы найдете контейнер Persons
, который содержит коллекцию элементов, то есть документов. Вы можете исследовать четыре отдельных документа в разделе Items
.
Запрос данных с помощью эмулятора Cosmos DB
Вы также можете выполнять запросы к данным, нажав на кнопку "New SQL Query" (вторая кнопка слева).
SELECT * FROM c
возвращает все документы в контейнере. Добавим условие where, чтобы найти всех младше 40 лет.
SELECT * FROM c where c.age < 40
Запрос возвращает два документа, обратите внимание, что значение поля age в каждом из них меньше 40.
JSON и документы
Если вы знакомы с JavaScript Object Notation (JSON), вы заметите, что документы похожи на JSON. В этой директории есть файл PersonsData.json
с дополнительными данными, которые можно загрузить в контейнер Persons через кнопку Upload Item
.
Во многих случаях API, возвращающие данные в формате JSON, могут быть напрямую перенесены и сохранены в документных базах данных. Пример документа ниже представляет твиты из аккаунта Microsoft в Twitter, полученные через API Twitter и добавленные в Cosmos DB.
{
"created_at": "2021-08-31T19:03:01.000Z",
"id": "1432780985872142341",
"text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK",
"_rid": "dhAmAIUsA4oHAAAAAAAAAA==",
"_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/",
"_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"",
"_attachments": "attachments/",
"_ts": 1630537000
Интересующие нас поля в этом документе: created_at
, id
и text
.
🚀 Задание
В директории есть файл TwitterData.json
, который можно загрузить в базу данных SampleDB. Рекомендуется добавить его в отдельный контейнер. Для этого:
- Нажмите кнопку "New Container" в правом верхнем углу.
- Выберите существующую базу данных (SampleDB), задайте идентификатор контейнера.
- Установите ключ раздела
/id
. - Нажмите OK (остальную информацию можно игнорировать, так как это небольшой набор данных, работающий локально).
- Откройте новый контейнер и загрузите файл Twitter Data через кнопку
Upload Item
.
Попробуйте выполнить несколько запросов SELECT, чтобы найти документы, содержащие слово Microsoft в поле text. Подсказка: попробуйте использовать ключевое слово LIKE.
Тест после лекции
Обзор и самостоятельное изучение
-
В этой таблице есть дополнительные форматы и функции, которые не рассматриваются в уроке. Microsoft предлагает большую библиотеку документации и видео по Excel для тех, кто хочет узнать больше.
-
Эта архитектурная документация описывает характеристики различных типов нереляционных данных: Нереляционные данные и NoSQL.
-
Cosmos DB — это облачная нереляционная база данных, которая может хранить различные типы NoSQL, упомянутые в этом уроке. Узнайте больше об этих типах в учебном модуле Microsoft Learn по Cosmos DB.
Задание
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.