Résumé du rapport «Comment devenir un spécialiste sympa des bases de données» (HL2018, Data Egret, Ilya Kosmodemyansky)

Les premières notes de cours avec HighLoad ont été accueillies positivement, alors je continue.

Il a choisi un matériau intéressant comme deuxième conférence, qui a trouvé une réponse à la fois dans le synopsis et dans la salle. À mon avis, ce rapport peut intéresser tout le monde, en particulier les spécialistes novices.

Le rapport abordait les questions suivantes:

  • Que voulons-nous devenir exactement?
  • En avons-nous besoin?
  • Compétences théoriques
  • Compétences pratiques (techniques)
  • Compétences pratiques (non techniques)

image

Une base de données est une chose simple, et les gens sont compliqués, donc les conseils peuvent ne pas convenir à tout le monde.

Il n'a pas suivi tous les conseils.

Carte des compétences aujourd'hui (demain peut changer):

image

Tout rôle est utile pour avoir des compétences dans les régions voisines.

Des nuages ​​ont été ajoutés récemment. Ils ajoutent un domaine de responsabilité pour la budgétisation.

En avons-nous besoin?


  • Ce ne sera certainement pas ennuyeux. DB est intéressant.
  • Tant qu'il y aura des données, il y aura des bases. Ils peuvent devenir différents, mais ils le seront certainement.
  • DBA - comme un plombier, mais chaleureux et derrière le clavier.

Il est presque impossible d'obtenir une bonne éducation de profil. Il n'y a pas une telle éducation. Mais il y a des universités qui enseignent bien cela. Mais en quittant l'université, vous ne deviendrez pas un spécialiste.

Vous devez être en mesure d'apprendre rapidement différentes professions.

Tâches à résoudre rapidement (examen dans un monde idéal sur dba):

  • Fixez la base pour le temps (vue pour la première fois). Ce que le problème n'est pas clair, mais tout "ralentit"
  • Examinateurs 10, et de préférence 20-30
  • 3 demandez «comment»
  • Trois de plus par téléphone
  • 1 nécessite de réserver du temps
  • 3 Présentez Scrum en ce moment :) (un moment d'humour)

Connaissances de base requises (théorie):


  • Algèbre relationnelle (minimum, pas plus de 40 heures pour étudier)
  • Arbre B sous différents types et formes (une connaissance approfondie n'est nécessaire que si la tâche consiste à écrire votre propre base de données)

Un bon livre d'introduction: Novikov, Dombrowski, mise en place d'applications de base de données .

La conclusion : Sub est un Framework qui vous permet de travailler avec des données:
  • Universellement
  • Fiable
  • Productivement

(!) Comment ça marche - vous devez savoir à fond.

Compétences techniques pratiques (!) (Important et nécessaire)


  • Contrôle d'accès simultané
    • Verrouillage 2 phases
    • Détection de blocage
    • Contrôle d'accès simultané à plusieurs versions

  • Récupération
    • Écrire le journal à l'avance
    • Refaire
    • Annuler

  • Transactions distribuées
    • Validation en 2 phases
    • Récupération distribuée


Lisez le wikipedia minimum. Meilleur livre - G. Weikum, G. Vossen, Tranactional Informatino Systems: Theory, Algorithms, and the Practice of Concurrencty Control and Recovery.
Si c'est difficile, pour la première fois, vous ne pouvez pas lire sur les objets et les structures de recherche. Relisez ensuite.

Pièges


  • Ne confondez pas 2pl et 2pc (blocage en deux phases et validation en deux phases).
  • Ne contrastez pas 2pl et mvcc.
  • Ce sont des algorithmes pessimistes de délestage des transactions - ce sont les plus courants, mais le monde ne s'y limite pas.

Je suis sevré pour lire des livres et lire de la documentation. Les livres de bonnes pratiques sont rares, rares et à jour.

Comment lire la documentation?


Si vous lisez la documentation de chaque paramètre de configuration au moins une fois (par exemple, postgresql.conf, etc.), vous deviendrez beaucoup plus cool. Cela s'applique à toute base de données.
La recommandation est de vous procurer un serveur de test et d'expérimenter comment différents paramètres l'affectent.

Comment résoudre les problèmes


  • Restez calme ( restez calme! )
  • Vous cherchez une raison: ne pas régler la requête / connaître vos données! - Nous réfléchissons à l'organisation de la demande, mais n'essayons pas de la résoudre «front»
  • Apprenez ( à l'avance ) les outils de diagnostic (top, iostat, perf, etc.)
  • Écrivez post mortem!

Compétences pratiques non techniques:


  • Apprenez à parler, écrire et lire le russe et l'anglais
  • Faites des présentations, enseignez à vos collègues, parlez lors de réunions, allez sur Highload!
  • Apprenez à communiquer avec les développeurs (et pas seulement avec eux)

Apprenez à faire tout cela en même temps.

Source: https://habr.com/ru/post/fr429508/


All Articles