powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Работа с большими данными
12 сообщений из 112, страница 5 из 5
Работа с большими данными
    #39508170
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schimaytonDBMS умеет по другому. Он бъет сложным и универсальным ударом который
называется B+Tree. Это дерево. Но особое. Оптимизированное для дисковых
блочных операций. И разумеется оно нелетает без прослойки LRU-подобного
кеша блоков.

Первый раз такую трактовку слышу, про оптимизацию с дисками. Не поделитесь источником ?
1) Ваша постановка вопроса меня удивляет. Если вы из сегмента It - то вы должны были проходить
курс алгоритмы и структуры данных. Там - дают вводную по деревьям (красные-чорные, бинарные,
тернарные, АВЛ) и в том числе B+Tree, N-того порядка. Последние просто являются
частным случаем предыдущих деревьев при условии что группа узлов (Nodes)
объединяются в дисковый блок (2/4/8/16K) массив и все операции с узлами
делаются в рамках блока. Это дает оптимальное использование I/O.

Один из производителей DBMS их описывает так.
B-tree indexes are the standard index type. They are excellent for highly selective indexes (few rows correspond to each index entry) and primary key indexes. Used as concatenated indexes, a B-tree index can retrieve data sorted by the indexed columns.
Далее по ссылке отрисовывается вся внутренняя структура.

https://docs.oracle.com/database/122/CNCPT/indexes-and-index-organized-tables.htm#CNCPT88834

Детально об этом пишут разные писатели. Джонатан Льюис. Том Кайт.

Решение нашей задачи в рамках DBMS я вижу так:

Код: sql
1.
create table FuckenWordsDictionary(word VARCHAR2(2000) primary key) organization index;



Далее - наполняем этот справочник insert-ами и игнорируем ошибку ORA-00001. Отбрасываем дубли.

Profit.

2) По кешам.

Механизм кеша - это я сказал ниочом и обо всем. Практически все современные
DBMS используют разные варианты кешей. IBM DB2, Postgres e.t.c. А кто не использует
тот дурак и у того нет перформанса.

Поэтому моя фраза о кешах - это попадание пальцем в небо. Так-же как и
"Волга Впадает в Каспийское море".
...
Рейтинг: 0 / 0
Работа с большими данными
    #39508173
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Первый раз такую трактовку слышу, про оптимизацию с дисками. Не поделитесь источником ?
1) Ваша постановка вопроса меня удивляет. Если вы из сегмента It - то вы должны были проходить
курс алгоритмы и структуры данных. Там - дают вводную по деревьям (красные-чорные, бинарные,
тернарные, АВЛ) и в том числе B+Tree, N-того порядка. Последние просто являются
частным случаем предыдущих деревьев при условии что группа узлов (Nodes)
объединяются в дисковый блок (2/4/8/16K) массив и все операции с узлами
делаются в рамках блока. Это дает оптимальное использование I/O.

Один из производителей DBMS их описывает так.
B-tree indexes are the standard index type. They are excellent for highly selective indexes (few rows correspond to each index entry) and primary key indexes. Used as concatenated indexes, a B-tree index can retrieve data sorted by the indexed columns.
Далее по ссылке отрисовывается вся внутренняя структура.

https://docs.oracle.com/database/122/CNCPT/indexes-and-index-organized-tables.htm#CNCPT88834

Детально об этом пишут разные писатели. Джонатан Льюис. Том Кайт.

[/quot]

Ничего не понял. Кайта и Льюиса читал, с деревьями знаком несколько раньше, чем вышли книги Кайта и Льюиса же, и ни разу не слышал про оптимизацию использования деревьев с точки зрения ввода-вывода, поэтому и заитересовался.
...
Рейтинг: 0 / 0
Работа с большими данными
    #39508174
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiНичего не понял. Кайта и Льюиса читал, с деревьями знаком несколько раньше, чем вышли книги Кайта и Льюиса же, и ни разу не слышал про оптимизацию использования деревьев с точки зрения ввода-вывода, поэтому и заитересовался.
Вся дисковая оптимизация для дисков старого поколения (магнитных) базируется
на уменьшении количества чтений и записей блоков (db_blocks). Сам по себе блок может
варьироваться от 512 байт до 64к. Это зависит от ОС и архитектуры. Поэтому
все структуры данных такие как таблицы и индексы бьются на блоки и читаются
и сериализуются кусками кратными блоку. Это считается ТруЪ для всех DBMS.
...
Рейтинг: 0 / 0
Работа с большими данными
    #39508298
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonschiНичего не понял. Кайта и Льюиса читал, с деревьями знаком несколько раньше, чем вышли книги Кайта и Льюиса же, и ни разу не слышал про оптимизацию использования деревьев с точки зрения ввода-вывода, поэтому и заитересовался.
Вся дисковая оптимизация для дисков старого поколения (магнитных) базируется
на уменьшении количества чтений и записей блоков (db_blocks). Сам по себе блок может
варьироваться от 512 байт до 64к. Это зависит от ОС и архитектуры. Поэтому
все структуры данных такие как таблицы и индексы бьются на блоки и читаются
и сериализуются кусками кратными блоку. Это считается ТруЪ для всех DBMS.

Да, я знаю, что Волга впадает в Каспийское море, но причем тут B-деревья ? :)
На уменьшении количества операций ввода-вывода направлена любая оптимизация, пока диски не быстрее памяти, увы.

Ждем автора, от него должна информация поступать, а то, может, ему и оптимизация не нужна вовсе.
...
Рейтинг: 0 / 0
Работа с большими данными
    #39508319
Bred eFeM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак вы любите сортировать! ... табличка 4Гб ключей ... это на 1*10^9 или на 4*10^9 ключей?

Считаем сколько будет чанков. там слова? - а значит буквы - 32*2+1 будет достаточно.
Итого, максимум 1,5*10^9 слова из 20 разных первых символов длиной 5 (байт), которые на основании свойств моей волшебной функции сортируются с выбрасыванием копий не дольше 2х(чтение-запись) диска.

И никакой сортировки. Как вам? И что с этим неупорядоченным 150G "как вам" делать дальше? Индексы строить, хеши считать...
...
Рейтинг: 0 / 0
Работа с большими данными
    #39508384
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я своё мнение кажется сказал в первом посте. Грузить в базу.

А все остальное в топика - это игры разума. И я поддерживаю их ради дискурса.
...
Рейтинг: 0 / 0
Работа с большими данными
    #39510874
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В продолжение топика. Для 150Гб файла в качестве метрики эффективности
алгоритма КМК мы должны брать за основу т.н. Full-Table-Scan (это в терминологии БД).

Или грубо говоря 1 проход чтением по нашему файлу. Full-File-Scan (если мы работаем
со своими самописными алгоритмами). Для краткости - FFS.

Я не имею ничего против оценки асимтотической сложности алгоритма но в нашем
случае инженерная интуиция мне подсказывает что, учитывая технические
характеристики диска нам будет очень важно сколько штук FFS мы отработаем
в течение исполнения алгоритма.

Как я уже говорил - ленточная сортировка - это сразу более чем несколько FFS.
Ванговать не буду. Это количество зависит от оперативы у вас на борту.
...
Рейтинг: 0 / 0
Работа с большими данными
    #39510885
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно предложить симбиоз оптимистичного и пессимистичного 20737243 алгоритма.

Сначала оптимистично грузим данные в хеш-таблицу пока не накопится некоторое предельное количество различных ключей, например, 2*10^6.

Если все данные успешно загрузятся без превышения лимита различных ключей, то цель достигнута - остается лишь выгрузить результат в файл.

Если же различных ключей много, например, 128*10^6, то мы рано или поздно достигнем лимит. В этом случае выгружаем промежуточные результаты в 128 файлов, расслоив данные по хеш-коду. Затем очищаем таблицу, загружаем новую порцию, снова расслаиваем и дописываем в те же файлы. Продолжаем до исчерпания исходных данных. На второй фазе алгоритма поочередно грузим каждый из 128 промежуточных файлов в хеш-таблицу (с другой хеш-функцией) и дописываем из нее данные в результирующий файл.
...
Рейтинг: 0 / 0
Работа с большими данными
    #39510887
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov, +1

Я тоже об этом думал. Но у меня была идея такая. Мы (к примеру) имеем не 1 а аж минимум 3 разных
алгоритма унификации большого толстого грёбаного файла (big-fat-ugly-file (BFUF)).

И во всех трех алгоритмах всегда присутствует первая фаза FFS. Что мы будем делать в эту фазу?
Сразу много всего.
- анализировать сведенья (число строк. средняя длина. количество уникальных на тек.момент,
гистограммы и прочие характеристики текста. Языки кодировки.)
- параллельно строить hash-table или другую структуру данных полезную для distinct of BFUF.
- если при параллельной постройке hash-table мы вышли за какие-то разумные границы
расходов памяти - то процесс анализа продолжаем до конца.
...
Рейтинг: 0 / 0
Работа с большими данными
    #39510895
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Александрович.Есть текстовые данные - порядка 2 тб в виде набора файлов ( файлы от 200 мб до 150 гб )
Задача проверить все файлы и удалить дубликаты ( а так же скомпоновать данные )
Что является записью (по которой выявляются дубликаты)?
Весь файл? Строка? Слово?
Если строка или слово, то необходимости использования БД я пока не вижу.
Нужно проиндексировать записи в имеющихся файлах, упорядочив их по языку и алфавиту.
При наличии индексов работать с этими файлами или выгрузить обработанные и отсортированные данные будет легче.
А удалять из середины 150ГБ файла несколько строк-дубликатов может быть накладно.
...
Рейтинг: 0 / 0
Работа с большими данными
    #39510906
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.А удалять из середины 150ГБ файла несколько строк-дубликатов может быть накладно.
...
Рейтинг: 0 / 0
Работа с большими данными
    #39518643
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем заинтересованным.

Тема имеет логическое продолжение здесь Тяпничная унификация
...
Рейтинг: 0 / 0
12 сообщений из 112, страница 5 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Работа с большими данными
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]