Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
mayton3. Поиск по неполному набору атрибутов. Вместо поиска точки мы будем искать множество фактов на гипер-прямой или гиперплоскости и т д. O(1) превращается в линейный или полиномиальный. Если набор атрибутов всегда полный, то я уже выше предлагал рассматривать биткарту как многомерный массив бит 21452572 При большом размере биткарты возможно фильтр Блума как-то подойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 14:47 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
mayton, почитай про карту Карно. https://ru.wikipedia.org/wiki/Карта_Карно Куб Карно́ — графический способ минимизации переключательных (булевых) функций, обеспечивающий относительную простоту работы с большими выражениями и устранение потенциальных гонок[1]. Представляет собой операции попарного неполного склеивания и элементарного поглощения. Карты Карно рассматриваются как перестроенная соответствующим образом таблица истинности функции. Карты Карно можно рассматривать как определённую плоскую развертку n-мерного булева куба. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 15:04 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
maytonЦифры. Для куба с расходом памяти в 2Gbyte. (~17 179 869 184 boolean элемента) ... 2 Гб много для оперативки, но если использовать мапинг файла в память, то можно 2 Тб легко задействовать. Дисковая память недорогая, для этой задачи хватит HDD. Большие разреженные файлы из ноликов ОС умеют создавать, т.е. наполнение будет относительно быстрое. При использовании отображаться в память файл будет постранично, т.е. оперативки много не потребуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 15:29 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
maytonЯ добавлю чего куб не любит. 3. Поиск по неполному набору атрибутов. Вместо поиска точки мы будем искать множество фактов на гипер-прямой или гиперплоскости и т д. O(1) превращается в линейный или полиномиальный. Одна из базовых основ кубов, это получение среза.... а не получения конкретной точки (Obs) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 15:40 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Roman MejtesmaytonЯ добавлю чего куб не любит. 3. Поиск по неполному набору атрибутов. Вместо поиска точки мы будем искать множество фактов на гипер-прямой или гиперплоскости и т д. O(1) превращается в линейный или полиномиальный. Одна из базовых основ кубов, это получение среза.... а не получения конкретной точки (Obs) Вы говорите об OLAP. Я говорю о другой структуре данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 15:58 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Dima Tmayton3. Поиск по неполному набору атрибутов. Вместо поиска точки мы будем искать множество фактов на гипер-прямой или гиперплоскости и т д. O(1) превращается в линейный или полиномиальный. Если набор атрибутов всегда полный, то я уже выше предлагал рассматривать биткарту как многомерный массив бит 21452572 При большом размере биткарты возможно фильтр Блума как-то подойдет. По первому пункту - да. 100%. По фильтрам. Почти да. При условии что мы делаем частичное кеширование. Доступ к БД по прежнему нужен. Я не против Блума но сначала хочу исчерпать возможности сваей первой постановки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 16:02 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Dima Tmayton, почитай про карту Карно. https://ru.wikipedia.org/wiki/Карта_Карно Куб Карно́ — графический способ минимизации переключательных (булевых) функций, обеспечивающий относительную простоту работы с большими выражениями и устранение потенциальных гонок[1]. Представляет собой операции попарного неполного склеивания и элементарного поглощения. Карты Карно рассматриваются как перестроенная соответствующим образом таблица истинности функции. Карты Карно можно рассматривать как определённую плоскую развертку n-мерного булева куба. Карно - это графическое представление булевой функции. Сам же метод карно требует участия человека эксперта который эту минимизацию делает вручную. Альтернатива это Квайн который автоматизирован но не факт что построит компактную функцию. Собственно здесь можно поставить вопрос о принципиальной возможности что то минимизировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 16:07 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Конкретная задача, пусть хотя бы для примера, сильно бы упростила бы поиск решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 18:44 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
hVosttКонкретная задача, пусть хотя бы для примера, сильно бы упростила бы поиск решения. УГУ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 19:17 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
maytonDima Tпропущено... Если набор атрибутов всегда полный, то я уже выше предлагал рассматривать биткарту как многомерный массив бит 21452572 При большом размере биткарты возможно фильтр Блума как-то подойдет. По первому пункту - да. 100%. Если да, то у меня нет других идей, разве что заняться изобретательством выделения памяти под биткарту, т.к. ноликов там будет намного больше чем единичек. Один из вариантов уже предлагал 21457935 maytonПо фильтрам. Почти да. При условии что мы делаем частичное кеширование. Доступ к БД по прежнему нужен. Я не против Блума но сначала хочу исчерпать возможности сваей первой постановки. ИМХО на больших размерах Блум самое то что надо, пусть небольшую часть придется допроверить по БД, но иначе террабайтные биткарты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 19:25 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonПо фильтрам. Почти да. При условии что мы делаем частичное кеширование. Доступ к БД по прежнему нужен. Я не против Блума но сначала хочу исчерпать возможности сваей первой постановки. ИМХО на больших размерах Блум самое то что надо, пусть небольшую часть придется допроверить по БД, но иначе террабайтные биткарты. Добавлю: мне кажется ты фильтр Блума изобретаешь, но такой который дает гарантированное "Есть/Нет" вместо "Возможно есть/Нет". Я бы пошел по пути повышения вероятности "Возможно есть". Если так и исходные данные у тебя мало меняются, то можно поиграть функциями хэшей Блума, чтобы при "Возможно есть" был минимум "реально нет". Т.е. либо сразу получаешь ответ "нет", либо делаешь запрос к БД и минимизируешь ответ "Нет" за счет подбора функций хэшей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 19:48 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonЦифры. Для куба с расходом памяти в 2Gbyte. (~17 179 869 184 boolean элемента) ... 2 Гб много для оперативки, но если использовать мапинг файла в память, то можно 2 Тб легко задействовать. Дисковая память недорогая, для этой задачи хватит HDD. Большие разреженные файлы из ноликов ОС умеют создавать, т.е. наполнение будет относительно быстрое. При использовании отображаться в память файл будет постранично, т.е. оперативки много не потребуется. На файловой системе (random access) надо подумать об умной буферизации. При начальной инициализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 19:54 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
ViPRoshVosttКонкретная задача, пусть хотя бы для примера, сильно бы упростила бы поиск решения. УГУ. Я попробую сделать учебный пример. Но вы наверное не в курсе моей традиции создавать пятничные топики мозгового штурма. Я делюсь мыслями а не бизнес постановкой. Вобщем не ждите от меня ТЗ. Фантазируйте. Дополняйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 20:39 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
maytonDima Tпропущено... 2 Гб много для оперативки, но если использовать мапинг файла в память, то можно 2 Тб легко задействовать. Дисковая память недорогая, для этой задачи хватит HDD. Большие разреженные файлы из ноликов ОС умеют создавать, т.е. наполнение будет относительно быстрое. При использовании отображаться в память файл будет постранично, т.е. оперативки много не потребуется. На файловой системе (random access) надо подумать об умной буферизации. При начальной инициализации. Суть этой идеи в том что об этом будет думать ОС, т.е. не надо заморачиваться вопросом, который ты задал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 20:40 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Dima Tmaytonпропущено... На файловой системе (random access) надо подумать об умной буферизации. При начальной инициализации. Суть этой идеи в том что об этом будет думать ОС, т.е. не надо заморачиваться вопросом, который ты задал. Не согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 20:56 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
maytonDima Tпропущено... Суть этой идеи в том что об этом будет думать ОС, т.е. не надо заморачиваться вопросом, который ты задал. Не согласен. Идею террабайтных биткарт конечно можно развивать, но это сложно и дорого, поэтому я и предложил воспользоваться тем что уже есть, т.е. средствами ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 21:01 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Dima Tmaytonпропущено... Не согласен. Идею террабайтных биткарт конечно можно развивать, но это сложно и дорого, поэтому я и предложил воспользоваться тем что уже есть, т.е. средствами ОС. Давай идею файлового куба отложим на некоторое время. Просто у меня реально много мыслей по самой первой версии. И я их еще для себя не продумал. Вернемся к диску потом. Позже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 21:06 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
maytonЯ попробую сделать учебный пример. Но вы наверное не в курсе моей традиции создавать пятничные топики мозгового штурма. Я делюсь мыслями а не бизнес постановкой. Без примера решать задачи это из области принеси то, незнаю что. Потому что первым же ответом от Dima T приводится законченное решение вашей задачи. Сколько угодно мерный массив в современной информационной системе будет именно одномерным массивом со смещениями, поэтому сказано про битовую карту -- это та голова, выше которой не прыгнешь. Технические вопросы, типа как обойти ограничение на ОЗУ, тоже предлагались -- отражение на файл. Но если это всё не то, тогда давайте обсуждать в контексте какой-то конкретной задачи. Типа вот есть это и это, а надо так и так. Тогда будет смысл думать. maytonВобщем не ждите от меня ТЗ. Фантазируйте. Дополняйте. Тогда надо в область нейросететей, искусственного интеллекта, квантовых кубитов и т.п. Всё равно это невозможно проверить и ни в чём убедиться. Зато фантазировать -- сколько угодно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 21:14 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
hVosttТогда надо в область нейросететей, искусственного интеллекта, квантовых кубитов и т.п. Всё равно это невозможно проверить и ни в чём убедиться. Зато фантазировать -- сколько угодно :) Ну... на правах топик-стартера я всё-таки предлагаю ограничиться темой первого поста. Но если вы имеете что сказать по ИИ или нейросетям - прошу создавайте новую ветку. Я возможно подключусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2018, 23:32 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
По поводу фильтра Блума. Я привожу некий субъективный сравнительный анализ куба и фильтра Блума в виде таблички. По каждому пункту я готов дать свою аргументацию. Некоторые пункты которые я отметил звездочной (*) требуют детализации и я ее отпишу чуть позже по мере времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2018, 00:22 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Комментарии. (*) Memory consuming MBHC определяется формулой. . Формулой произведения кардинальностей всех измерений кортежей. Плюс накладные на использование справочников измерений. Допустим у нас есть табличка фактов с 4 колонками на 80000 строк. Несмотря на большой объем сегмента данных - раздельные величины кардинальностей равны 8, 5, 3, 10. Поля имеют различные типы данных. Строка. Дата. Число. И еще одно число. Но тип нам не особо интересен. Мы создаём 4 справочника. для отображения строк дат и уникальных чисел на ограниченный диапазон индексов (желательно начиная с нуля). 0..7, 0..4 e.t.c. Конструем куб с объемом на 8*5*3*10 = 1200 бит или 150 байт. Это и есть наш memory consuming и некое сериализованное в памяти состояние 4 справочников размер которых я сейчас посчитать не могу но вы можете прикинуть сами исходя из средних метрик для продуктовых баз. Что там? Имена? Коды товаров? Придумайте сами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2018, 00:35 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
(**) Поддержка интерфейа Итерации в многомерном булевом кубе возможна. В самом начале топика я писал что невозможно. Или сложно. Вобщем смотрите. Основное назначение куба - хранение и извлечение фактов в режиме жесткого OLTP. Тоесть мы предполагаем точечные запросы вида Код: sql 1. 2. Какой смысл делать переборные алгоритмы в таких условиях? Я не знаю. Может просто COUNT() всех фактов. Придумайте сами. Временная сложность будет линейна если мы скипаем field1 и будет расти если отбрасывать другие поисковые ограничители. Словом поиск по полному совпадению всех ключей кортежа - предпочтителен. Итерация - возможна но куб теряет смысл. Тогда лучше искать в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2018, 00:43 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
(***) Поддержка интервальных запросов. В начале топика я упомянул о том что оси куба соответвтуют перечислимым величинам. Enumeration. Но в принципе если наша величина - это средне-годовой доход то у нас появляется возможность вести ранг или сравнение кортежей в кубе по одной оси. Например выбрать все факты где средне-годовой доход в диапазоне от 50 000 $ до 950 000 $. Разумеется оригинальный запрос должен будет быть трансформирован через справочних классов доходов в некое целочисленное значение индекса. Здесь для достижения эффекта мы должны физически организовать куб таким образом чтобы факты этого диапазона лежали рядом. Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2018, 00:52 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Далее (****) Расширение сегмента данных для фильтра Блума. Я не буду здесь долго описывать теорию. Можете почитать Вики. Фильтр Блума принципиально не расширяется. Его можно пересоздать заново и используя оригинальную БД прогрузить весь amount фактов в новый сегмент. Добавление новых фактов - возможно но приводит к потере избирательности. Я-бы ввел свою достаточно простую метрику. Количество нулевых и единичных битов в карте должны быть примерно 50%. Как только единички достигают половины по мере заполнения - самое время дать сигнал джобу на реорганизацию. Здесь же. По поводу MBHC и расширения в одном измерении. Думаю возможно. Если в примере CUBE2 мы аллоцируем чуть больше памяти (с запасом) и порежем куб на гиперплоскости которые соответствуют средним годовым доходам. И при этом аллоцированная сырая память операционной системы заполнена кубом на 80% то нам ничто не мешает отформатировать ее продолжение под следующую гиперплоскость и считать что куб растянулся. Почему мы не аллоцировали все сразу? Предлагаю подумать и о возможном расширении других измерений в условиях когда мы не знаем как будут расти справочные данные. Чисто технически - это просто движение битов в биткарте (с учотом padding) и все прочее. Дело нудное и скушное и я сейчас просто не хочу об этом думать но утверждаю что технически - возможно. Если сильно надо - то растянем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2018, 01:06 |
|
||
|
Вторничный куб. Концепция.
|
|||
|---|---|---|---|
|
#18+
Далее (*****) Возможность сжатия. Это больной вопрос. Можно сказать слабое место алгоритма. Я подведу под это практическую базу. Мне только нужна учебная схема типа Борей и терпение чтобы оценить как лягут таблички в куб. Сам куб я не буду строить пока. Для оценки мне достаточно к примеру прогрузить тот-де Борей в SQLite и посчитать его кардинальности. Чтобы не флудить словами я ввожу функцию Код: sql 1. и буду на нее ссылаться как на основную метрику КПД куба в части памяти. Ну и для простоты еще число строк Код: sql 1. Возможно большая часть табличек даже и не ляжет. Особенно это касается вещественных полей. Вобщем юзкейс - не универсален. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2018, 01:14 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39653641&tid=1340101]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
171ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 275ms |
| total: | 562ms |

| 0 / 0 |
