• Какие есть хранилища для логов и статистики?

    2ord
    @2ord
    ClickHouse оптимизирована по хранению скорости записи/аналитики.
    Есть также Druid.
    Ответ написан
    Комментировать
  • Какие есть хранилища для логов и статистики?

    igruschkafox
    @igruschkafox
    Специалист по сопровождению БД MS SQL
    а у меня сейчас на работе такая же фигня ....
    давайте будем применять NO SQL .... и началось....

    Ну запишешь ты 10 миллионов строк в секунду
    как ты их потом обрабатывать будешь?
    Яровая стайл?

    выход простой - писать в маленькие секционированные таблицы в которых (маленькие по времени - например данные хранить в них не более 2 недель, есть варианты где и по суткам секционированно)
    потом переключать эти таблицы в хранилище - там хранить месяца 2-3 (примерно)
    когда уже обработка вся закончилась (данные стали редко востребованными) перекидывать в долгосрочное хранение при этом грохать все индексы, включать компрессию страниц и хранить уже полгода (желательно в другой БД)
    потом эту Архивную БД бэкапить и убирать с сервера

    И правильно сказали выше
    чем больше индексов тем больше тормозят операции вставки и апдейты

    так же встречал схему где такие базы логов хранятся исключительно на отдельном сервере - а в аналитические хранилища переходят логшипингом или олвейс Он или бэк аром раз в два дня

    Не переживайте - и Монго Вы тоже можете забить инсертами, а уж Апдейты там вообщето уязвимое место (данные копируются сразу в несколько таблиц - денормализация, и что бы апдейтануть одну запись она будет искаться везде где она есть .... надеюсь понятно объяснил. А искаться блин JSONом! ) :)
    Ответ написан
    1 комментарий
  • Какие есть хранилища для логов и статистики?

    romy4
    @romy4
    Exception handler
    Отключить индексы. Это основной вид тормозов при вставке. Для поиска использовать слейв копию.
    Смотря что ищите в данных. Но может подойдёт Mongo, Redis.
    Ответ написан
    Комментировать
  • PHP или Python, что удобнее и выгоднее?

    pavel_dolinin
    @pavel_dolinin
    Для фриланса однозначно начни с PHP
    Ответ написан
    1 комментарий
  • PHP или Python, что удобнее и выгоднее?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    PHP последней актуальной релиз-версии - однозначно.
    Фреймворк: yiiframework.com
    Ответ написан
    7 комментариев
  • В чем преимущества СУБД Oracle перед MySQL, PosgreSQL?

    sim3x
    @sim3x
    MySQL это для школьников и блокнотиков
    а еще для танчиков WoT, где варгейминг хранит 400Гб данных пользователей
    // правда не в мускуле, а марииДБ

    А яндекс уходит от Оракла на постгрес, тк оракл не дает своих исходников, а им очень хочется посмотреть почему у них все тормозит

    Тот кто дорос да уровня
    профи
    вообще очень осторожно относится к понятию
    только Х
    Ответ написан
    Комментировать
  • В чем преимущества СУБД Oracle перед MySQL, PosgreSQL?

    @Vasily_Pechersky
    Системщик с опытом
    Тут можно сказать две вещи:
    1: Как и Windows - первый, значит самый известный и все думают, что лучший .....
    2: Реально - В Oracle есть пара фишек (из тех, что я знаю), которые очень актуальны в БОЛШИХ и ОЧЕНЬ БОЛЬШИХ базах данных. К примеру - Oracle RAC - быстро разворачиваемый кластерный доступ к базе данных. Плюс оптимизация использования кучи процессоров и моря памяти.

    Так же Станислав Макаров дал очень актуальный ответ.
    Но сейчас, в связи с обилием на рынке огромного выбора технологий баз данных, которые специализируются под решение разных задач - плюсы от использования Oracle DB мне кажутся сомнительными, учитывая цены на покупку и поддержку (ценовая политика компании Очень гадкая)
    Ответ написан
    1 комментарий
  • В чем преимущества СУБД Oracle перед MySQL, PosgreSQL?

    Если без холивара - то преимущество оно всегда одно - т.к. вы платите баб$сы, то имеете возможность позвонить в саппорт 24/7 и спросить, почему не стартует сервер СУБД после ваших манипуляций с ним. Конечно, для постгреса есть EnterpriseDB, и это довольно серьезные ребята, так что все упирается, как и всегда, в опыт и доверие. Оракл - это огромные вложения в инженерные решения, многолетний опыт поддержки по всему миру ну и прочие дела. Также, как и какой-нибудь DB2, которому тоже уже 40 лет стукнуло.
    Когда вы храните в вашей БД данные стоимостью несколько миллионов долларов, становятся важны мелочи, не видные на первый взгляд - надежность восстановления после сбоев, отлаженность процедур бэкапа и восстановления, стоимость и оперативность масштабирования и еще 1000 и одна вещь.
    Ответ написан
    Комментировать
  • PHP или Java в backend ?

    tashik
    @tashik
    родной язык - PHP
    Руковожу проектами, напишу со своей колокольни: Java более энтерпрайзна, строга, красива и все такое, но на PHP стоимость часа разработки значительно дешевле, разработчиков (и неплохих, если уметь различать) найти проще, PHP развивается довольно быстрыми темпами в последние годы, у меня за плечами целая серия gov-проектов, написанных командой на PHP, и работающий от года до пяти лет (включая площадку для размещения госзаказа). Я за PHP, просто нужно уметь заставить людей писать на нем красиво. Если говорить за "конкретные аргументы": PHP "создан чтобы умирать", в этом его главный минус в плане быстродействия: на каждый запрос собирается все приложение заново: инклюдятся нужные файлы, инитятся всякие инфраструктурные классы и создается объект приложения и только потом роутится запрос. В Java объект приложения собирается один раз, при поступлении запроса мы сразу в роутинг попадаем. Условно говоря. Описала на пальцах, чтобы было понятней. НО: можно на Java кривыми ручками написать так, что весь выигрыш будет слит, а можно для пыхи найти решение, чтобы он каждый раз не умирал или умирал частично. Для работы с базой, если там не оракл, разницы особой нет. Простота использования сайта от языка программирования не зависит: это работа дизайнеров и спецов по usability
    Ответ написан
    5 комментариев
  • PHP или Java в backend ?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Работал в банке, там вся банковская финансовая система была написана на php. Ей нонстоп пользовались 20 операционисток. В минуту проходило до 1000 проводок от пользователя к нам а затем в ЦБ. Те кто знают что такое банковская CRM, представляют ее сложность.
    И все работало на ура.

    Так что не вижу разницы.
    Что нравится, на том и пишите.

    P.S.
    Сейчас под php библиотек, классов и т.д. просто немерено. Стоит только поискать на git
    Ответ написан
    1 комментарий
  • PHP или Java в backend ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну а почему только PHP или Java? Можно взять Hack как компромисс: сочетает в себе плюсы php и привносит в него строгость java.

    Ну а если серьезно... в плане безопасности разницы особо нету. В плане производительности java быстрее, но есть не нулевая вероятность что разницы особо вы не почувствуете. В плане поиска рабочей силы... Java имеет свое преимущество, ибо шансы найти разработчика который пишет ногами чуть ниже чем в случае с PHP. И последний жирный плюс в сторону Java и против PHP - инструменты разработки, библиотеки и фреймворки и хорошая культура разработки среди джавистов. В PHP все это только зарождается. Некоторых инструментов нету, некоторые пока сырые или кривые... В основном это относится к тестированию кода. Но ситуация с каждым днем улучшается.

    Но вернемся к нашим баранам. Что мы имеем из задания:
    1000 пользователей, пускай и активных, выдержит нормально написанный сайт что на php что на java. Это не хай-лоад.

    безопасность - зависит от настроек сервера. в плане PHP - при использовании PDO, prepared statements и/или нормальной ORM которая в свою очередь все это внутри использует, вероятность sql инъекций равна нулю. При использовании шаблонизаторов типа Twig вероятность XSS стремится к нулю (зависит от опыта разработчика, но экранирование вывода по умолчанию снижает вероятность ошибки). Для генерирования репортов: проще будет взять node.js, phantom.js и репорты генерить в этом добре, связав с основным приложением через какой rabbitmq/zeromq/Resque. Явно будет эффективнее и круче.
    Ответ написан
    4 комментария
  • Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Я расскажу Вам про личный опыт, без претензий на истину в последней инстанции...

    Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?
    Для человека который привык работать с реляционными БД, смириться с логикой и вообще с подобными БД - довольно сложно. Для тех, кто работает с реляционными БД профессионально - сделать это ещё сложнее...

    Если сравнивать с реляционными БД и с оглядкой на конкретно MySQL - монга идеально вписывается там, где структура данных заранее неизвестна. Тут я хотел привести пример, но не смог придумать ни одного дельного примера, после того как начал плотно работать с PostgreSQL... Давайте попробую из практики. Мы один раз применяли монгу в проекте где есть десятки и сотни тысяч товарных позиций и у каждой из них свой уникальный набор различных свойств. На основе уже имеющихся свойств, "соседних" товаров, контентщику предлагался наиболее вероятный набор параметров, которые нужно заполнить, но в любой момент он мог удалить или добавить любое поле и/или множество значений одного из них, например, "Цвет: черный, серый, фиолетовый". Всё это дело попадало под разные динамические фильтры и далее по цепочке... В то время, насколько я помню ещё не было поддержки JSONB-формата у PostgreSQL, по этому мы остановились на MongoDB. Ну и конечно же, желание "воткнуть ультра новую и модную БД в проект" сыграло свою роль...

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

    Безусловно, не редко можно встретить проекты в которых даже в реляционных БД не прописаны, например, внешние ключи и контроля целостности данных как такового нет, но обычно это происходит по следующим причинам:
    1. Очень низкая квалификация администратора БД проекта
    2. В попытке выжать из базы больше производительности, не найдя других методов оптимизации
    3. Данных настолько много, что БД/ключи - начинают "сыпаться", не редко это связано с п.1

    Так же, последние тесты показывают, что PostgreSQL почти не уступает MongoDB даже в её родной среде (на уровне данных в формате JSON). А в некоторых аспектах даже превосходит её... Подробности Вы можете увидеть на некоторых конференциях по Postgres (да, на конференциях по MongoDB, Вы вряд ли увидите, как кто-то будет рассказывать, что [их любимая] монга "хуже" некоторых других движков...). Кстати, поддержку формата JSON стандартизировали (наконец-то) на уровне SQL-стандарта (если я не ошибаюсь) и в самом ближайшем будущем, думаю стоит ожидать полноценную поддержку оного в SQL-базах, в т.ч. поддержку в бинарном виде с возможностью индексации данных (кстати, некоторые SQL-базы уже такое умеют).

    Моё понимание, ответа на вопрос, "когда действительно стоит использовать MogoDB?" звучит примерно так: Исключительно в тех случаях, когда Вы понимаете, что она станет действительно хорошим решением для поставленной задачи и сейчас и в будущем. В моей практике, таких проектов можно было бы насчитать ничтожно мало, а точнее около нуля, особенно с учётом развития некоторых современных SQL-БД и вообще направления "JSON в SQL" в целом. Но, безусловно такие проекты могут быть и есть (в данном случае, не у меня). Но, тут стоит обратить внимание на крайне важный факт - когда всплывает такой проект, что бы адекватно оценить наиболее оптимальную БД под него - нужно знать как минимум пару-тройку SQL-БД, со всеми их особенностями, достоинствами и недостатками... причем не просто "знать", а хорошо знать, "изнутри". А так же знать все характерные черты монги, а так же её особенности, достоинства и т.д. То есть, если Вы задаётесь вопросом, "а хорошо ли впишется монга в проект N?" и не можете найти на него однозначного ответа, вероятнее всего, что в долгосрочной перспективе, в "проект N" она впишется плохо.

    P.S. В заключение, хочу ещё раз напомнить, что "JSON в SQL" - активно развивается... Со всеми вытекающими.
    Ответ написан
    7 комментариев
  • Куда лучше писать логи?

    @alex_kor
    Локально пишем в json, этот json читает filebeat и шлёт в logstash, оттуда подтягиваем в elk
    Ответ написан
    Комментировать
  • Куда лучше писать логи?

    EreminD
    @EreminD
    Кое-что умею
    Ну можно поднять какой-нить rabbitMq или ActiveMq и стрелять логи туда. Или в кафку

    оттуда и выгребать логстэшэм
    https://www.elastic.co/guide/en/logstash/current/p...
    https://www.elastic.co/guide/en/logstash/current/p...
    https://www.elastic.co/guide/en/logstash/current/p...

    Для jms и кафки у log4j есть даже аппендеры свои
    https://logging.apache.org/log4j/2.0/manual/append...
    Ответ написан
    Комментировать
  • Какая должна быть правильная авторизация на php?

    Exomode
    @Exomode
    Архитектор ПО
    Лучше всего навигацию по сайту реализовывать через паттерн проектирования, например, самые классические MVC/HMVC или компонентные. Тогда у вас будет всего одна точка входа в систему и не придётся в каждом скрипте писать проверки, инклуды и тд.

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

    Чтоб сессии работали, ничего инклудить не обязательно, главное чтоб вначале скрипта всегда выполнялся session_start(). В итоге проверка отработает на всех ваших скриптах страниц, которые должны делать редирект в случае если пользователь не авторизован.
    Ответ написан
    9 комментариев
  • Чем отличаются понятия функции, процедуры и метода в программировании?

    @klim76
    android/java/sql
    тоже поучаствую :)
    функции

    в фунциональном программировании
    процедуры

    в процедурном
    метода

    в ООП
    Ответ написан
    2 комментария
  • Чем отличаются понятия функции, процедуры и метода в программировании?

    @D3lphi
    Функция - подпрограмма, выполняющая какие-либо операции и возвращающая значение.
    Процедура - подпрограмма, которая только выполняет операции, без возврата значения.
    Метод - это функция или процедура, которая принадлежит классу или экземпляру класса.
    Ответ написан
    5 комментариев
  • Как установить utf-8 в MySQL по умолчанию?

    @AlexSku
    не буду отвечать из-за модератора
    В программе MySQL Administrator исправить Latin1 на utf8.
    a9b2a3f6de4643778d9c69280d9952c6.png

    Либо запустить программу MySQL Server Config Wizard. Там на очередной странице будет выбор кодировок.
    Ответ написан
    1 комментарий
  • Как установить utf-8 в MySQL по умолчанию?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Всегда создаю БД и сразу меняю у нее на utf8_general_ci

    CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB
    Ответ написан
    2 комментария