Работа с большими данными

Андрей Александрович.
Дата: 19.08.2017 23:25:01
Приветствую

Подскажите решение следующей задачи

Есть текстовые данные - порядка 2 тб в виде набора файлов ( файлы от 200 мб до 150 гб )
Задача проверить все файлы и удалить дубликаты ( а так же скомпоновать данные )

Правильным ли решением будет использовать для этого СУБД ?
т.e

1 - читаем файл с данными построчно
2 - вносим данные в БД
3 - перед внесением данных проверяем есть ли уже такая запись в БД

Отсюда вопросы

- как лучше проверять уникальность ? SELECT ? LIKE ? хранимой процедурой ? триггером на INSERT ?
- Какую БД лучше всего использовать ? Есть опыт работы с MySQL, MSSQL, SQLite, Firebird
- Есть ли готовые решения для поиска дубликатов в таких обьемах данных ?
Андрей Александрович.
Дата: 19.08.2017 23:26:47
> и удалить дубликаты

Дубликаты данных которые находятся в файлах
mayton
Дата: 19.08.2017 23:44:30
Андрей Александрович., успех этого мероприятия зависит от ваших ресурсов.
Самый прямой и надежный вариант - загрузить используя всякие базёвые
утилиты *loader-s ваши данные в одну табличку. И delete-ом почистить
дубликаты. В запросе использовать аналитические функции (PARTITION BY).
mikron
Дата: 20.08.2017 01:26:10
Андрей Александрович.
2 тб в виде набора файлов ( файлы от 200 мб до 150 гб

Это реально много.
Андрей Александрович.
Правильным ли решением будет использовать для этого СУБД ?

Скорее нет чем да. И скорее всего все другие вопросы не релевантны.
Андрей Александрович.
- Есть ли готовые решения для поиска дубликатов в таких обьемах данных ?

Возможно есть в биоинформатике. Но ваша задача, если я правильно предпологаю, не поиск одного дупликата и не поиск всех дупликатов.

Для создания списков уникальных значений потребуется на скромный взгляд ещё 2 - 3 ТБ.
И считатся это будет наверно дни. на вскидку и без базы данных. Такая работа стоит времени специалиста и за пределами бесплатных консультаций. ИМХО.
Siemargl
Дата: 20.08.2017 01:33:45
mikron,

хэширование спасет мир
982183
Дата: 20.08.2017 05:51:36
1. Речь идет о текстовой неструктурированной информации, или о реляционных данных, хранящихся в текстовом виде?
во втором случае каково количество полей данных?
2. Чем вызван такой способ хранения данных?
2. Чем отличаются отдельные файлы. (Это последовательно обрезанный поток данных, или это данные с разных источников?)
ВМоисеев
Дата: 20.08.2017 08:30:08
>Андрей Александрович., вчера, 23:25 [20736437]

>...Правильным ли решением будет использовать для этого СУБД ? ...
Рассмотрите такой вариант:
1. Все текстовые файлы находятся в папке файлового сервера - смысловая часть.
2. Поисковая часть (суррогатный_ключ, пользовательское_имя_файла, группа, когда_создан и т.п) находится в записях таблицы(ц) базы данных.
3. Файлы смысловой части имеют имена производные от суррогатного ключа.

С уважением,
Владимир.
Андрей Александрович.
Дата: 20.08.2017 08:55:26
982183
1. Речь идет о текстовой неструктурированной информации, или о реляционных данных, хранящихся в текстовом виде?
во втором случае каково количество полей данных?


Файлы представляют собой хранилища слов всех языков мира
те списки слов на разных языках

982183
2. Чем вызван такой способ хранения данных?


Дали файлы - сказали решить вопрос с дубликатами и хранением

982183
2. Чем отличаются отдельные файлы. (Это последовательно обрезанный поток данных, или это данные с разных источников?)


Это файлы с разных источников ( часто даже с различным способом хранения данных - те нужно будет к каждому файлу писать парсер или свою проверку корректности данных. Учитывая что там еще слова на разных языках то переводить все в UNICODE )
Андрей Александрович.
Дата: 20.08.2017 08:58:49
mikron
Возможно есть в биоинформатике. Но ваша задача, если я правильно предпологаю, не поиск одного дупликата и не поиск всех дупликатов.


Задача - очистка данных от повторяющихся слов
А так же упорядочивание данных при возможности

mikron
Для создания списков уникальных значений потребуется на скромный взгляд ещё 2 - 3 ТБ.
И считатся это будет наверно дни. на вскидку и без базы данных. Такая работа стоит времени специалиста и за пределами бесплатных консультаций. ИМХО.


Есть свободные 3 тб те куда делать временные таблицы есть
По времени если пересчет займет 3-9 дней - не проблема. Вопрос именно в том как наиболее быстро сделать чтобы поиск добавление в БД не заняло например месяц или больше

Я так подозреваю что после решение этой задачи станет обработка данных
А лучше всего это делать если данные будут упорядоченны например в БД
982183
Дата: 20.08.2017 09:06:24
Андрей Александрович.
Файлы представляют собой хранилища слов всех языков мира
те списки слов на разных языках

Т.е. намечается два поля - "Язык" (который берем из файла) и "Cлово"

982183
Дали файлы - сказали решить вопрос с дубликатами и хранением

Наверно с хранением и дубликатами.

982183
Это файлы с разных источников ( часто даже с различным способом хранения данных - те нужно будет к каждому файлу писать парсер или свою проверку корректности данных. Учитывая что там еще слова на разных языках то переводить все в UNICODE )

Так эта задача однако на порядок сложнее, чем организовать хранение и чистку.