Jump to content
Sign in to follow this  
Mathieu_D

Je raconte my life dans la data

Recommended Posts

redshift ils offrent l'accès a un serveur mysql et pas juste à a une base ? quand on a crée un compte RDS on partait confiant vu la kilotonne d'option et là, la douche froide à l'ouverture de l'admin :D mais on a ptet rien compris.
 

Share this post


Link to post
Share on other sites

Hm. C'est quoi l'ordre de grandeur du CA de la boîte et le nombre d'employés techniques pour avoir une idée de la solution à pousser ?

 

Si je devais le faire moi même, je partirais sur un kubernetes managé chez Ovh avec des postgresql operator. Mais ça demande de l'expérience.

C'est typiquement un boulot taillé pour kube : plein de merdes de partout à factoriser.

Share this post


Link to post
Share on other sites
il y a 10 minutes, cedric.org a dit :

Hm. C'est quoi l'ordre de grandeur du CA de la boîte et le nombre d'employés techniques pour avoir une idée de la solution à pousser ?

Concept particulier, pour l'instant la boite vit pas sur ce projet, mais je dirai 400K€ année tant que ca explose pas.
Le scaling est compliqué car vu que c'est de la compta, il faut quand même des équipes comptables pour assurer des bilans derrière. Donc l'IT n'est pas le seul goulot d'étranglement.


Donc il y a 200 clients et un seul IT guy, mon frangin, il a fait que du dev jusque la, l'infra arrive maintenant qu'il se dit que c'est pas serieux de compter sur un serveur OVH pour pas planter ses clients. Il backup ses bases avec un script à une heure d'ecart depuis des années car jusque là il n'y avait pas à s'occuper de ça au vu de l'energie a apporter dans le concept avant l'IT.

Malheureusement ils ont embauché des marketteux qui ont rien trouvé d'autre que de vendre la solution comme des petits pains, donc c'est quand même l'heure de s'assurer que l'IT crashe pas. La question c'est de savoir s'ils ont besoin d'expertise, ou si les offres de bases sont encore suffisante pour bien longtemps, après tout ca fait 2 ans que ça traine et ils ont qu'un crash d'une heure OVH ...

Merci pour le nom de la solution, ca a l'air intéressant!

Share this post


Link to post
Share on other sites

Ouais bon du stateful (database) sur du kubernetes c'est un boulot de spécialiste avec du temps dédié la dessus. C'est faussement facile. Typiquement j'ai fait ça dans ma boîte actuelle quand elle est arrivée à une petite dizaine de mecs techniques : j'ai tout pété et j'ai tout refait avec kubernetes. Du coup j'ai automatisé absolument tout : en un clic un mec a (entre autre) sa base high-availability, backup (dont PiTR) sur plusieurs datacenters, test de backup. On a des centaines des bases qui sont chacunes petites avec un total inférieur au tera (pour le relationnel seulement, le non relationnel c'est autre chose).

 

J'ai entendu beaucoup de bien du postgresql operator développé par Zalando, et c'est en fait mon objectif de dégager mon truc maison vers cette solution.

Share this post


Link to post
Share on other sites
il y a 3 minutes, cedric.org a dit :

Ouais bon du stateful (database) sur du kubernetes c'est un boulot de spécialiste avec du temps dédié la dessus. C'est faussement facile. Typiquement j'ai fait ça dans ma boîte actuelle quand elle est arrivée à une petite dizaine de mecs techniques : j'ai tout pété et j'ai tout refait avec kubernetes. Du coup j'ai automatisé absolument tout : en un clic un mec a (entre autre) sa base high-availability, backup (dont PiTR) sur plusieurs datacenters, test de backup. On a des centaines des bases qui sont chacunes petites avec un total inférieur au tera (pour le relationnel seulement, le non relationnel c'est autre chose).

 

J'ai entendu beaucoup de bien du postgresql operator développé par Zalando, et c'est en fait mon objectif de dégager mon truc maison vers cette solution.


OK. La il y a que du relationnel, si tant est que les documents additionnels ne sont là qu'en vue d'archivage. (J'imagine qu'actuellement il faut tourner des scripts quand il a besoin de lire des pdfs bancaires par exemple ) . A mon avis vu que c'est architecturé a l'arrache, y aura quand même du travail, mais ca peut être une solution intermédiaire.

Share this post


Link to post
Share on other sites
il y a 59 minutes, cedric.org a dit :

j'ai tout pété et j'ai tout refait

Léodagan, te voilà de retour ! :lol:

  • Haha 1

Share this post


Link to post
Share on other sites

J'en ai plein le cul. Il faut que je fouille une table de logs, donc un truc séquentiel par nature, dans laquelle écrit un process SSIS. Chaque appel de module correspond à une ligne de la table, on y trouve le nom du module, et on trouve aussi un intervalle de temps (sous la forme de deux datetime), un Id séquentiel, et plein d'autres colonnes... dont une censée pointer vers le module père mais qui se trouve être foireuse.

 

Comment je peux 1- reconstruire une table hiérarchique (enfant-parent) correspondant à l'arbre d'appel général des modules (il doit y en avoir une soixantaine, donc je préfère éviter de devoir le faire à la main mais ça peut tout de même être envisagé la mort dans l'âme), et 2- pour chaque ligne, trouver l'id de la ligne correspondant au module appelant (histoire d'avoir des infos utiles dans cette table) ?

 

(En temps normal je pense que j'y arriverais, mais compte tenu du niveau de connerie malfaisante de certains collègues sur un autre projet, j'ai plus tout à fait assez de neurones disponibles pour ce genre de problème). CTEs et fonctions de fenêtrage bienvenues.

Share this post


Link to post
Share on other sites
il y a une heure, Rincevent a dit :

2- pour chaque ligne, trouver l'id de la ligne correspondant au module appelant (histoire d'avoir des infos utiles dans cette table)

Hmmm, serait-ce tout simplement ceci ?

UPDATE	Tablalakon
	Set	ParentId = Max(PP.Id)
FROM	Tablalakon	As Child
Left JOIN	Tablalakon	As PP	--	PutativeParents
		ON	PP.Id < Child.Id	--	Monotononicity
        And	PP.StartDate <= Child.StartDate
        And	PP.EndDate >= Child.EndDate
;

(Cette thêta-jointure me fait frémir... personne n'a de solution avec des fonctions de fenêtrage, vraiment ?)

 

Edit : merdalafin, pourquoi c'est aligné dans l'éditeur et pas dans le post ? Pourquoi les tabs valent 4 espaces dans l'éditeur et 8 dans le post ? @Cthulhu ?

Share this post


Link to post
Share on other sites
Il y a 6 heures, Rincevent a dit :

Edit : merdalafin, pourquoi c'est aligné dans l'éditeur et pas dans le post ? Pourquoi les tabs valent 4 espaces dans l'éditeur et 8 dans le post ? @Cthulhu ?

 

Les deux ont l'air confés différemment. Je ne vois pas de moyen simple de changer ça, faudra que je me plonge dans les fichiers de conf de ckeditor à l'occasion.

 

(mais bon, mix tabs and spaces is evil ;))

Share this post


Link to post
Share on other sites
Il y a 8 heures, Cthulhu a dit :

(mais bon, mix tabs and spaces is evil ;))

De fait, je n'utilise que des tabulations.

Share this post


Link to post
Share on other sites
Il y a 23 heures, Rincevent a dit :

(Cette thêta-jointure me fait frémir... personne n'a de solution avec des fonctions de fenêtrage, vraiment ?)

Manifestement, il y a des types incapables de loguer une heure correctement (EndDate est précise à la milliseconde, mais StartDate est à la seconde, WTF), ça fait que certaines lignes empiètent les unes sur les autres de manière débile. Du coup j'ai tenté d'ajouter une clause

And	PP.Name <> Child.Name

mais ça ne suffit pas. J'ai donc reconstitué l'arbre des appels à la main (j'ai fouillé les .dtsx en extrayant les noeuds <ExecutePackageTask><PackageName> comme une brute... et ce n'est pas un arbre, il y a deux modules distincts qui appellent le même fils. L'horreur.

 

Du coup je dois faire une chierie genre

And Exists (SELECT	1	FROM	#PackageHierarchy PH	WHERE PP.Name = PH.Parent And Child.Name = PH.Child)

ce qui est bien cradingue ; et on n'échappera pas à la complexité quadratique de la thêta-jointure (les 10000 premières lignes sortent en peut-être 5 secondes, mais les 100 dernières seules prennent une minute... j'en ai pas loin de 3 millions en tout).

 

Bref, merci à ces très chers prestataires pour leur prestation.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...