Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
1 таблица с 3 полями и 1 лярд записей или 1 таблица 100 полей и 10 миллионов записей Спвсибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 15:40 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
кириллk1 таблица с 3 полями и 1 лярд записей или 1 таблица 100 полей и 10 миллионов записей СпвсибоОтвета на этот вопрос не существует. Нужно поковыряться. Но второй вариант ковырять может быть проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 15:57 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
Очевидно, та, которая позволит меньше тратить ресурсов и выполнять запросы быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 15:58 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
зависит от типа нагрузки, логики/сложности расчётов и размеров выборок, кардинальности, конфигураций сервера и тд. у обоих подходов в некоторых сценариях будут преимущества над другим методом например у второго варианта будет явное преимущество в скорости навигации между элементами / комбинацией ключей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 16:02 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
кириллk1 таблица с 3 полями и 1 лярд записей или 1 таблица 100 полей и 10 миллионов записейВ первом варианте таблица будет больше в 6 раз Что быстрее - зависит от запросов, но чаще всего быстрее будет 2-й вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 17:20 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
кириллk1 таблица 100 полей и 10 миллионов записей Спвсибо+ Columnstore index ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 22:50 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
alexeyvgкириллk1 таблица с 3 полями и 1 лярд записей или 1 таблица 100 полей и 10 миллионов записейВ первом варианте таблица будет больше в 6 раз Что быстрее - зависит от запросов, но чаще всего быстрее будет 2-й вариант. Это как так? Количество информации не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 12:29 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
tarrusЭто как так? Количество информации не меняется.если сильно упрощённо чисто математически без особой специфики хранения RDBMS то: допустим два ключа (bigint + int , 8+4=12 byte) и какой-нибудь факт (decimal/numeric/money) на скажем 13 байтов итого 25 байтов с вертикальным хранением фактов на миллиард строк (в результате 25 * 1 Млрд = 25 Млрд байтов или 23Gb) то-же самое с горизонтальным хранением (т.е. композитный ключ уникален): с 98 полей 13-байтных фактов и 2 ключа = 1286 байтов, но количество строк в 98 раз меньше т.е. 1286 * 1 миллиард / 98 = 12Gb итого хранение: вертикально - 23Гб горизонтально - 12Гб экономия за счёт ключей в два раза (в данном случае: 12 байтов на ключи и 13 на факты) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 13:50 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
tarrusalexeyvgпропущено... В первом варианте таблица будет больше в 6 раз Что быстрее - зависит от запросов, но чаще всего быстрее будет 2-й вариант. Это как так? Количество информации не меняется.Возмём для примера целые поля. В первом варианте получаем 1Г * 3 * 4 = 12 Гб Во втором варианте получаем 10М * 100 * 4 = 4 Гб То есть, на первый взгляд разница в 3 раза. Но на самом деле, для хранения строки нужно ещё 8 байт. То есть, по размеру, это ещё как 2 невидимых целых числа на строку. Тогда в первом варианте получаем 1Г * ( 3 * 4 + 8 ) = 20 Гб, уже в 5 раз больше Это я ещё не считаю верхний уровень индекса, ну да ладно, можно пренебречь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 14:37 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
alexeyvgВозмём для примера целые поля. ... в 5 раз большеДа, и если вернуться к собственно "аналтитческим запросам", то тут зависит от запросов - если в запросе одновременно используется вся длинная строка, или её бОльшая часть, то быстрее будет "широкий" вариант. Если используется малая часть (или даже одно значение), то "узкий". Это, в общем, классический DWH. Есть время измерения, счётчик, значение. Можно так и хранить, как "узкую" таблицу. А можно сделать таблицу с временем как ПК, и колонками-счётчиками. У нас сначала хранились широкие таблицы, но это было несколько неудобно, потому что разные группы счётчиков мерялись в разное время, + их было долстаточно много (десятки тысяч), так что одну широкую таблицу было сделать невозможно. Поэтому было много "широких" таблиц, по группам счётчиков. Но для расчётов и прочего это было неудобно, поэтому потом перешли на одну узкую таблицу (занявшую все террабайты дисковой подсистемы). Хотя для места, и для скорости, это неэффективно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 14:53 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
кириллk, Не для Qlikview случайно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 18:44 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
кириллk1 таблица с 3 полями и 1 лярд записей или 1 таблица 100 полей и 10 миллионов записей Спвсибо Если уже считать по объёму данных (что конечно коррелирует со скоростью выборок), то я лично не понимаю, как можно сравнивать разные данные. Таблица с тремя полями и миллиардом записей != таблице с 100 полями и 10 миллионами записей. Чисто математически. 3 000 000 000 != 1 000 000 000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 19:12 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
PizzaPizza, 1Млрд = 1'000 миллионов 3 поля из которых два ключа и один факт в горизонтальное (или широкое как указали выше) хранение 100 полей (2 ключа и 98 фактов) это 1'000 Млн. / 98 ~ 10.2 Млн т.е. в данном случае миллиард вполне пропорционален 10 млн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 19:59 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
PizzaPizzaЕсли уже считать по объёму данных (что конечно коррелирует со скоростью выборок), то я лично не понимаю, как можно сравнивать разные данные. Таблица с тремя полями и миллиардом записей != таблице с 100 полями и 10 миллионами записей. Чисто математически. 3 000 000 000 != 1 000 000 000Я же написал: alexeyvgЭто, в общем, классический DWH. Есть время измерения, счётчик, значение. Можно так и хранить, как "узкую" таблицу. А можно сделать таблицу с временем как ПК, и колонками-счётчиками.В обоих случаях хранится один миллиард значений, но в первом случае он хранится в трёх миллиардах полей (то есть в одном миллиарде записей, по одной записи на каждое значение, в записи 3 поля - значение, + 2 ключа ), во втором случае в одном миллиарде полей - 10 миллионов записей по 100 значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 21:25 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
vikkivв горизонтальное (или широкое как указали выше) хранение 100 полей (2 ключа и 98 фактов)Скорее, там 1 поле ключ, и 100 полей - факты. Итого 101 поле, а до 100 автор просто округлил :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 21:28 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
alexeyvgВ обоих случаях хранится один миллиард значений, но в первом случае он хранится в трёх миллиардах полей (то есть в одном миллиарде записей, по одной записи на каждое значение, в записи 3 поля - значение, + 2 ключа), во втором случае в одном миллиарде полей - 10 миллионов записей по 100 значений. Не получается у меня никак. Автор пишет про три поля - 1 000 000 000 000 (спасибо за поправку про миллиарды) записей 100 полей - 10 000 000 000 записей Допустим на каждую запись служебной информации надо добавить (хотя мне кажется, что служебная информация для записи из 100 полей побольше будет, чем для записи в 3 поля и то на то и получится, но допустим), это +1 поле каждой записи. Получаем 4 * 1 000 000 000 000 полей 101 * 10 000 000 000 записей Получаем 4 000 000 000 000 != (совсем никак) 1 010 000 000 000. Кстати хорошо бьется с вашими 2-3-5 разами разницы. Имхо автор говорит о совершенно разном наборе данных, а все остальное, все допуски на 2 ключа (почему в первой таблице три ключа, а во второй не пять?) это уже чистая спекуляция без понимания реальной структуры и типа данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 21:50 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
PizzaPizza, при чём здесь триллионы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 21:59 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Я имею ввиду, что простое допущение про два ключа в первой таблице сразу дает большую разницу между таблицами. Поэтому сравнивать таблицу с одним ключом и двумя для меня странно - они не транслируются друг в друга, либо же во второй таблице из 100 полей есть больше одного ключа. Иначе это не сравнение горизонтальная vs вертикальная таблица и/или разный набор данных, который соответственно может различаться в разы по количеству полей и данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 22:04 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
vikkivPizzaPizza, при чём здесь триллионы? Боже боже, теперь лишние нули накопировал. Ну главное, что соотношение не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 22:09 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
PizzaPizzaalexeyvg, Я имею ввиду, что простое допущение про два ключа в первой таблице сразу дает большую разницу между таблицами. Поэтому сравнивать таблицу с одним ключом и двумя для меня странно - они не транслируются друг в друга, либо же во второй таблице из 100 полей есть больше одного ключа. Иначе это не сравнение горизонтальная vs вертикальная таблица и/или разный набор данных, который соответственно может различаться в разы по количеству полей и данных.Это сравнение двух реализаций одной и той же задачи - "хранение миллиарда значений и аналитичечские запросы к этим данным" В этом и вопрос автора. Он выбирает, как хранить одни и те же данные - в 10 млн строк широкой таблицы, или в миллиарде строк узкой, что бы быстрее двыполнялись аналитическмие запросы. Во второй таблице в принципе должен быть один ключ, но даже если (как в моём примере выше) там будет 2 ключа - это неважно, потому что добавление одного ключа в "широкую" таблицу не даёт какого либо изменения объёмов хранения. Какая разница, на 100 полезных полей будет одно бесполезное поле, или два? Как они транслируются - я уже 2 раза написал выше. Это типичный выбор для задач DWH, и именно так транслируются эти узкая и широкая таболицы в друг друга, я даже вам поля перечислил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 22:14 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
alexeyvgКак они транслируются - я уже 2 раза написал выше. Это типичный выбор для задач DWH, и именно так транслируются эти узкая и широкая таболицы в друг друга, я даже вам поля перечислил. Ага, спасибо. Время измерения это естественный ключ для горизонтальных таблиц, это для меня идея для подумать. Это конечно же экономит атрибут для широкой таблицы и добавляет для узкой. Никогда не имел задач с выборкой по времени как сущности поэтому мне была не очевидна проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 22:36 |
|
||
|
Что лучше для аналитических запросов?
|
|||
|---|---|---|---|
|
#18+
PizzaPizzaalexeyvgКак они транслируются - я уже 2 раза написал выше. Это типичный выбор для задач DWH, и именно так транслируются эти узкая и широкая таболицы в друг друга, я даже вам поля перечислил. Ага, спасибо. Время измерения это естественный ключ для горизонтальных таблиц, это для меня идея для подумать. Это конечно же экономит атрибут для широкой таблицы и добавляет для узкой. Никогда не имел задач с выборкой по времени как сущности поэтому мне была не очевидна проблема.Даже если не только время измения, тут важно, что ключи дают незначительный оверхед к данным. Пуксть даже ещё 10 полей в ключах, что это по сравнению с 100 полями данных? А вот для записи с одним полем данных даже один ключ - это много. Полюс ещё 8 невидимых байт (внутренних для SQL Server) на каждую строку, то есть на каждое значение - это тоже очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 23:12 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39783975&tid=1688158]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 359ms |

| 0 / 0 |
