Перейти к содержимому

Что такое «зерно»? Самый важный вопрос в моделировании данных

BricksNotes - Data + AI Simplified.

0:00 / 0:00

Что такое «зерно»? Самый важный вопрос в моделировании данных

589 просмотров · 2 мес. назад
BricksNotes - Data + AI Simplified.
251 подписчик
589 просмотров · 2 мес. назад
Таблица может иметь правильные столбцы, правильные типы данных и даже правильные соединения — и всё равно быть совершенно неправильной. Почему? Потому что никто чётко не определил, что представляет собой одна строка. Этот единственный пробел может привести к дублированию доходов, завышенным показателям количества клиентов, запутанным соединениям и панелям мониторинга, которым никто не доверяет. Прежде чем проектировать любую таблицу, задайте себе один вопрос: В чём заключается зерно? Зернистость — это точное значение одной строки. В таблице заказов одна строка может представлять один заказ. В таблице позиций заказа одна строка может представлять один продукт в одном заказе. В таблице ежедневных продаж одна строка может представлять один магазин, один продукт и один день. Эта разница может показаться незначительной, но она определяет: • Первичный ключ • Какие столбцы должны быть в таблице • Как таблица должна соединяться с другими таблицами • Какие метрики можно безопасно вычислять Вот в чём ловушка. Представьте себе заказ, содержащий три продукта. На уровне заказа он появляется один раз и стоит 100 долларов. На уровне позиции заказа один и тот же заказ появляется в трёх строках. Теперь объединим таблицу платежей на уровне заказа с таблицей позиций заказа и суммируем суммы платежей. Внезапно заказ на 100 долларов превращается в заказ на 300 долларов. Данные не отсутствуют. SQL-запрос выполняется успешно. Объединение может даже выглядеть корректным. Но детализация была неправильно понята. Вот почему многие проблемы, которые кажутся ошибками SQL, на самом деле являются проблемами детализации. Решение состоит в том, чтобы написать точное описание детализации. Не следует просто писать: «Эта таблица содержит данные о продажах». Вместо этого скажите: «Одна строка представляет собой одну завершенную позицию заказа для одного клиента в одном магазине на момент покупки». Это единственное предложение сразу же выявляет важные вопросы проектирования: • Может ли один и тот же продукт появляться дважды в одном заказе? • Нужен ли нам номер строки заказа? • Включаются ли отмененные товары? • Следует ли хранить цену на момент покупки или текущую цену? • Что происходит при обновлении заказа? В этом видео от BricksNotes, посвященном основам, мы также рассматриваем три распространенные ошибки в определении уровня данных: 1. Смешивание нескольких уровней данных в одной таблице 2. Изменение уровня данных во время преобразования без документирования 3. Предположение об уникальности ключа вместо его проверки Вы также узнаете простую пятишаговую структуру для определения уровня данных перед созданием таблицы, а также пример доставки еды, содержащий четыре таблицы, принадлежащие одному и тому же бизнес-процессу, но имеющие четыре разных уровня данных. Главный урок прост: Прежде чем выбирать столбцы, разделы, форматы хранения или таблицы фактов и измерений, определите, что означает одна строка. Самый важный вопрос моделирования данных не в том: «Какие столбцы нам нужны?» А в том: «Что представляет собой одна строка?» ГЛАВЫ 0:00 Таблица может быть правильной и при этом неправильной 0:14 Почему? Никто не определил одну строку 0:24 К чему приводит эта одна ошибка 0:29 Перед составлением любой таблицы спросите: Какова структура зерна? 0:37 Что представляет собой одна строка? 0:47 Зернистость — это значение одной строки 0:53 Таблица заказов 0:59 Таблица позиций заказа 1:05 Таблица ежедневных продаж 1:11 Далее она управляет всем 1:19 Зернистость определяет четыре вещи 1:27 Заказ с тремя товарами 1:32 На уровне заказа 1:39 На уровне позиции заказа 1:48 Теперь объединим их и просуммируем 1:54 100 долларов становятся 300 долларами 2:02 Зернистость была неправильно понята 2:10 Не проблемы SQL — проблемы зернистости 2:17 Точное описание зернистости 2:20 Не говорите это 2:26 Скажите это вместо этого 2:32 Это открывает вопросы проектирования 2:41 Вопросы, которые оно поднимает 2:53 Чем яснее зернистость 2:57 Три распространенные ошибки 3:03 Ошибка 1: Смешивание зернистостей 3:11 Ошибка 2: Скрытое изменение зернистости 3:26 Ошибка 3: Предположение вместо тестирования 3:43 Всегда проверяйте ключ 3:49 Изменения зерна на каждом этапе 4:05 Лестница зерна 4:08 Делайте каждое изменение явным 4:12 Структура, которую вы можете использовать 4:31 Пятишаговая структура 4:36 Пример доставки еды 4:49 Четыре таблицы, четыре зерна 4:54 Один и тот же процесс, разные зерна 5:01 Зерно должно быть задокументировано 5:09 Главный урок 5:20 Неясное зерно против ясного зерна 5:31 Что представляет собой одна строка? 5:42 Продолжайте учиться, продолжайте строить ДЛЯ КОГО ЭТО ВИДЕО Это видео предназначено для инженеров данных, инженеров-аналитиков, аналитиков данных и всех, кто когда-либо отлаживал панель мониторинга, где итоговые значения загадочным образом оказывались слишком высокими. Если вы создаёте многомерные модели, таблицы фактов, хранилища данных, звёздные схемы или модели DBT, то зернистость — это основа, от ко...