Size: a a a

SqlCom.ru - Стиль жизни SQL

2021 January 24

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Для начала надо определить тип хранилища, прежде чем нормализовать или нет.
источник

Л

Лучший ник in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Для начала надо определить тип хранилища, прежде чем нормализовать или нет.
Это да
источник

S

Sergey in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Для начала надо определить тип хранилища, прежде чем нормализовать или нет.
Согласен, Dwh
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Если OLTP -  то вероятно, что стоит нормализовать.
Если DWH, то выбор между data vault\anchor model\и полной денормализацией.
По последней модели недавно смотрел статистику, она на 30-50% быстрее по чтению\записи, но места занимает в разы больше, зато простая для понимания.
Также стоит учесть как у вас будут храниться исторические данные для каждой модели и как вы будете отображать эти изменения.
источник

S

Sergey in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Если OLTP -  то вероятно, что стоит нормализовать.
Если DWH, то выбор между data vault\anchor model\и полной денормализацией.
По последней модели недавно смотрел статистику, она на 30-50% быстрее по чтению\записи, но места занимает в разы больше, зато простая для понимания.
Также стоит учесть как у вас будут храниться исторические данные для каждой модели и как вы будете отображать эти изменения.
Просто в некоторых случаях я понимаю, что мне гораздо удобнее было бы просто данные дозаписывать в уже имеющуюся шаблонную денормализованную выгрузку и кидать во вьюшку нужные столбцы из неё, группируя по измерениям..
Если же я буду её нормализовывать, то потом на выходе мне придётся её обратно денормализовывать и выдавать пользователям. Что как мне кажется не здорово.
источник

S

Sergey in SqlCom.ru - Стиль жизни SQL
Хотя я понимаю, что избыточность данных и большой расход памяти будут
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Sergey
Просто в некоторых случаях я понимаю, что мне гораздо удобнее было бы просто данные дозаписывать в уже имеющуюся шаблонную денормализованную выгрузку и кидать во вьюшку нужные столбцы из неё, группируя по измерениям..
Если же я буду её нормализовывать, то потом на выходе мне придётся её обратно денормализовывать и выдавать пользователям. Что как мне кажется не здорово.
Поэтому я вам и пишу, что вам нужно выбрать приоритет.
Вы хотите меньше хранить и быстро писать - нормализация.
Хотите быстро читать и не важно на хранение - денормализация.
Опять же вопрос по истории изменений, для каждой модели он свой.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Sergey
Хотя я понимаю, что избыточность данных и большой расход памяти будут
YouTube
Евгений Ермаков: Есть 2 стула - Data Vault и Anchor Modeling, на какой сядешь, на какой DWH посадишь
Data Fest Online 2020
SysML track https://ods.ai/tracks/sysml-df2020

Общепринятым и проверенным временем подходом к построению DWH является схема «Звезда» или «Снежинка». Такой подход каноничен, фундаментален, вотрефоллен и совсем не отвечает той гибкости, к которой призывает Agile.
Для того, чтобы сделать структуру DWH гибкой, существуют современные подходы к проектированию: Data Vault и Anchor modeling – похожие и разные одновременно.
Задавшись вопросом, который вынесен в заголовок доклада, мы пришли к неожиданному ответу: выбирать надо не между подходами, выбирать надо лучшее из двух подходов.
В своем докладе я расскажу:
- DV и AM – в чем разница и где точки соприкосновения;
- наш «гибридный» подход к построению хранилища;
- покажу примеры кода, как это работает.

Посмотреть эфир и список треков и организаторов: https://datafest.ru/2020/
Зарегистрироваться на фест и получить доступ к трекам: https://ods.ai/events/datafest2020
Вступить в сообщество: https://ods.ai/

Соцсети Data Fest:
https://t.me/datafest…
источник

S

Sergey in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Поэтому я вам и пишу, что вам нужно выбрать приоритет.
Вы хотите меньше хранить и быстро писать - нормализация.
Хотите быстро читать и не важно на хранение - денормализация.
Опять же вопрос по истории изменений, для каждой модели он свой.
Да, я понял. Не совсем понял по колоночному хранению что писали. У нас sql server 2019 инструмент
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Sergey
Да, я понял. Не совсем понял по колоночному хранению что писали. У нас sql server 2019 инструмент
Это лишь тип хранения данных и соответственно доступ к ним.
Он понадобиться уже после того как вы выберите методологию для вашего хранилища.
Иногда такие индексы используют в OLTP-системах, для создания гибридов. Что-то среднее между oltp и  dwh
источник

S

Sergey in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Это лишь тип хранения данных и соответственно доступ к ним.
Он понадобиться уже после того как вы выберите методологию для вашего хранилища.
Иногда такие индексы используют в OLTP-системах, для создания гибридов. Что-то среднее между oltp и  dwh
Ок, спасибо🤝
источник
2021 January 25

B

Bu in SqlCom.ru - Стиль жизни SQL
Всем привет, помогите пожалуйста решить проблему, есть 2 запроса которые я пытаюсь объединить Union`ом у одного поля(на самом деле оно там не одно, это для примера) разные типы, следовательно ошибка. как ее обойти что-бы не потерять в производительности
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
а у тебя проблема с производительностью?
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
Bu
Всем привет, помогите пожалуйста решить проблему, есть 2 запроса которые я пытаюсь объединить Union`ом у одного поля(на самом деле оно там не одно, это для примера) разные типы, следовательно ошибка. как ее обойти что-бы не потерять в производительности
Как вы колонку назовете, так она и поплывет 😂
А особых проблем с производительностью не должно быть, это же не предикат.
источник

B

Bu in SqlCom.ru - Стиль жизни SQL
Gopneg
а у тебя проблема с производительностью?
у меня есть большой запрос, который собирается из нескольких хранимок,выполняется он долго, я хочу попробовать собраться это все "одним" запросом и проверить будет ли ускорение.
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
ну тогда вряд ли у тебя проблема с кастом будет
источник

B

Bu in SqlCom.ru - Стиль жизни SQL
Gopneg
ну тогда вряд ли у тебя проблема с кастом будет
то есть никак особо не повлияет? и могу смело так фигачить?
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
ну если тебе нужна строка, то делай строку, выход-то какой?
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
тут проблема ведь не в производительности, а в условии задачи
если тебе надо строку - хоть об стену расшибись, но придется строку
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
есть конечно нюанс один, раз ты бигинт и строку в одно поле суешь, нет ли у тебя хранения чисел как строки в том поле?
если да, то это конечно надо убирать, станет быстрее и меньше места занимать будет
источник