BI experience

18 février 2013
par maryam khiali
0 Commentaires

Big data au tech.days 2013

Comme vous avez pu le remarquer, en ce moment, je n’ai pas trop le temps de poster…

Je n’ai même pas eu l’occasion d’aller aux tech.days cette année. Cependant, une personne de mon entourage sait que je m’interesse de prêt au big data et elle m’a conseillé de regarder la plénière (rubrique « revivez l’intégralité du live ») du jeudi 14 Février qui est vraiment pas mal!

Je vous laisse apprécier les 2 premières heures de la vidéo sur le sujet!

N’hésitez pas à mettre ce que vous en pensez en commentaire!

 

20 novembre 2012
par maryam khiali
1 Commentaire

Plus d’infos sur le Big data

Alors le big data c’est quoi ? C’est quand on est confronté à ces 4V :

  • Volume de données très important (structurées ou non-structurées)
  • Vitesse à laquelle les données sont générées ou sont à traiter : très rapidement ex : data de twitter ou facebook
  • Variétés des données importantes
  • Variabilités d’interprétation d’une même donnée en fonction du contexte

Pour répondre à ces problématiques, plusieurs choses sont à envisager :

  • une bonne infrastructure
  • une autre manière de stocker les données car les bases de données relationnelles arrivent à leur limite
  • une autre manière d’interroger les données car le SQL arrive à sa limite

Dans ce post je vais vous exposer la réponse de Microsoft face au big data…Enfin de ce que j’en ai compris…

Coté Infrastructure :

Pour répondre à la sollicitation du big data Microsoft propose 2 architectures en fonction de la taille de votre futur DWH et de votre besoin de calcul :

Symetric multi-processing SMP : est une architecture qui consiste à multiplier les processeurs identiques au sein d’une même machine, de manière à augmenter la puissance de calcul, tout en conservant une unique mémoire. On prendra cette offre dans le cas suivant :

  • Petit/moyen DWH
  • limité
  • traitements que l’on ne peut pas séparer

Massively Parallele Processing MPP va être conseillé pour du grid computing * (donc du calcul intensif). C’est une architecture qui consiste à multiplier le nombre de processeur ou d’ordinateur pour faire de la parallèlisations. Il y a un nœud de contrôle qui dispache ça sur n nœud de traitement et de stockage. On prendra cette offre dans le cas suivant :

  • Gros DWH
  • Besoin de Prédictif
  • gros besoin de calculs

* Grid computing (HPC server Hight performance computing) est une architecture permettant de répartir des calculs sur une ferme de serveur pour des calculs intensifs. Cette ferme peut être mise dans le Cloud computing pour payer à la demande et pas les serveurs, etc.

Exemple pour optimiser son mode de stockage pour toujours plus de de performance avec du MPP:

 

Microsoft propose 2 appliances :

  • SQL Server 2008 Fast tracks : implémentation SMP de SQL server Enterprise 2008
  • SQL server 2008R2 Parallel datawarehouse : implémentation MPP de SQL server Enterprise 2008

Une appliance est un serveur pré-calibré. Les composants sont utilisés au mieux. On arrive à prédire l’évolution de son système. (Ex : Bull qui fait livrer des serveurs avec ces appliances déjà tous configurés). Pour en savoir plus, voir cette vidéo

Coté type de stockage:

Microsoft en propose 2 types :

  • Type blob storage : pour  des données volumineuses non structurées ex : image, vidéos…
  • Type table: clés valeurs partition et clé de ligne (Pour en savoir plus aller voir un de mes posts précédent)

Coté interrogation des données :

Microsoft a misé sur l’outil Hadoop. Dans le schéma suivant vous pouvez entrevoir le chemin des données :

 

Les données sources exemple facebook, twitter, bing… sont interrogées via Hadoop par les API streaming que ces éditeurs proposent.

Ensuite quand ces données seront stockées dans des bases de données sous format type table (clés/valeurs) ou type blog, le connecteur Hadoop/SQl server permettra d’aller requêter ces données selon 2 façons :

  • Soit en requête via du Javascript ou du dotnet grâce au framework Daytona avec la méthode MAP/REDUCE
  • Soit en utilisant l’option Hive table dans Hadoop qui permettra de construire des tables virtuelles pour ensuite les interroger avec un langage tel que Scoop ou encore Pig qui ressemble un peu plus à du SQL qui lui-même sera transformer en Javascript pour interroger la base de données clés/valeurs ou blob.

Si vous aussi, vous avez assisté à des conférences sur le big data, comment y faire face, ou si vous avez déjà participé à un projet big data n’hésitez pas à partager vos opinions

D’ailleurs ce post expose les solutions que propose Microsoft  mais les solutions d’autres outils sont les bienvenus.

 

6 novembre 2012
par maryam khiali
0 Commentaires

Package SSIS bloqué

Si vous êtes dans un contexte similaire :

  • grosse volumétrie
  • SQL server 2008 (ou les connexions ADO.NET ne sont pas supportées correctement)
  • On utilise des connexions OLEDB (si on était en SQL server 2008R2 avec ADO.NET, nous n’aurions pas rencontré ce problème de package bloqué)
  • La source de données utilise la table cible. Exemple concret : Ma stratégie de chargement est la suivante : je charge une table temporaire (Temp_ma_table) avec 5 jours d’historique par exemple (car c’est une table volumineuse). Et pour charger les nouvelles lignes dans la table cible (ma_table), je fais en source une requête du type :

SELECT a.*
FROM
Temp_ma_table a
LEFT OUTER JOIN ma_table b
ON a.champ1= b.champ1 and a.champ2= b.champ2
WHERE b.champ1 is null

Et donc lors du chargement, le lot utilise la même table en lecture et en écriture. Visiblement SSIS ne monte pas toutes les lignes en mémoire mais fait du coup par coup. Donc si vous ne faites pas certains réglages, le package reste bloqué et si vous allez  sur « management studio » voir le monitoring, vous pourrez y voir dans la colonne « Blocked By » un lock de la table:

Pour éviter ces problèmes de locks et donc de package SSIS bloqué, il faut jouer sur les paramètres suivants :

  • Dans les propriétés du composant « data Flow Task » dans le control Flow, vous pouvez jouer sur les paramètres suivants :
    • DefaultBufferMaxRows : 100 000 par exemple
    • DefaultBufferSize : 104 857 600 par exemple (on a ajouté un 0)
  • Dans le Data Flow dans le composant cible il y a l’option : « Table Lock », on peut le décocher:

Alors le fait de décocher cette option n’est pas forcement conseillé mais si elle peut vous débloquer le chargement, ça vaut le coup!

Si vous avez d’autres solutions pour ces problèmes de tables locked et de packages SSIS bloqués,n’hésitez pas à nous en faire part…

 

31 octobre 2012
par maryam khiali
0 Commentaires

Reporting services : Drill Down in a Matrix or Tablix, comme dans un cube

SSRS est plutôt un outil simple. Seulement pour faire une représentation ressemblant à l’exploitation des cubes analysis services dans excel, la manipulation est sioux.

En effet, si vous ne voulez pas avoir trop de colonnes pour exploiter vos données et donc rester sur des tailles de matrix ou tablix raisonnables la manipulation n’est pas évidente.

Ci dessous 2 images du tutorial que je vous indique plus bas.

Cette première image comme vous pouvez le constater est le début d’un tableau que vous pourrez exploiter en mode drill down comme les cubes analysis services. Le seul hic, c’est que le tableau va prendre, tout de suite, beaucoup de place.

Le but est donc d’arriver à ce résultat :

Le tableau aura donc une taille raisonnable. Bref voici ce fameux tutorial que j’ai trouvé sur le net après une longue recherche.

Profitez en bien!

Si vous avez d’autres astuces pour bien présenter vos données sur SSRS n’hésitez pas à nous les faire partager avec des commentaires!!

 

26 septembre 2012
par maryam khiali
0 Commentaires

Debugger un package SSIS

Lorsqu’un package plante il existe plusieurs possibilités pour le debugger. Dans cet article vous-y trouverez une bonne explication sur ces 3  outils:

  •  le « data Viewers » : si c’est un problème de données dans le flux. Cette option nous permet de visualiser les données sans les mettre dans une table physique ou un fichier…donc bien pratique!
  • Les sorties « redirect row ou error output » qui permettent de connaitre les données qui ne passent pas dans le flux donc qui ne vont pas dans la table de destination ou dans le fichier de destination. (exemple à la sortie d’un lookup => flèche rouge)
  • Les « breakpoints » qui permettent dans la fenêtre « locals » de visualiser les valeurs des variables. Voici un article un peu plus complet sur le sujet

Il y a aussi :

  • l’onglet « progress » voir cet article en exemple vous pourrez y voir les « errors » ou encore la durée des traitements…
  • Les errors pourront aussi être retrouvées dans la fenêtre « Output »
  • Vous pouvez aussi utiliser le composant « row count » pour mettre dans une variable le nombre de lignes qui transitent et ensuite le stocker dans une table d’audit par exemple.

Lorsque l’on développe en SSIS, il faut acquérir des techniques qui permettent rapidement de comprendre pourquoi des données sont manquantes en cible ou pourquoi le package plante. Ces outils sont donc là pour nous assister alors autant les utiliser…

Et vous comment faites-vous?