Psycopg2 и миллионы insert.
Я давно подозревал, что cursor.executemany плохой путь для массовой вставки данных в таблицы, во всяком случае для постгрес. Но поскольку реальными миллионами строк мне надо оперировать раз в полгода, я валил все на "тупой питон".
Нет, тупой я и те кто пишет мануалы по питону. Оказывается, решение есть и оно в 35 раз (!) быстрее. Но надо было закопаться в глубину.
Встречайте, метод execute_values:
Массив данных для него делается такой же как для executemany (массив строк), но синтаксис отличается (смотрите на нижней картинке), курсор это параметр функции и values всегда одиночный %s.
Разница в быстродействии записи налицо (верхний слайд). Таблица на 10 млн строк копируется вместо невменяемых 8.5 часов - 15 минут. :)
Я давно подозревал, что cursor.executemany плохой путь для массовой вставки данных в таблицы, во всяком случае для постгрес. Но поскольку реальными миллионами строк мне надо оперировать раз в полгода, я валил все на "тупой питон".
Нет, тупой я и те кто пишет мануалы по питону. Оказывается, решение есть и оно в 35 раз (!) быстрее. Но надо было закопаться в глубину.
Встречайте, метод execute_values:
from psycopg2.extras import execute_valuesМассив данных для него делается такой же как для executemany (массив строк), но синтаксис отличается (смотрите на нижней картинке), курсор это параметр функции и values всегда одиночный %s.
Разница в быстродействии записи налицо (верхний слайд). Таблица на 10 млн строк копируется вместо невменяемых 8.5 часов - 15 минут. :)
Об "утечке" из Clubhouse.
База аккуратная, дубликатов и битых записей нет. В оперативном смысле интереса не представляет, поскольку не содержит никакой чувствительной информации. Статистика на картинке.
Поля: User ID, Name, Photo URL, Username, Twitter account, Instagram account, Number of followers, Number of people followed by the user, Account creation date, Invited by user profile ID.
Единственное интересное, что можно с ней сделать - создать и визуализировать граф социальных взаимодействий по приглашениям. Граф почти цел и на 84% содержится в базе.
Формат файла - Sqlite3.
P. S. И да, уважаемые журналисты. Прекратите пожалуйста называть результаты примитивного сбора открытой информации в соцсетях "хакеры взломали", "масштабная утечка пользовательских данных" и прочими страшными словами :)
База аккуратная, дубликатов и битых записей нет. В оперативном смысле интереса не представляет, поскольку не содержит никакой чувствительной информации. Статистика на картинке.
Поля: User ID, Name, Photo URL, Username, Twitter account, Instagram account, Number of followers, Number of people followed by the user, Account creation date, Invited by user profile ID.
Единственное интересное, что можно с ней сделать - создать и визуализировать граф социальных взаимодействий по приглашениям. Граф почти цел и на 84% содержится в базе.
Формат файла - Sqlite3.
P. S. И да, уважаемые журналисты. Прекратите пожалуйста называть результаты примитивного сбора открытой информации в соцсетях "хакеры взломали", "масштабная утечка пользовательских данных" и прочими страшными словами :)
Прекрасный Эшу наконец-то взялся за свой канал. Тяжёлый энтерпрайз, scalability, вычисления реального времени и конечно же умучаные крысы (все живы, ну почти). Основной язык - c#. Рекомендую.
Telegram
Эшу быдлокодит
Палантир. Часть 1. Начинаю серию постов по изученным мной в процессе разработки сборщика данных с телеграма техническим нюансам.
#палантир@eshu_coding
Как уже было сказано, мной используется схема master - slave. Для связи между ними вместо традиционных…
#палантир@eshu_coding
Как уже было сказано, мной используется схема master - slave. Для связи между ними вместо традиционных…
Я обещал не писать про Навального до окончания цирка со сбором 500к подписей, но не могу пройти мимо.
У Лени утекла вся база email-ов подписавшихся. Вместе с временем регистрации и временем подтверждения почты. Поэтому сейчас будет пара постов.
Да, база настоящая. У меня есть данные наблюдения за сервером с 9 утра 24 марта по сейчас. В базе все регистрации с 22 марта по 2 апреля.
На картинках два графика: по данным моих наблюдений (верхний) и по почтовой базе после чистки её от явных ботов (нижний).
ТТХ базы:
529 570 адресов.
Подтвержденных 447 880.
14 301 адрес с 61 домена ботнетов.
370 грубых ботов мэйлрушечки, на которых жаловался Лёня.
Итого: 433 209 условно живых.
Почему условно? Потому что накручивали все, кому не лень и очень разными алгоритмами. Тонкие вычищать без логов сервера проблематично, а мелкие ручные накрутки - невозможно. Оценка близкая к реальности будет ~300к человек.
P. S. Базу и немного своего быдлокода положу в комментах.
P. P. S. Ни о каких "70% ботов" речь не идёт, это ложь.
У Лени утекла вся база email-ов подписавшихся. Вместе с временем регистрации и временем подтверждения почты. Поэтому сейчас будет пара постов.
Да, база настоящая. У меня есть данные наблюдения за сервером с 9 утра 24 марта по сейчас. В базе все регистрации с 22 марта по 2 апреля.
На картинках два графика: по данным моих наблюдений (верхний) и по почтовой базе после чистки её от явных ботов (нижний).
ТТХ базы:
529 570 адресов.
Подтвержденных 447 880.
14 301 адрес с 61 домена ботнетов.
370 грубых ботов мэйлрушечки, на которых жаловался Лёня.
Итого: 433 209 условно живых.
Почему условно? Потому что накручивали все, кому не лень и очень разными алгоритмами. Тонкие вычищать без логов сервера проблематично, а мелкие ручные накрутки - невозможно. Оценка близкая к реальности будет ~300к человек.
P. S. Базу и немного своего быдлокода положу в комментах.
P. P. S. Ни о каких "70% ботов" речь не идёт, это ложь.
Небольшой социальный срез по людям, подписывавшимся с рабочих почт. Места обитания сторонников.
ВШЭ - 26 человек.
Лентару, а как же без них - 70 человек.
ФБК, прям без палева. Федак это судя по всему их программист.
Российская экономическая школа - 12.
Немного внезапно - физтех, 59 человек.
И совсем смешное, болелы хоккеистов Спартака - 13.
P. S. А так же в базе содержится масса почтовых доменов из Белоруссии, Украины, Казахстана, Чехии, Германии и США. Но в сумме в них не более нескольких тысяч человек, уровень статпогрешности.
UPD: лентару все же общедоступный, а не рабочий домен, вычеркиваем.
ВШЭ - 26 человек.
ФБК, прям без палева. Федак это судя по всему их программист.
Российская экономическая школа - 12.
Немного внезапно - физтех, 59 человек.
И совсем смешное, болелы хоккеистов Спартака - 13.
P. S. А так же в базе содержится масса почтовых доменов из Белоруссии, Украины, Казахстана, Чехии, Германии и США. Но в сумме в них не более нескольких тысяч человек, уровень статпогрешности.
UPD: лентару все же общедоступный, а не рабочий домен, вычеркиваем.
Под давлением дружочков завёл себе гитхаб. Пока разбираюсь в настройках и правилах оформления.
Но мне все очень нравится. Связка PyCharm + GitHub это то что надо, чтобы навести порядок в своём говнокоде и поделиться им с миром.
Соответственно, в ближайшее время, как разберусь, туда переедет все, что выкладывалось в канале.
И выложу новое, которое сейчас проходит обкатку на проде. :)
Но мне все очень нравится. Связка PyCharm + GitHub это то что надо, чтобы навести порядок в своём говнокоде и поделиться им с миром.
Соответственно, в ближайшее время, как разберусь, туда переедет все, что выкладывалось в канале.
И выложу новое, которое сейчас проходит обкатку на проде. :)
Когда уже думаешь, что закопал стюардессу. ©
Сегодня выяснилось замечательное. Адреса редакции RT, которыми размахивают в телеге, были вкинуты в базу фбк за 4 минуты и ни один из них не был подтвержден.
Я, когда 16го разбирал базу по доменам, поставил фильтр на <10 адресов - отбрасываем, чтобы сократить потом ручной труд. И думал что адреса RT ушли под этот фильтр.
Но сегодня тема всплыла снова и я посмотрел уже конкретный домен.
Ребята, @rt_russian, это позор, если что. Оппонентов надо мочить красиво.
Сегодня выяснилось замечательное. Адреса редакции RT, которыми размахивают в телеге, были вкинуты в базу фбк за 4 минуты и ни один из них не был подтвержден.
Я, когда 16го разбирал базу по доменам, поставил фильтр на <10 адресов - отбрасываем, чтобы сократить потом ручной труд. И думал что адреса RT ушли под этот фильтр.
Но сегодня тема всплыла снова и я посмотрел уже конкретный домен.
Ребята, @rt_russian, это позор, если что. Оппонентов надо мочить красиво.
Ок. К вечеру выяснилось, что стюардессу не закопают ещё долго. Принимаю вызов и надеюсь на стойкость вас, мои читатели.
Пока я разбирался одной рукой с почтами rttv, второй рукой я давал комментарий журналистам RT.
К вечеру вышла новая статья, где я выступаю одним из экспертов.
Спасибо, теперь на RT прозвучало, что сторонники у Навального все же есть и их 300 тысяч. Да, это оценка сверху, оценку снизу сделать гораздо сложнее. Но пусть будет 200к. В этот разброс уложится реальный, математический график сбора без накруток.
Объявление для журналистов: я взрослый дядя, который давно дружит с, и ценит в реальности четвёртую власть. Поэтому с удовольствием даю комментарии и предоставляю данные всего на двух условиях:
Первое - мои слова приводятся только целиком. Если они не могут быть приведены, они не редактируются, а отменяются.
Второе - обязательное упоминание меня в качестве автора канала. Если это делается активной ссылкой, моя любовь к вам растёт по экспоненте.
Обращение к читателям: у канала нет цели, кроме как быть записной книжкой и дневником моего увлечения программированием. Поскольку я делюсь своими шишками, опытом и кодом, то мне нужны только живые и вовлеченные читатели. Если вам интересно, я рад. Когда вы используете мой код в своих проектах - счастлив.
Поэтому единственное что меня интересует, чтобы меня читало много людей, которым тоже здесь интересно. Спасибо за внимание.
Пока я разбирался одной рукой с почтами rttv, второй рукой я давал комментарий журналистам RT.
К вечеру вышла новая статья, где я выступаю одним из экспертов.
Спасибо, теперь на RT прозвучало, что сторонники у Навального все же есть и их 300 тысяч. Да, это оценка сверху, оценку снизу сделать гораздо сложнее. Но пусть будет 200к. В этот разброс уложится реальный, математический график сбора без накруток.
Объявление для журналистов: я взрослый дядя, который давно дружит с, и ценит в реальности четвёртую власть. Поэтому с удовольствием даю комментарии и предоставляю данные всего на двух условиях:
Первое - мои слова приводятся только целиком. Если они не могут быть приведены, они не редактируются, а отменяются.
Второе - обязательное упоминание меня в качестве автора канала. Если это делается активной ссылкой, моя любовь к вам растёт по экспоненте.
Обращение к читателям: у канала нет цели, кроме как быть записной книжкой и дневником моего увлечения программированием. Поскольку я делюсь своими шишками, опытом и кодом, то мне нужны только живые и вовлеченные читатели. Если вам интересно, я рад. Когда вы используете мой код в своих проектах - счастлив.
Поэтому единственное что меня интересует, чтобы меня читало много людей, которым тоже здесь интересно. Спасибо за внимание.
Telegram
RT на русском
Соратники Навального не смогли объяснить, как попали в базу данных «протестующих» имейлы известных организаций, в том числе несколько адресов RT.
Наши программисты изучили слитый в сеть архив данных и нашли подтверждение махинаций со статистикой сайта навальновцев.…
Наши программисты изучили слитый в сеть архив данных и нашли подтверждение махинаций со статистикой сайта навальновцев.…
На почитать тем, кто хочет быть серьёзным человеком модным программистом: автоматическое развёртывание своих шыдевров на серверах, средствами GitHub Actions:
https://xn--r1a.website/eshu_coding/185
Автор здесь присутствует и доступен для комментариев.
P. S. Моему уровню сложности пока хватает кнопки Deploy в PyCharm. :)
https://xn--r1a.website/eshu_coding/185
Автор здесь присутствует и доступен для комментариев.
P. S. Моему уровню сложности пока хватает кнопки Deploy в PyCharm. :)
Telegram
Эшу быдлокодит
Довольно важная и модная сейчас тема - автоматическое развертывание кода и в пределе - непрерывная поставка. После того как программист отправил несколько строк кода в репозиторий запускаются сонмы автотестов, если всё ок - строки попадают на прод или в грядущее…
Время субботнего наброса вопроса.
Скажите, а как вы на советской технике в танки гоняете (war thunder)? Ведь она же говно, лютейшее, с бронепробиваемостью в районе дна.
Я справляюсь конечно, но за счёт опыта: засады, фланговые охваты, снайперская стрельба в уязвимые места лобовой проекции.
Но. В лоб ехать на немцев/американцев в своем классе - лёгкий способ самоубийства. А на немцах можно достаточно долго продержаться в лобовой мясорубке, например, чтобы захватить единственную точку на карте.
Скажите, а как вы на советской технике в танки гоняете (war thunder)? Ведь она же говно, лютейшее, с бронепробиваемостью в районе дна.
Я справляюсь конечно, но за счёт опыта: засады, фланговые охваты, снайперская стрельба в уязвимые места лобовой проекции.
Но. В лоб ехать на немцев/американцев в своем классе - лёгкий способ самоубийства. А на немцах можно достаточно долго продержаться в лобовой мясорубке, например, чтобы захватить единственную точку на карте.