powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как отсортировать 1 миллиард записей?
25 сообщений из 336, страница 4 из 14
Как отсортировать 1 миллиард записей?
    #40034481
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

а если в лоб падает?

Код: sql
1.
2.
3.
4.
WITH MyScope AS (
  SELECT id, COUNT(1) OVER (PARTITION BY Dannye) AS Cnt
  FROM tabiz2010 )
SELECT * FROM MyScope WHERE Cnt>3
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034482
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
А как вы предлагаете?
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034483
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
А как вы предлагаете?
есть несколько вариантов вставки
когда вставляется по несколько строк.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034484
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034485
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,

Я в первом сообщении ошибся. Ничего не падает. Просто запись в БД - 50 записей в сек.

Ваш запрос я вообще не понял. Пока никакой сортировки нет. Пока только наполнение.
Я не могу с такой скоростью обработать наполнение даже из одной строки исходного файла.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034486
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
Я не могу с такой скоростью обработать наполнение даже из одной строки исходного файла.
https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034487
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

я так понял, что в Вашей таблице миллиард записей и Вы хотите найти те, в которых поле Dannye совпадает больше трех раз.
Именно это запрос и делает.
Или я неправильно понял?
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034488
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Спасибо. Хоть и не понятно как этим воспользоваться в моём случае.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034490
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

ты вставляешь из файла? или?
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034491
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,

Вы всё правильно поняли. Но раньше я работал на другой машине - на хостинге - там наполнение шло гораздо веселей. и не вызывало затруднений.

А сейчас я завис даже на наполнении. То есть пока нет никакой сортировки - пока просто наполнение.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034492
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
mayton,

Спасибо. Хоть и не понятно как этим воспользоваться в моём случае.

В консоли это называется autocommit off. Обычно
После этого пачка inserts рассматривается как 1 транзакция а не сто тыщ.
Разумеется в конце надо дать явный commit.

Еще одно. Я не спец в MySQL. Но обычно в БД для пакетной загрузки batch/bulk
insert из текстовых файлов, разработаны готовые утилиты.

Возможно вот эта она https://dev.mysql.com/doc/refman/8.0/en/mysqlimport.html

В Oракле ей аналог - sqlloader.

Эти утилиты знаю много workarounds чтоб писать пачками и в 1 транзакцию и
еще и используют другие хитрости.

Тоесть если ты хочешь загрузить лярд строк в БД - то лучше всего на Perl
просто сформировать текстовый файл и потом его прогрузить с помощью mysqlimport.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034493
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

просто записать в файл - сможешь?
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034494
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

исходный файл - 5 тысяч строк

день года и 20 цифр

Из 20 цифр нужно сделать различные. неповторяющиеся комбинации из 10 цифр

И так с каждой строкой исходного файла.

Потом сортировка - для того, чтоб найти повторы.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034495
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Запросто и быстро.
Около 50 ГБ получается.
Около часа работы - если кусками.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034496
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

Но текстовые файлы сами по себе ничего не сортируют, к сожалению.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034497
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

а в каком виде эти данные сейчаc? И что мешает их загрузить через

Код: sql
1.
2.
3.
SET autocommit=0;
LOAD DATA ... 
COMMIT;
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034498
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Спасибо.
Если я вас правильно понял - нужно пытаться сделать меньше запросов.
Сейчас подумаем как...
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034499
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,

Пока ни в каком вообще. Потому как со скоростью 50 записей в секунду - я до смерти не загружу 1 миллиард :-)
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034500
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

ну в каком-то виде эти данные все же должны быть? Иначе грузить нечего.
Вот я и спрашиваю, какой формат исходных данных? Просто текстовый файл? Результат выгрузки mysqldump? Или еще что-то?
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034501
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
Но текстовые файлы сами по себе ничего не сортируют, к сожалению.
вот руки опускаются, когда не читают что советуют

я ж ссылки дал!!!!
miltorg
Запросто и быстро.
Около 50 ГБ получается.
Около часа работы - если кусками.
дак сделай текстовый файл
потом вставь всё из него
https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034502
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
miltorg,

Но текстовые файлы сами по себе ничего не сортируют, к сожалению.

Если эту задачу поднимать например в Unix форумах - то там она решается мгновенно.

Админы юзают эту утилиту.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$ sort --help
Usage: sort [OPTION]... [FILE]...
  or:  sort [OPTION]... --files0-from=F
Write sorted concatenation of all FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
Ordering options:

  -b, --ignore-leading-blanks  ignore leading blanks
  -d, --dictionary-order      consider only blanks and alphanumeric characters
  -f, --ignore-case           fold lower case to upper case characters
  -g, --general-numeric-sort  compare according to general numerical value
  -i, --ignore-nonprinting    consider only printable characters
  -M, --month-sort            compare (unknown) < 'JAN' < ... < 'DEC'



Она достаточно шустро сортирует текстовые файлы. И даже есть дисковые оптимизации на тот случай когда
окно сортировки стало больше чем доступная память.

Единственно... для нашего случая где строка - композитная надо ее авк-нуть или гавкнуть. Как-то так. Чтоб
выбрать вторую колонку после даты.

Код: sql
1.
$ cat input.csv | gawk ........ | sort -nr > sorted-input.csv


Опция -nr должна делать подсчет.

Еще некоторые детали по реализаци здесь
http://vkundeti.blogspot.com/2008/03/tech-algorithmic-details-of-unix-sort.html
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034504
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,

Спасибо! Всё забегало гораздо быстрее.
Гораздо.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034506
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделало 100 тысяч за 2 мин

800 записей в секунду - это уже лучше.

Я что то забыл. А сколько вариантов с одной строки? 10 из 20?
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034508
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ура! Я обработал 1-ю строку.

Осталось всего то 5 тысяч строк и плюс каждый день по строке. :-)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
180180
181181
182182
183183
184184
sozdan fajl razmerom v 184756 zapisej
v obrabotke 2 stroka


Прошло 4.22 min
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034516
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще такая хакерская штука как "кранч"

Код: sql
1.
2.
3.
4.
5.
6.
7.
$ crunch  --help
crunch version 3.6

Crunch can create a wordlist based on criteria you specify.  The output from crunch can be sent to the screen, file, or to another program.

Usage: crunch <min> <max> [options]
where min and max are numbers



С моей точки зрения она - годится для брутфорса. Но авторы - завуалировано сообщают что это создавалка "списка
слов базирующихся на критериях".

Вобщем если эти хромосомы - суть 10 цифр в 20 ричной системе счисления - то мы можем их всех сгенерить так.
Код: sql
1.
$ crunch 20 20 0123456789abcdefghijk --stdout | gawk ... здесь отрезать первые 10
...
Рейтинг: 0 / 0
25 сообщений из 336, страница 4 из 14
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как отсортировать 1 миллиард записей?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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