Аннотация Доклада «Как Стать Отличным Специалистом По Базам Данных» (Hl2018, Data Egret, Илья Космодемьянский)

Первый конспект лекций с HighLoad был воспринят положительно, поэтому продолжаю.

Для второй лекции я выбрал интересный материал, который нашел отклик и в конспектах, и в аудитории.

На мой взгляд, этот отчет может быть интересен всем, особенно новичкам.

В докладе рассматриваются следующие вопросы:

  • Кем именно мы хотим стать?
  • Нам это нужно?
  • Теоретические навыки
  • Практические навыки (технические)
  • Практические навыки (нетехнические)


Аннотация доклада «Как стать отличным специалистом по базам данных» (HL2018, Data Egret, Илья Космодемьянский)

База данных — вещь простая, но люди сложные, поэтому совет может подойти не всем.

Я сам не последовал всем советам.

Карта навыков сегодня (может измениться завтра):

Аннотация доклада «Как стать отличным специалистом по базам данных» (HL2018, Data Egret, Илья Космодемьянский)

Любая роль выигрывает от наличия навыков из смежных областей.

Облака были добавлены недавно.

Они добавляют зону ответственности за составление бюджета.



Нам это нужно?

  • Скучно точно не будет. БД интересная.

  • Пока есть данные, будут и базы данных.

    Они могут стать другими, но они обязательно будут.

  • DBA похож на сантехника, но теплый и за клавиатурой.

Получить хорошее профильное образование практически невозможно.

Нет такого образования.

Но есть университеты, которые этому хорошо учат. Но выйдя из университета, ты не станешь специалистом.

Нужно уметь быстро освоить разные профессии.

Проблемы, которые нужно уметь быстро решить (экзамен dba в идеальном мире):

  • Временно отремонтируйте базу (видно впервые).

    Непонятно в чём проблема, но всё "тормозит"

  • ?10 экзаменаторов, а еще лучше 20-30
  • 3 человека спрашивают в Slack: «Как делаЭ»
  • Еще трое по телефону
  • 1 требует залога времени
  • 3 сейчас внедряют Scrum :) (момент юмора)


Необходимые базовые знания (теория):

  • Реляционная алгебра (минимум, не более 40 часов на изучение)
  • B-дерево в разных видах и формах (глубокие знания нужны только если стоит задача написать свою базу данных)
Хорошая вводная книга: Новиков, Домбровский, настройка приложений баз данных .

Сущность : Subd — это Framework, позволяющий работать с данными:

  • Универсальный
  • Надежный
  • Продуктивно
(!) Нужно досконально знать, как оно это делает.

Практические технические навыки (!) (Важно и обязательно)

  • Управление параллелизмом
    • 2-фазная блокировка
    • Обнаружение тупиковой ситуации
    • Многоверсионное управление параллелизмом
  • Восстановление
    • Записать заранее журнал
    • Повторить
    • Отменить
  • Распределенные транзакции
    • 2-фазная фиксация
    • Распределенное восстановление
Почитайте хотя бы Википедию.

Лучшая книга — Г.

Вейкум, Г.

Воссен, «Транзакционные информационные системы: теория, алгоритмы и практика управления параллелизмом и восстановления».

Если сложно, то не обязательно читать об объектах и структурах поиска в первый раз.

Потом перечитай.



Подводные скалы

  • Не путайте 2pl и 2pc (двухфазная блокировка и двухфазная фиксация).

  • Не противопоставляйте 2pl и mvcc.
  • Это пессимистические алгоритмы планирования транзакций — они наиболее распространены, но ими мир не ограничивается.

Откажитесь от привычки читать книги и читать документацию.

Хороших книг по практике мало, они редки и недолговечны.



Как читать документацию?

Если вы хотя бы раз прочитаете документацию по каждому параметру конфига (например, postgresql.conf и т.п.

), вы станете намного круче.

Это применимо к любой базе данных.

Рекомендуем настроить себе тестовый сервер и поэкспериментировать, как на него влияют разные параметры.



Как решать проблемы

  • Реагируйте спокойно( сохранять спокойствие! )
  • Ищем причину: не настраивайте запрос/знайте свои данные! — думаем о том, как структурирован запрос, а не пытаемся решить его «в лоб»
  • Учат ( заранее ) средства диагностики (top, iostat, perf и т.д.)
  • Напишите вскрытие!


Практические нетехнические навыки:

  • Научитесь говорить, писать и читать на русском и английском языках.

  • Делайте доклады, обучайте коллег, выступайте на митапах, подавайте заявки на Highload!
  • Научитесь общаться с разработчиками (и не только с ними)
Научитесь делать все это одновременно.

Теги: #Карьера в IT-индустрии #карьера #базы данных #Администрирование баз данных #Высокая производительность #Конференции #Презентации #dba #highload #абстракт

Вместе с данным постом часто просматривают: