• Почему PostgreSQL ругается?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А почему PostgreSQL не должен ругаться на диалект DB2? Разные СУБД, разные диалекты. Не всё, что возможно в одной СУБД, напрямую переносится в другую.
    Хотите, чтобы запросы работали везде более-менее одинаково - используйте подмножество ANSI (SQL-89 или SQL-92). Хотите переносить нативные запросы из одной СУБД в другую - изучайте обе и ищите аналоги команд/функций/опций.
    Ответ написан
    Комментировать
  • Возможно ли учить два языка программирования одновременно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да можно. Но что ты напишешь в резюме? Обычно выделяется какой-то ключевой тег. Например С++ разработчик для геймдева. Это понятно. Или фронт-енд со знанием Angular/React/Node. И рекрутер точно понимает что человек профилирован.

    Если распыляться 50 на 50 то на собеседовании ты так и не сможешь ответить все таки на какую позицию идешь. В 2000-е когда я оканчивал универ было модно писать в резюме все подряд. Писали чертовщину. C++/Photoshop/3Dmax/CorelDraw/Сисадмин Unix и еще и паяльником умелец. Тоесть складывалось ощущение что нанимают разнорабочего который и мусор убирает и гипсокартон и плитку...
    Ответ написан
    2 комментария
  • Возможно ли учить два языка программирования одновременно?

    @gsaw
    Возможно все, если есть достаточно времени.

    Сам язык познать не трудно. Трудно разобраться во все, что вокруг. Библиотеки, методики, среды. Чистый javascript и С++ никому не нужны, нужны практические навыки применения. Для этого надо много практики, теоретически это все не усвоишь. А для практики нужно время.

    Лучше сконцентрироваться для начала на чем то одном.
    Ответ написан
    Комментировать
  • Какой можно применить алгоритм для хранение индекса для 50 миллиардов записей в golang?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Такой спор с мозговыносящими технологиями, аж помутнело всё.

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

    Простейший способ - взять пару букв того, пару букв этого и этого, слепить вместе. Получится группа. Группу (все записи разделенные переносом строки) положить в файл с именем "(парубукв_source)(парубукв_id)(парубукв_subid).txt". На сами группы запомнить по принципу "группа такая - знач файл такой". В вышеуказанном случае имя файла именно это и делает.

    Во время поиска в твоем случае условий "больше" "меньше" нет совсем, только равно. Знач прям из поисковой команды выдергиваем чему равно, лепим вместе, получаем одну или более групп, ищем в файлах групп.

    И да, нет смысла делать индекс на 60 букв, потому что айдишник уникален. Получится 50 миллиардов записей и из них 50 миллиардов групп. Это не имеет смысла. Смысл в том чтобы 50 миллиардов оказались в 10 тысячах групп, и при поиске пришлось просмотреть не 50 миллиардов, а пару групп. Учитывая что ты работаешь с айдишниками, то скорее всего ты будешь вязать одну запись, то есть группа вообще будет одна.

    Если это будет массовая привязка то условие будет через ИЛИ соединено, и вот для каждого условия группа будет или несколько. Получаем массив групп. Проходим по ним, в этих файлах ищем то что искали, на остальные файлы забиваем.

    "Переиндексирование" - по одной или всё вместе. По одной - находим в группах, удаляем из групп. Все вместе - создаем соседнюю папку для index_2, делаем, удаляем старую папку, переименовываем новую на место старой. Так даже в elastic делается, там "переиндексирование" - это создание нового индекса и снос старого.

    Чем более твои айдишники уникальны, тем сложнее это группировать, тем меньше смысла от индекса. Возвращаемся к самой задаче. 200 тысяч в день записей появляется. Это какая машина в день сама столько делает? Если машин несколько, то машина (её номер) - тоже группа, уменьшит уже на порядок, но скорее всего нет, т.к. в условии поиска номер машины не будет важен. Если одна машина всё это делает, можно критерий какой-то добавить, а хоть бы "день когда добавилось", или "тип записи" (это всё имеет смысл, если данные все настолько уникальные, что прям их никак не сгруппировать). Если критерий не добавить вообще никак - знач как описал ранее - лепи пару букв из тех полей, по которым будешь искать.

    ps. есть вероятность, что "не используйте базу данных" имеется в виду "code first" - напишите на объектах, чтобы мы потом сами бд выбрали, а не сделайте "без бд".
    Ответ написан
    2 комментария
  • Сильно ютуб грузит процессор и почему?

    ValdikSS
    @ValdikSS
    YouTube использует кодеки AV1 и VP9, аппаратную обработку которых ни ваша видеокарта, ни интегрированное в процессор видео не поддерживают, поэтому они декодируются на процессоре.
    Можете использовать различные ухищрения для блокирования AV1/VP9 и включения H.264, но потеряете в качестве видео.
    Ответ написан
    Комментировать
  • Отслеживание новых записей в бд в реальном времени?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Самое простое - периодический запрос клиентом обновлённой информации.
    Более сложное - websocket + вызов скрипта из БД по триггеру AFTER INSERT.
    Ответ написан
  • Почему docker контейнер с MySQL прекращает работу?

    @vitaly_il1
    DevOps Consulting
    Скорее всего, контейнер падает из-за нехватки памяти.
    Посмотрите логи VPS и  docker:
    docker logs container_id
    Ответ написан
    1 комментарий
  • Как прочитать конкретную строку в файле по её номеру(golang)?

    @calculator212
    тут можно посмотреть
    Ответ написан
    Комментировать
  • Не могу установить live server node js?

    MvcBox
    @MvcBox
    Software Engineer [C/C++/JS(for Node.js)/etc]
    npm install live-server -g
    Ответ написан
    Комментировать
  • Как оптимальнее всего отменить изменения В НЕКОТОРЫХ файлах некогда сделанного комита?

    Lynn
    @Lynn
    nginx, js, css
    git revert -n sha # sha1 коммита который нужно отменить
    git checkout HEAD file1 file2 #... файлы которые не нужно ревертить
    git commit
    Ответ написан
    2 комментария
  • Хранение множества мелких и средних файлов, как оптимально: файловая система или база данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    (файлы будут в zip архиве и архивы размером от 5 КБ до 250кб, изредка 1-2 мб)?


    Да здесь файловая система будет лучше. Zip-архив для БД будет все равно балластом. Движки БД обычно не способны загядывать внутрь сложного архива-блоба. Поэтому фаза вычитывания и распаковки все равно будет. А если такой фазы нет - то тогда и БД выглядит ненужным балластом. Ведь ее суммарная стоимость владения (TCO) всегда выше чем у файловой системы.

    Очень зрелой выглядит идея использования облачных файловых систем (Amazon S3, Azure Blob Storage) но тут надо смотреть просто в цены и в удобство поисковых операций. Например S3 вобщем то является скорее хеш-таблицей на диске чем файловой системой. Поэтому группировать файлы в фолдеры для листинга будет так себе идея. Вообще эти ФС строго расчитаны на знание path. В идеале если ваше приложение изначально знает формулу как path формируется.

    Хранить готовые файлы на сервере хочу из-за скорости. Мне кажется, что гораздо быстрее повторно скачать уже сформированный файл который хранится на сервере, чем каждый раз при скачивании файла 1. отправлять запрос к базе данных с фильтрами 2. на основе отфильтрованных данных сформировать CSV файл(ы)

    Верное направление мысли. Почитай еще как NGinx работает с атрибутами ETag, If-Modified-Since. Это потребует изменения логики клиента, но результат будет более оптимизированный чем просто даже с кешом.
    Ответ написан
    3 комментария
  • Хранение множества мелких и средних файлов, как оптимально: файловая система или база данных?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Хранить готовые файлы на сервере хочу из-за скорости. Мне кажется, что гораздо быстрее повторно скачать уже сформированный файл который хранится на сервере, чем каждый раз при скачивании файла 1. отправлять запрос к базе данных с фильтрами 2. на основе отфильтрованных данных сформировать CSV файл(ы) 3. заархивировать файл(ы) и 4. затем скачать. Или я неправильно думаю?


    правильно думаешь
    но - случаи когда "хранить не в ФС" - есть, банальные - доступ с разных серверов, там уже иногда проще запросить файл одним запросом, чем вначале запросить базу, а потом файл по микросервису или NFS, однако - и в этом случае их не хранят чисто в БД, а хранят в object store, Amazon S3 и все такое (Есть и локальное) - obj store, конечно, похоже на FS но не совсем FS - этакая смесь алгоритмов рейда, БД и микросервиса

    это я все написал к тому, что файлы ВСЕГДА хранят в FS, быстрее и наименее нагруженного решения нет,
    КРОМЕ - случаев см. выше
    Ответ написан
    1 комментарий
  • Как создать локальную базу данных?

    Adamos
    @Adamos
    файл с расширение .db

    Это, скорее всего, база SQLite.
    Ответ написан
    Комментировать
  • Ошибка RuntimeError: can't start new thread на Python (MacBook Pro M1 2020 ОЗУ 8 Гб) как настроить или обойти?

    ScriptKiddo
    @ScriptKiddo
    Попробуйте выставить параметр threads в False, чтобы грузить в один поток или числом укажите нужное количество потоков. Например: 10
    yf.download(tickers = nasdaq_tickers, period = 'max', interval = '1d', group_by = 'ticker', threads=False)
    yf.download(tickers = nasdaq_tickers, period = 'max', interval = '1d', group_by = 'ticker', threads=10)
    Ответ написан
    6 комментариев
  • Как количественно оценить соответствие системных ресурсов сервера требованиям и нагрузке расположенных на нем сайтов?

    paran0id
    @paran0id
    Умный, но ленивый
    Поставить систему мониторинга, замониторить веб-сервер, базу, и сам сервер (железо, ОС). Увидеть количество запросов по каждому сайту, время ответа, количество ошибок и прочее полезное, без чего в принципе нельзя держать продакшен. Дальше по обстоятельствам.
    Ответ написан
    Комментировать
  • Как снизить нагрузку на API?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Включите логгирование. Выясните - какие запросы чаще всего поступают, какие запросы дольше всего выполняются. Оптимизируйте.
    Следующий этап - создание очереди запросов (возможно потребуется пересмотр имеющейся архитектуры) приложения.
    Ответ написан
    Комментировать
  • Как понять основы статистики и теории вероятности?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Комментировать
  • Почему не обновляется бд на heroku?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Flask
    Седой и строгий
    А почему вы ни документацию не читаете, ни поиском не пользуетесь? Чуть ли не 9 из 10 вопросов по тегу об этом. Каждую неделю кто-нибудь спрашивает. Год за годом!
    Ответ написан
    1 комментарий
  • Вирус на WP меняет пароль админу постоянно, что делать? ничего не помогает?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    1. Остановить веб-сервер и перезагрузить хост
    2. Изолировать хост от доступа извне, перенастроить файрволл для ограничения выхода сервера в интернет (обратный шелл - гадость, которую надо ловить отдельно)
    3. Обновить wordpress на свежую версию, сохранив старый каталог в месте, недоступном для веб-сервера
    4. Создать новую базу для wordpress, сменить пароль админа и пароль доступа к БД
    5. Просмотреть changelog wordpress'a в поисках багфиксов, через которые возможен взлом сайта
    6. Просмотреть старый каталог wordpress в поисках залитого шелла, при обнаружении проанализировать, включая путь, которым он туда попал
    7. Ограничить доступ к админке wordpress средствами веб-сервера (IP, авторизация логин-пароль внутри сервера (не вордпрессная!), ещё что-нибудь, что умеете)
    8. Настроить аудит доступа к админке и fail2ban на его основе, чтобы отсечь ломающего ваш сервер
    9. Создать бэкап системы для обеспечения отката на состояние "купированная атака"
    10. Включить новый wordpress, проверить ваш доступ к нему, проверить (ожиданием и анализом логов) наличие попыток взлома
    11. В случае, если взломать новый wordpress у атакующего не получилось (по логам, по косвенным признакам, ещё как), запустить перенос данных со старого инстанса (из БД в БД), пользователей пересоздать.

    Как-то так имхо.
    Ответ написан
    Комментировать