PDA

View Full Version : Как в базе PostGree снести руки за определенное в



FALOs
04-17-2019, 05:25 PM
Привет! Пример задачи - удалить из базы руки которые были созданы в определенную дату, но также в определенный час и минуту.
Например 15 апреля в 17:40.
Причем удалены должны быть и раздачи где Хиро отсутствовал за столом (майнинг)


Как я понимаю функционалом HM2 (Purge) такая задача невыполнима, так как самый узкий диапазон там это сутки, часы и минуты выбрать невозможно.

Т.е действовать нужно через PGAdmin и работать непосредственно с таблицами/пользовательсткими SQL запросами?

Подскажите алгоритм на примере PGAdmin и PostGre 8.4 (если немного другая версия не страшно, я не думаю что они кардинально отличаются)

Спасибо.

Sarek
04-18-2019, 01:40 AM
1) Подобная "точность прицеливания" средствами интерфейса ХМ2 неисполнима.
2) Но неисполнима она и "внешними" по отношению к интерфейсу ХМ2 средствами. Просто потому, что половина информации в базах данных ХМ2 не относится к PostgreSQL (и там не хранится). Подробнее см. здесь (http://forums.holdemmanager.com/1056-1091-1089-1089-1082-1080-1081-1092-1086-1088-1091-1084/508022-hmql-2.html#post2404792).
А поскольку данные в Postgres и в Parent тесно и неразрывно связаны и переплетены - удаление только postgres-части не приведет ни к какому другому результату, кроме неустранимой поломки базы данных. То есть, к краху\фиаско\как_там_еще_это_называется.

3) Но поскольку завершать текст положено "позитивно":
проще всего реализуемым способом получить базу данных без "лишнего" (особенно по критерию времени) является создание новой БД и импорт в нее из архивной папки только нужных оригиналов историй раздач. Благо, папка C:\HM2archive структурирована как раз удобно для поиска в ней нужных дат.

FALOs
04-18-2019, 12:21 PM
1)

3) Но поскольку завершать текст положено "позитивно":
проще всего реализуемым способом получить базу данных без "лишнего" (особенно по критерию времени) является создание новой БД и импорт в нее из архивной папки только нужных оригиналов историй раздач. Благо, папка C:\HM2archive структурирована как раз удобно для поиска в ней нужных дат.

Дьявол.
Последний ваш "позитивный" вариант был бы возможен, если бы он был автоматизирован.
Я так понимаю это должен быть некий скрипт, который вырезает в файле/наборе файлов руку с заглавием вида:
Game started at: 2019/04/16 00:20:06
и до начала следующей руки.

Возможно вы с таким сталкивались, можете что-то посоветовать? Сам я уже не программировал лет 15, явно не напишу, но может есть что-то готовое, что можно приспособить под эту задачу?

Sarek
04-18-2019, 12:39 PM
Для начала было бы неплохо сходить в архивную папку и посмотреть, как она устроена.
Если я правильно понял исходную задачу, речь пойдет о том, чтобы в отсортированном по дате\времени списке файлов историй за конкретный ДЕНЬ найти те, у которых ВРЕМЯ сохранения окажется более-менее таким, которое (не)нужно. На крайний случай - ну да, залезть внутрь файла (одного-двух) и уже пораздачно разбираться.

Ну, а о том, что делать это все стоило бы не в настоящей парке архива, а в ее копии - я не говорил, это ты сам догадался :)

FALOs
04-18-2019, 01:24 PM
Для начала было бы неплохо сходить в архивную папку и посмотреть, как она устроена.
Если я правильно понял исходную задачу, речь пойдет о том, чтобы в отсортированном по дате\времени списке файлов историй за конкретный ДЕНЬ найти те, у которых ВРЕМЯ сохранения окажется более-менее таким, которое (не)нужно. На крайний случай - ну да, залезть внутрь файла (одного-двух) и уже пораздачно разбираться.

Ну, а о том, что делать это все стоило бы не в настоящей парке архива, а в ее копии - я не говорил, это ты сам догадался :)

Ок -
1) Папка C:\HM2archive у меня пуста - всегда.
2)Пример архивной папки у меня такой:
C:\ARCHIVE\Party\2019\04\08\
там файлы весьма тяжелые - некоторые под пол мегабайта, и хранят все руки стола, скажем за 8 часов.

Да, я знаю что там руки в хронологической последовательности, но - колупать каждый файл в отдельности - это морока. Думал можно как-то автоматизировать. Тем более проблема будет повторяться - поэтому я надеялся воздействовать стразу на базу рук, а не на ее архив. Ну в целом мне ответ ясен - средствами Постгре это не сделать, т.к ХМ хранит кучу всякого "на стороне".

Sarek
04-18-2019, 01:56 PM
путь к папке архива я указывал тот, что должен быть по умолчанию.
Некоторые "креативные" пользователи - как в данном случае - его почему-то меняют, хотя смысла в том нет. ладно бы на другой диск, а так...

И, кстати, чисто любопытства для: а зачем все это? Я попытался вычислить причину, и единственная более-менее адекватная у меня получилась: это попытка утаить что-то от налоговой инспекции :p

FALOs
04-22-2019, 04:53 PM
путь к папке архива я указывал тот, что должен быть по умолчанию.
Некоторые "креативные" пользователи - как в данном случае - его почему-то меняют, хотя смысла в том нет. ладно бы на другой диск, а так...

И, кстати, чисто любопытства для: а зачем все это? Я попытался вычислить причину, и единственная более-менее адекватная у меня получилась: это попытка утаить что-то от налоговой инспекции :p

Да без проблем - На самом деле я уточнил путь, он такой: C:\Hands\ARCHIVE\Party\ у меня в эту папку (Hands) клиенты и конвертеры складывают руки, которые потом вкачивает ХМ.
Поэтому я туда в свое время и запихнул папку архива - чтобы все было в одном месте.

Как то так:
163306

Так что тут дело не в соображениях увеличения скорости и т.п. - это современный SSD диск на 512 кил, так что со скоростью все Ок, просто чтобы все было собрано в одном месте а не раскидано по разным папкам.
Думаешь, плохой вариант?

Sarek
04-23-2019, 10:48 AM
Где лежит архив - дело вкуса.
Обычные пользователи умолчаний не трогают - и это правильно.
А "креативные"... пока что-нибудь не сломалось - пусть :)