Size: a a a

Обсуждения техдирские

2019 October 19

MR

Maxim Radchenko in Обсуждения техдирские
ID:
Отчётики
(фишечка из старенького)

Не такая уж и редкая ситуация, когда бизнесу надо построить сложные отчёты на основе, например, списка пользователей сервиса (100k+). Отчёты обычно просят не самые простые как раз потому, что самостоятельно бизнес и не может сам сделать.

Отвлекать основную команду, каждый член которой имеет довольно узкую специализацию, - и не всегда удобно и не всегда есть время. А отчётики зубодробительные нужны вчера.

Для ускорения процесса было бы идеально или запихать всё в Excel (лучше конечно заюзать Excel Power Pivot, подсказывает Иван Повстен) и отдать задачку на какой-нибудь фриланс-бирже, чтобы из данных сформировали всё, что надо. В принципе там за 1-3 тысячу рублей и за несколько часов вполне реально получить практически любого коня с перламутровыми пуговицами. Экономия громадная, - и на времени и на бабле.

Есть одна загвоздка, - данные в отчётиках обычно под NDA и привлечь левого человека за копейки хоть и очень хочется, но вообще нереально. А дать задачу без данных без толку, - исполнитель не въедет в контекст и процесс дебага с ним превратится в мучение на много недель, что полностью аннулирует все бенефиты. Это, кстати, одна из главных причин, почему очень сложно аналитикам устроиться на удалённую рабоу, так как они работают с очень чувствительными данными.

Industry best practice заключается в подходе к этой задаче на основе работы с обезличенным данными. Тестировщики и разработчики должны работать с синтезированными данными, а для воспроизведения багов использовать обезличенные точечные дампы клиентов, переносимых из продакшна на отдельно стоящие стенды. Сама обфускация строится их таким образом, чтобы они вышли из под NDA, но пользоваться ими исполнитель уже смог.

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

Вот пример исходной таблички:
 Номер клиента   Номер заказа    Клиент  Номер ДС        Состояние
83753   31295   Дина Варава     89996748        Передано на Почту России
83744   39212   Алекс Гузик     89995484        В доставке
707610359       707610359       Аникина Дарья   89993430        Передано на Почту России
657597666       657597666       Коломийчук Денис        89993422        Передано на Почту России
83736   31286   Николай Бочкарев        89993075        Передано на Почту России
66533   31184   Фёдор Замятин   89992572        Передано на Почту России
66533   31284   Фёдор Замятин   89213242        Передано на Почту России

А вот результат обфусцирования:
 Kwsjq tacoocb   Fwnod cysvmf    Itutvs  Humly IY        Ltqreflvd
22776   64670   Uhov Dkoirq     34355175        Svionxkd jw Hitlo Icsjou
21261   74885   Npopm Ktdpk     63688838        W xxwmmehl
444805037       533302151       Almsbsw Hbbtn   50672520        Svionxkd jw Hitlo Icsjou
038783307       867483713       Welvjfxjwa Pqcrp        53311325        Svionxkd jw Hitlo Icsjou
17233   73463   Numgvco Mgxoekph        34871684        Svionxkd jw Hitlo Icsjou
18743   55506   Beyta Bkecibq   02342714        Svionxkd jw Hitlo Icsjou
18743   62415   Beyta Bkecibq   68851814        Svionxkd jw Hitlo Icsjou

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

Вот скриптик для обфусцирования csv на Python: https://ctorecords.shortcm.li/obfuscate (есть на других языка: php, perl. На днях выложу вариант для node.js и go).

UPDATE от Андрея Копейко для тех, кто не хочет мелочиться: тулза сразу для обфускации сразу всей бд на постгре https://gitlab.com/dalibo/postgresql_anonymizer
"я придумал" звучит гордо, конечно, но постройка отчетов на обезличенных данных - industry best practice, если делать это не на коленке.
А еще и тест-кейсы для них писать нужно, чтобы уменьшить количество ошибок 😉
источник

DS

Dmitry Simonov in Обсуждения техдирские
Maxim Radchenko
"я придумал" звучит гордо, конечно, но постройка отчетов на обезличенных данных - industry best practice, если делать это не на коленке.
А еще и тест-кейсы для них писать нужно, чтобы уменьшить количество ошибок 😉
Спасибо! 🙏 Поправил!
источник

ИП

Иван Повстен in Обсуждения техдирские
ID:
Отчётики
(фишечка из старенького)

Не такая уж и редкая ситуация, когда бизнесу надо построить сложные отчёты на основе, например, списка пользователей сервиса (100k+). Отчёты обычно просят не самые простые как раз потому, что самостоятельно бизнес и не может сам сделать.

Отвлекать основную команду, каждый член которой имеет довольно узкую специализацию, - и не всегда удобно и не всегда есть время. А отчётики зубодробительные нужны вчера.

Для ускорения процесса было бы идеально или запихать всё в Excel (лучше конечно заюзать Excel Power Pivot, подсказывает Иван Повстен) и отдать задачку на какой-нибудь фриланс-бирже, чтобы из данных сформировали всё, что надо. В принципе там за 1-3 тысячу рублей и за несколько часов вполне реально получить практически любого коня с перламутровыми пуговицами. Экономия громадная, - и на времени и на бабле.

Есть одна загвоздка, - данные в отчётиках обычно под NDA и привлечь левого человека за копейки хоть и очень хочется, но вообще нереально. А дать задачу без данных без толку, - исполнитель не въедет в контекст и процесс дебага с ним превратится в мучение на много недель, что полностью аннулирует все бенефиты. Это, кстати, одна из главных причин, почему очень сложно аналитикам устроиться на удалённую рабоу, так как они работают с очень чувствительными данными.

Industry best practice заключается в подходе к этой задаче на основе работы с обезличенным данными. Тестировщики и разработчики должны работать с синтезированными данными, а для воспроизведения багов использовать обезличенные точечные дампы клиентов, переносимых из продакшна на отдельно стоящие стенды. Сама обфускация строится их таким образом, чтобы они вышли из под NDA, но пользоваться ими исполнитель уже смог.

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

Вот пример исходной таблички:
 Номер клиента   Номер заказа    Клиент  Номер ДС        Состояние
83753   31295   Дина Варава     89996748        Передано на Почту России
83744   39212   Алекс Гузик     89995484        В доставке
707610359       707610359       Аникина Дарья   89993430        Передано на Почту России
657597666       657597666       Коломийчук Денис        89993422        Передано на Почту России
83736   31286   Николай Бочкарев        89993075        Передано на Почту России
66533   31184   Фёдор Замятин   89992572        Передано на Почту России
66533   31284   Фёдор Замятин   89213242        Передано на Почту России

А вот результат обфусцирования:
 Kwsjq tacoocb   Fwnod cysvmf    Itutvs  Humly IY        Ltqreflvd
22776   64670   Uhov Dkoirq     34355175        Svionxkd jw Hitlo Icsjou
21261   74885   Npopm Ktdpk     63688838        W xxwmmehl
444805037       533302151       Almsbsw Hbbtn   50672520        Svionxkd jw Hitlo Icsjou
038783307       867483713       Welvjfxjwa Pqcrp        53311325        Svionxkd jw Hitlo Icsjou
17233   73463   Numgvco Mgxoekph        34871684        Svionxkd jw Hitlo Icsjou
18743   55506   Beyta Bkecibq   02342714        Svionxkd jw Hitlo Icsjou
18743   62415   Beyta Bkecibq   68851814        Svionxkd jw Hitlo Icsjou

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

Вот скриптик для обфусцирования csv на Python: https://ctorecords.shortcm.li/obfuscate (есть на других языка: php, perl. На днях выложу вариант для node.js и go).

UPDATE от Андрея Копейко для тех, кто не хочет мелочиться: тулза сразу для обфускации сразу всей бд на постгре https://gitlab.com/dalibo/postgresql_anonymizer
После появления excel power pivot это все стало рудиментом
источник

ИП

Иван Повстен in Обсуждения техдирские
максимум, что мне приходилось запихивать в него  - 23 млн строк, весь расчет был в ральном времени
источник

DS

Dmitry Simonov in Обсуждения техдирские
Иван Повстен
максимум, что мне приходилось запихивать в него  - 23 млн строк, весь расчет был в ральном времени
Ого!
источник

ИП

Иван Повстен in Обсуждения техдирские
там вообще была веселуха - SAP BI на HP superdome  не мог толком посчитать
источник

ИП

Иван Повстен in Обсуждения техдирские
а HP ENVY и эксель - мог
источник

ИП

Иван Повстен in Обсуждения техдирские
я тогда впервые почувствовал необходимость 4k дисплея на ноутбуке
источник

ИП

Иван Повстен in Обсуждения техдирские
потому что правка эпического отчета прямо на ноуте в режиме реаьного времени очень помогла бизнесу
источник

DS

Dmitry Simonov in Обсуждения техдирские
А какой ноут?
источник

ИП

Иван Повстен in Обсуждения техдирские
hp envy i7 с 16 гб
источник

ИП

Иван Повстен in Обсуждения техдирские
это еще на 2х ядрах
источник

DS

Dmitry Simonov in Обсуждения техдирские
Похоже мне пора обновить себе ноут
источник

ИП

Иван Повстен in Обсуждения техдирские
Dmitry Simonov
Похоже мне пора обновить себе ноут
ну новые ноуты с 6-8 ядрами = это полноценный мобильный сервер
источник

ИП

Иван Повстен in Обсуждения техдирские
ценник стартует с 70 000
источник

ИП

Иван Повстен in Обсуждения техдирские
сам ноут весит  два кг
источник

ИП

Иван Повстен in Обсуждения техдирские
его БП - еще кило
источник

Г

Георгий in Обсуждения техдирские
Макбук не такой. Весит чуть больше килограмма
источник

MR

Maxim Radchenko in Обсуждения техдирские
Иван Повстен
После появления excel power pivot это все стало рудиментом
Ну, иногда и его возможностей не хватает. Мы писали свой add-on к excel (на .NET это оказалось не очень сложно),  который забирает данные с листа, проводит вычисления, и вываливает результаты на другую страницу.
источник

ИП

Иван Повстен in Обсуждения техдирские
Георгий
Макбук не такой. Весит чуть больше килограмма
Маки слабенькие
источник