Задать вопрос
  • Как clickhouse использует ОЗУ при обработке запроса?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Кликхаус относится к классу column-oriented dbms. Это означает что data-row как таковой отсуствует.
    Строк нет. Но есть столбцы которые хранятся физически консолидировано. И когда ты указываешь
    SELECT * то это заставляет кликхаус сделать гораздо больше действий чем надо на самом деле. В
    силу этой колоночатой организации. Сами строки - виртуальны и чтобы их сформировать кликхаус
    должен вычитать физических данных гораздо больше чем реляционка. Столбец - больше чем ячейка.

    Чтоб такая система работала эффективно ты должен ее грузить аналитическими запросами типа

    select avg(amount) from my_table;
    Тогда кликхаус сработает быстрее чем Oracle или PG. В силу этой особенности формата.

    А то что ты делаешь - экспорт во внешние файлы лучше вообще не делать. Или делать редко
    или как-то по другому. Явно это не сильная сторона такой системы.
    Ответ написан
    2 комментария
  • Как или почему загружаются и скачиваются свойства файла?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На сервере свойства файла тоже хранятся в файловой системе или в БД или по разному в зависимости от того как настроен сервер?

    HTTP протокол вообще не оперирует понятием "файл". Он обычно делает responce который может содержать
    octet-stream определенной длины. Или неизвестной длины. Этот-же Responce может хранить в себе сет атрибутов. Таких как ETag,
    Age, Accept-Range... e.t.c.

    Поэтому процесс скачивания чего-либо с интернета - это квест. Чтобы решить этот квест надо ответить на
    вопросы - какие атрибуты нам вернул HTTP responce. И какой клиент для скачивания был использован.
    Например клиентом может быть не браузер а Curl, Wget, Postman, *Downloader, Скрипт на Python
    и многое-многое другое. И все они действуют по разному. Каждый - по своему алгоритму как сделали
    создатели этих утилит.

    Сами файловые системы тоже отличаются по качеству хранения атрибутов. Например NTFS может приклеивать
    к файлу большое количество атрибутов (ACL, Подписи от антивирусов) а файловая система FAT32 имеет
    только несколько дат и фиксированное количество легаси атрибутов которые остались еще со времен MS-DOS.
    Поэтому чисто приколовшись можно копировать файлы с NTFS в FAT32 и обратно и таким образом
    стерилизовать некоторые из них.
    Ответ написан
    Комментировать
  • Почему 300 проксей проверяются так долго?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе нужно проанализировать статистику по негативным ответам проверки прокси.
    Если большая часть ответов - это socket timeout - то сделай таймаут не 5 секунд а 0.5 секунды.
    Ответ написан
    Комментировать
  • Как отвечать на данные вопросы на собеседовании?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Почему Map не реализует интерфейс Collection? Я сказал что у Collection сигнатура методов не подходит для мапы, на что получил еще один вопрос "Так почему бы, например, вместо put(key, value) не использовать add(new Entry(key, value))?

    Я не знаю кто-ж такие вопросы задает. Это вобщем не инженерные а философские вопросы.
    Можно предположить что добавление в Map - возвращает булевый результат. И мы
    по логике правильного программирование не имеем права его игнорировать.

    Про отпуск - вообще непонятно. Ну скажи дексыть всегда готов. Когда выходить. Нужна сменка? Флюрография?
    Ответ написан
    Комментировать
  • В чем проблема в коде работы с графом?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Зачем делать безсмысленный makeStep? Пускай он возвращает булево значение.

    boolean makeStep(Graph &graph, ValuesTable &table) { .... }


    Не было отрицательных свойств среди вершин - значит пускай вернет true.
    Тогда будет стоп алгоритма. И не надо будет
    делать дополнительных пере-расчетов.
    Ответ написан
    7 комментариев
  • Как создаются трансляторы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такая грамматика уже создана. Называется язык Prolog.

    Сразу скажу что сама затея создания словесных экспертных систем обречена на провал.
    Растущая комбинаторная сложность и сложность задавания вопросов этой системе
    свела на нет все усилия лет 30 назад.

    Сегодня такие системы считаются legacy, и языковые модели-чаты их полностью заметили.
    Потому что обучить модель легче чем человеку описать сет рулов. И еще все это потом протестировать.
    Ответ написан
    7 комментариев
  • Как найти точки пересечения двух многоугольников?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я обычно договаривался сам с собой что прямоугольник будет включать в себя левую и верхнюю сторону
    а правая и нижняя при этом будут считаться не входящей в его площать. На языке математики это как-то так:

    ( x1 >= x > x2, y1 >= y > y2 )

    Это дает возможновть в любых координатах в int, double e.t.c. считать плотно рядышком стоящие
    прямоугольники не пересекающимися вообще.
    Ответ написан
    Комментировать
  • Как написать данный код на с++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если этот код компилируется С++ компиллятором - то тогда нет причин для беспокойства.
    А если твой препод такой нудный - то спроси до какой степени он хочет переписывать?
    Самое простое что приходит на ум - заменть ASCIIZ строки на std::string. Попробуй везде
    сделай такое. Вот это

    void output_res(char* mas_str, int* arr, char character, int occurrences)


    заменить на

    void output_res(string mas_str, int* arr, char character, int occurrences)


    Потом strtok, strlen, printf заменить на методы string или cout.operator<< соотвественно.

    Это будет просто первая итерация рефакторинга, которая двигает этот ужас по направлению
    к красоте и феньшую. Если твой душный ментор все еще будет недоволен - то приходи назад
    будем внедрять лямбды и прочее аж до 20х плюсов.
    Ответ написан
    Комментировать
  • 5 млн файлов JSON или DB?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Файловая система - самый дешевый способ хранения инфы. Если других требований нет - почему бы и нет?
    Ответ написан
    4 комментария
  • Как вычленить из текста ФИО на python, при том что конкретных шаблонов нет?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать автоматизировать сбор фамилий и отчеств. У них вроде регулярные окончания.
    А между ними - соотв. будет имя.
    Ответ написан
  • Что не так со спектром зеленых светодиодов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно взять белый софит и поставить на него светофильтр нужного цвета.
    Ответ написан
  • Через какой алгоритм решать эту задачу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Стоя на 12 этаже можно за 1 ход попасть на 23 этах (Вверх) или на 6 этаж (Вниз).
    Стоя на 6 этаже можно за 1 ход попасть на 11 этаж (ВВ) или на 3 этах.
    (и так далее)

    Вот такой граф получается. Немного напоминает Гипотезу Коллатца. За счет минус единички
    адрес меняется четность и есть надежда что мы не зациклимся а все таки куда-то двигаемся.
    Значит можно упорным баловством с кнопками куда-то приехать.

    Вобщем нужен орграф с 70 вершинами и опционально с 2 ребрами для каждой вершины.
    Недостижимые вершины - это этажи куда нельзя будет попасть соотвественно.
    Ответ написан
    4 комментария
  • Возможно ли обучить ии играть в 3д шутеры?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В геймдеве нету проблем сделать умного бота. И ИИ здесь вобщем-то не при делах. Бот на обычной линейной логике вполне себе симулирует интеллект. Я общался недавно на эту тему с одним тех-лидом. Он говорит - что в целом для игры это не нужно ИИ. Заказчик не видит никакого резона. Игрок щас пошел глупый. Ленивый. И иногда ему надо наоборот понизить планку требований. И сделать игру комфортной. Грубо говоря бот должен быть просто пушечным мясом. И это - хороший бот.
    Ответ написан
    Комментировать
  • Как оформить сортировку по алфавиту?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужна функция предикат или перегруженный оператор сравнения. Вот посмотри как тут пишут
    https://stackoverflow.com/questions/2758080/how-to...
    Ответ написан
    3 комментария
  • Какая библиотека быстрее- tensorflow,pytoch,keras,matlab?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Matlab - это старое десктопное приложение. Оно создавалось для работы на конкретной рабочей станции
    (десктоп) и скорее всего не сможет использовать ресурсы облака или кластера. По оставшимся
    библиотекам tensorflow,pytoch,keras я не знаю. Я-бы почитал их стек технологий. Возможно они совместно
    используют общие библиотеки и тогда вопрос надо переформулировать или свести к общим зависимостям.

    Но в целом когда говорят о скорости - вопрос звучит обычно так - параллелится ли в облаке алгоритм и
    параллелятся ли данные
    . Если да - то только ваш кошелек ограничивает скорость.
    Ответ написан
  • Как сделать INSERT в две таблицы в одном запросе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты можешь открыть транзакцию и сделать два инсерта в разные таблички. И с точки зрения БД
    это будет иметь смысл атомарного действия.

    Или ты другое хотел?
    Ответ написан
    8 комментариев
  • Стоит ли хранить HTML документ в базе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Когда говорят о базе данных, то 99% имеется в виду классическая реляционная БД типа Postgres/MySQL e.t.c.
    Такие базы данных создавались для эффективного соединения кортежей и сортировок. Длина DataRow
    при этом обычно не больашя (до 8К целый блок таких строк). Эта цифра имеет корни еще в 20м веке.
    И если заставить их хранить html (обычно 5-100К) то такая деятельность может быть не очень
    удобная для БД. Это как микроскопом гвозди забивать. Очень умная система будет использоваться как
    файловое хранилище. Возникает идея - просто взять что-то ориентированное на файлы. Например S3,
    BlobStorage, GoogleDrive.
    Это было-бы дешевле с точки зрения стоимости владения и бэкап делать
    проще.

    Я понимаю что мы живем в странное время, когда вместо расчета в калькуляторе - запускают гугл или вместо
    расчета в MathCad спрашивают ChatGpt, но все-таки программист должен быть немного хозяйственник
    и должен брать простые и дешевые решения там где они достаточны.
    Ответ написан
    6 комментариев
  • Возможна ли двухфакторная авторизация, основанная только на хранении пароля в голове?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Многофакторка как раз и создана чтобы повысить безопасность на базе
    имеющихся тенических средств (телефоны и аппаратные генераторы ключей).

    Твоя идея о существовании некого спасательного ресурса в сети - работать по старой схеме
    не выдерживает проверки на безопасность. Подумай сам как ты будешь отменять или опровергать
    свою учетку если ей завладеет кто-то третий. И почитай законы Керхгофса. Там есть требование - оперативной
    замены ключа (пароля) в случае компрометации.
    Ответ написан
  • Как хранится c++ struct в памяти и как определить размер вручную?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего такого алгоритма нет. Размер структуры будет зависеть
    от разрядности платформы и от типа компиллятора и возможно от всяких
    опций типа #pragrma pack. Тоесть получается нехилый квест.

    Технически, тебе достаточно sizeof для решения твоих прикладных задач.
    Ответ написан
    1 комментарий