Size: a a a

2021 July 14

GP

Grigory Pomadchin in Data Engineers
думаю тут газнефть было нарицательное, ну я надеюсь;
источник

GP

Grigory Pomadchin in Data Engineers
тут очень много опытных коллег которые через много страшных вещей проходили к примеру @dartov (и пораждали не менее страшные вещи лол)
источник

N

Nail in Data Engineers
Возможно я слишком резко выразился, но пример с локальным тестированием меня не впечатлил. Хотелось бы другой пример увидеть, когда нужно прямо читать спарком с одной машины. Мне кажется это не совсем эффективно
источник

N

Nail in Data Engineers
И я не понимаю зачем такое использовать в промышленном процессе
источник

AZ

Anton Zadorozhniy in Data Engineers
у нас кстати такой инструмент был, в далекие времена до облаков: выкачивал статистику и каталог из хранилищного кластера и поднимал локально "эмулятор хранилища", против него можно было тестировать запросы на корректность и даже планы он генерировал по настоящей статистике, можно было использовать для анализа "плохих запросов"
источник

N

Nail in Data Engineers
Ну согласитесь, что стандартные практики отловят гораздо меньше ошибок чем в классической разработке. Большинство ошибок все равно ловишь на приближенных к боевым данным условиях
источник

GP

Grigory Pomadchin in Data Engineers
ну это о распределении рисков просто
стараться как можно раньше отловить хорошая практика
источник

AZ

Anton Zadorozhniy in Data Engineers
а не убили оказывается, живой
источник

N

Nail in Data Engineers
Согласен. Но к сожалению, на раннем этапе максимум что ловишь - это какие-нибудь опечатки
источник

GP

Grigory Pomadchin in Data Engineers
ну и это хорошо! компиляторы в компилируемых языках отлично с этим справляются (это аналогия с интепретируемыми и компилируемыми языками) и ‘тривиальные’ проблемы в коде помогают выловить
источник

N

Nail in Data Engineers
А если код в SQL еще сложнее
источник

N

Nikita Blagodarnyy in Data Engineers
Спарку наплевать, считаете вы денс ренк по 100 строкам или по 100 триллионам. Работать будет один и тот же код. Просто если вы тестируетесь локально и подобрали нормальный пример, вы гораздо раньше увидите, что выбрали не ту функцию и где-то денс ренк возвращает одинаковые значения, а на самом деле вам нужен был ровнумбер. Не надо ждать, пока код выкатится в среду, поднимет все контексты и заведётся.
источник

N

Nail in Data Engineers
Это хорошо, если у вас эта функция в начале трансформаций. А если тот же денс ранк после 30 джоинов и ему прилетит максимум 1 строка из начальных 100?
источник

N

Nail in Data Engineers
Что вы там поймаете
источник

N

Nail in Data Engineers
Ничего
источник

N

Nikita Blagodarnyy in Data Engineers
Во-вторых, завтра придёт стажёр Петя, поменяет пару строк, это изменит логику, и такой говнокод уедет дальше. А так его локальный верифай не пропустит.
источник

N

Nail in Data Engineers
Я к чему это всё: если у вас десктоп/мобильное/веб приложение, вы такую ситуацию отследите в 100% случаев и такого Петю поймаете. В нашем случае не факт, и 100% тестами не покроешь
источник

N

Nikita Blagodarnyy in Data Engineers
Этот вопрос сводится к подбору тестовых наборов. Если вы понимаете, как должны пройти джойны-сделайте набор так, чтобы из 100 исходных строк на выходе джойнов было 96.
источник

N

Nail in Data Engineers
Ну тут главное чтобы время потраченное на создание набора, не превысило время разработки и выкатки)
источник

AZ

Anton Zadorozhniy in Data Engineers
ну и вопрос декомпозиции, I smell god object (god query)
источник