Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Базы данных - лекция13 - подведение итогов, за...

Anton
December 11, 2018

Базы данных - лекция13 - подведение итогов, за скобками

Anton

December 11, 2018
Tweet

More Decks by Anton

Other Decks in Education

Transcript

  1. Хранилище данных Google Android • Под капотом sqlite (=> миллиарды

    установок) • У каждого установленного приложения свой файл (может быть несколько) в приватном каталоге с данными где-то в /data/data/com.me.myapp/ • API — ContentProvider (не JDBC) • Внутри: SQL • Снаружи: данные адресуются по специальному URI (строка) • Позволяет делиться (шарить) данными между приложениями • Так работают адресная книга, история звонков, смс и т.п.
  2. Высоконагруженные сервисы (High load) • Искусство проектирования сервиса — универсальных

    решений нет, но есть рекомендации и инструменты • Учитывать сценарии перегрузки как допустимые технически и предусматривать реакцию • Например, отказать в обслуживании части пользователей, но не повесить весь сервис • Искать «бутылочное горлышко» • Проектировать распределение нагрузки
  3. Высоконагруженные сервисы (High load) • Технологии: СУБД плюс управление инфраструктурой

    масштабирования • (в том числе распределенные файловые системы, балансировка нагрузки, распределенные вычисления MapReduce и т.п.) • Apache Hadoop, виртуализация, AWS • www.insight-it.ru (Иван Блинков): архитектура Google, YouTube, Вк, Facebook, Twitter, Instagram • Архитектура высоконагруженных интернет-проектов prezi.com/u78sfhoemru4/presentation/ • Статьи на Хабре • Ежегодная конференция HighLoad++
  4. б/д как облачный сервис • Amazon AWS, IBM, Google, Oracle,

    Microsoft, … • Общего назначения: СУБД + аналитика + прочая инфраструктура • Специализированные: Google Analytics, Яндекс Метрика • Google firebase: облачная база для мобильных приложений (без прослойки в виде веб-приложения) • См также: Google Bigtable, ...
  5. Полнотекстовый поиск (full text search) • Спец-индексы в СУБД: Postgres,

    Mongo, … • Отдельные решения: Sphynx, Elastic search, ... • AWS elastic search (облачный вариант) • [?]… • Проблемы: сделать хотя бы «как в гугле» (искать словоформы, ранжирование по релевантности и контексту, ...)
  6. СУБД PostgreSQL • Высокопроизводительные (vs высоконагруженные) системы • SQL strikes

    back (vs NoSQL) • SQL JSON (в стандарте с 2016 года) • Расширяемая архитектура • Расширения — типы данных • Расширения — индексы • Расширения — языки для встраиваемых процедур • Обратить внимание: следить за коннектами (шаблон проектирования «сonnection pool» / модуль pg_bouncer)
  7. Постгрес в России (2018-2019) • Оракл сворачивает сотрудничество с компаниями

    из санкционных списков (самые вкусные клиенты), Майкрософт на подходе • Постгрес Профешшионал (Олег Бартунов, Иван Панченко, Федор Сигаев, Александр Коротков) — группа разработчиков Постгрес, компания зарегистрирована в России • Постгрес включен в список «отечественного ПО» • Есть версия, получившая сертификат ФСТЭК
  8. Постгрес в России (2018-2019) • Команда играет заметную роль в

    разработке международного проекта PostgreSQL (индексы, полнотекстовый поиск, SQL JSON) • Да и PostgreSQL влияет на мировые тренды СУБД (SQL JSON) • Для преподавателей: образовательные программы, книги, темы проектов • Для студентов: темы проектов, стажировка, проекты Google summer of code
  9. • Купите книжку по SQL, поупражняйтесь с запросами (они бывают

    многоэтажные, но их не нужно бояться) • Учитывайте архитектуру СУБД: не все корректные запросы работают одинаково быстро • Изучайте шаблоны проектирования (путь из кодера в архитекторы) • ORM — не панацея (использовать можно, но осторожно, желательно иметь возможность обойти) • Встроенные процедуры — у Постгреса можно на разных языках, в т.ч. на JavaScript (использовать можно, но тоже осторожно) • Внутренняя кухня: язык Си, индексы, математика, ИИ