Planet http://www.guses.org/planet/rss Les blogs des membres de l'association fr Fusion IO in a nutshell http://www.gloumps.org/article-fusion-io-in-a-nutshell-104162094.html Petit retour sur la mise oeuvre d'une carte Fusion IO sous Solaris 10x64. J'ai été amené à tester un des produit de la gamme Fusion IO pour répondre à différentes problèmatiques liées aux bases de données Oracle et Sybase (les différents tests ont été effectués avec la carte ioDrive Duo à 1,28[...] Solaris mon amour Tue, 01 May 2012 19:13:00 +0200 Cloud Computing : publication du volet 3 du Syntec Numérique https://blogs.oracle.com/EricBezille/entry/cloud_computing_publication_du_volet <p><a href="http://translate.google.com/translate?prev=hp&amp;hl=en&amp;js=y&amp;u=https%3A%2F%2Fblogs.oracle.com%2FEricBezille%2Fentry%2Fcloud_computing_publication_du_volet&amp;sl=fr&amp;tl=en&amp;history_state0=">Translate in English</a> <br /></p> <p><b style="color: #ff0000;">Une vision client/fournisseur réunie autour d'une ébauche de cadre contractuel </b><br /></p> <p>Lors de la Cloud Computing World Expo qui se tenait au CNIT la semaine dernière, j'ai assisté à la présentation du <a href="http://www.syntec-numerique.fr/Actualites/Livre-blanc-Cloud-Computing-Nouveaux-modeles">nouveau volet du Syntec numérique sur le Cloud Computing</a> et les &quot;nouveaux modèles&quot; induits : modèles économiques, contrats, relations clients-fournisseurs, organisation de la DSI. L'originalité de ce livre blanc vis à vis de ceux déjà existants dans le domaine est de s'être attaché à regrouper l'ensemble des acteurs clients (au travers du <a href="http://crip-asso.fr/">CRIP</a>) et fournisseurs, autour d'un cadre de formalisation contractuel, en s'appuyant sur le modèle <a href="http://fr.wikipedia.org/wiki/ESCM-CL">e-SCM</a>. </p> <p><b style="color: #ff0000;">Accélération du passage en fournisseur de Services et fin d'une IT en silos ?</b><br /></p> <p>Si le Cloud Computing permet d'accélérer le passage de l'IT en fournisseur de services (dans la suite d'ITIL v3), il met également en exergue le challenge pour les DSI d'un modèle en rupture nécessitant des compétences transverses permettant de garantir <a href="http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf">les qualités attendues d'un service de Cloud Computing</a> : </p> <ul> <li>déploiement en mode &quot;self-service&quot; à la demande, <br /></li> <li>accès standardisé au travers du réseau,&nbsp;</li> <li>gestion de groupes de ressources partagées,&nbsp;</li> <li>service &quot;élastique&quot; : que l'on peut faire croitre ou diminuer rapidement en fonction de la demande</li> <li>mesurable</li> </ul> <p>On comprendra bien ici, que le Cloud Computing va bien au delà de la simple virtualisation de serveurs. Comme le décrit fort justement <b>Constantin Gonzales</b> dans son blog (&quot;<a href="http://constantin.glez.de/blog/2012/02/three-enterprise-architecture-principles-building-clouds">Three Enterprise Principles for Building Clouds</a>&quot;), l'important réside dans le respect du standard de l'interface d'accès au service. Ensuite, la façon dont il est réalisé (dans le nuage), est de la charge et de la responsabilité du fournisseur. A lui d'optimiser au mieux pour être compétitif, tout en garantissant les niveaux de services attendus. </p> <p>Pour le fournisseur de service, bien entendu, il faut maîtriser cette implémentation qui repose essentiellement sur l'intégration et l'automatisation des couches et composants nécessaires... dans la durée... avec la prise en charge des évolutions de chacun des éléments.</p> <p>Pour le client, il faut toujours s'assurer de la réversibilité de la solution au travers du respect des standards... Point également abordé dans le livre blanc du Syntec, qui rappelle les points d'attention et fait un état des lieux de l'avancement des standards autour du Cloud Computing.<br /></p> <p>En vous souhaitant une bonne lecture...</p> <p><a href="http://translate.google.com/translate?prev=hp&amp;hl=en&amp;js=y&amp;u=https%3A%2F%2Fblogs.oracle.com%2FEricBezille%2Fentry%2Fcloud_computing_publication_du_volet&amp;sl=fr&amp;tl=en&amp;history_state0=">Translate in English</a> </p> Architecture and Innovation Tue, 03 Apr 2012 11:28:07 +0200 Oracle SPARC Supercluster (présentation) http://www.gloumps.org/article-oracle-sparc-supercluster-presentation-102137926.html Le 5 avril prochain Oracle France organise l'évènement : Oracle SPARC Supercluster, Performance, Souplesse et Ouverture. Le SuperCluster est une solution totalement intégrée conçue pour héberger, en mode hautement disponible et avec des performances extrêmes, vos applications, vos bases données[...] Solaris mon amour Thu, 22 Mar 2012 20:48:00 +0100 Architecture NUMA dans Solaris (10 et 11) http://www.gloumps.org/article-architecture-numa-dans-solaris-10-et-11-101506484.html <img class="imgExtraitCon" src="http://img.over-blog.com/100x100/1/86/67/12/lgroup.JPG" alt="" /> <br /> Lors des deux précédents articles (disponibles ici et là), j'ai évoqué à plusieurs reprises la notion de NUMA sans trop la détailler. NUMA (NonUniform Memory Access) est devenue l'une des architectures matérielles la plus utilisée dans la conception des serveurs. Je profite donc de cet article[...] Solaris mon amour Thu, 15 Mar 2012 17:32:00 +0100 Appel à conférences, sysadmin #4 http://blog.asyd.net/2012/02/appel-a-conferences-sysadmin-4/ <p>Bonjour à tous,</p> <p>la quatrième édition des séminaires sysadmins se tiendra les 26 et 27 avril sur Paris. Comme les précédentes éditions, une journée sera dédiée à un thème particulier et cette fois c&#8217;est autour du monitoring et métrologie. La deuxième journée n&#8217;a pas de thème spécifique, donc toute proposition est la bienvenue !</p> asyd's blog Wed, 29 Feb 2012 09:44:54 +0100 NUMA or not NUMA (pour Oracle base de données) ? http://www.gloumps.org/article-numa-or-not-numa-pour-oracle-base-de-donnees-100330295.html C'est une question que plusieurs d'entre nous (admistrateurs de base de données ou adminstrateurs systèmes) se posent. Quelques éléments de réponses évoqués dans cette article. Pour rappel, il s'agit d'une option cachée dans la base de données Oracle (_enable_NUMA_support en Oracle 11g et[...] Solaris mon amour Thu, 16 Feb 2012 08:20:00 +0100 Intimate Shared Memory (ISM) et Solaris x86 (workarounds) http://www.gloumps.org/article-intimate-shared-memory-ism-et-solaris-x86-contournements-98971510.html Après avoir rencontré quelques anomalies dans la gestion de ISM sous Solaris x86 (voir l'analyse du bug), nous allons étudier la manière de le contourner. Pour rappel le bug est le suivant : non partage de la table de pages en ISM. Les workarounds mis en oeuvre ici concernent uniquement les[...] Solaris mon amour Sun, 12 Feb 2012 15:20:00 +0100 Intimate Shared Memory (ISM) et Solaris x86 (2eme partie) http://www.gloumps.org/article-intimate-shared-memory-ism-et-solaris-x86-2eme-partie-98254778.html Continuons un peu cette formidable aventure dans la gestion de l'ISM sous Solaris x86. Dans l'article précédent, j'évoque un problème d'initialisation de l'ISM provenant des tailles de pages. Dans cet article, j'ai découvert un bug dans la gestion de l'ISM toujours sous Solaris x86. Suite à une[...] Solaris mon amour Tue, 31 Jan 2012 23:03:00 +0100 The Extreme Performance Tour (retour) http://www.gloumps.org/article-oracle-hardware-systems-the-extreme-performance-tour-resume-98057686.html Retour sur le dernier évènement Oracle The Extreme Performance Tour qui s'est déroulé le 25 janvier dernier à Paris (cet évènement se déroule dans plusieurs villes d'Europe). Dans un magnifique cadre, devant 300 invités, Oracle a réaffirmé son ambition d'innover à travers sa gamme de produits[...] Solaris mon amour Sat, 28 Jan 2012 16:32:00 +0100 Big Data : opportunité Business et (nouveau) défi pour la DSI ? https://blogs.oracle.com/EricBezille/entry/big_data_opportunit%C3%A9_business_et <p><a href="http://translate.google.com/translate?prev=hp&amp;hl=en&amp;js=y&amp;u=http%3A%2F%2Fblogs.sun.com%2FEricBezille%2Fentry%2Fbig_data_opportunit%E9_business_et&amp;sl=fr&amp;tl=en&amp;history_state0=">Translate in English</a><br /></p> <p>Ayant participé à quelques conférences sur ce thème, voici quelques réflexions pour commencer l'année 2012 sur le sujet du moment... </p> <p style="color: #ff0000;"><b>Big Data : Opportunité<u>s</u> Business</b></p> <p> </p> <p style="margin-bottom: 0cm;">Comme le souligne une étude de McKinsey (« <a href="http://www.mckinsey.com/mgi/publications/big_data/index.asp">Big Data: The next frontier for innovation, competition, and productivity</a> » ), la maîtrise des données (dans leur diversité) et la capacité à les analyser à un impact fort sur l’apport que l’informatique (la DSI) peut fournir aux métiers pour trouver de nouveaux axes de compétitivité. Pour ne citer que 2 exemples, McKinsey estime que l'exploitation du Big Data pourrait permettre d'économiser plus de <b>€250 milliards sur l'ensemble du secteur public Européen</b> (identification des fraudes, gestion et mesures de l'efficacité des affectations des subventions et des plans d'investissements, ...). Quant au secteur marchand,<b> la simple utilisation des données de géolocalisation</b> pourrait permettre un surplus global de <b>$600 milliards</b>, opportunité illustrée par <b style="color: #ffaa00;">Jean-Pierre Dijcks</b> dans son blog : &quot;<a href="http://blogs.oracle.com/datawarehousing/entry/understanding_a_big_data_implementation">Understanding a Big Data Implementation and its Components</a>&quot;. <br /></p> <p style="color: #ff0000;"><b>Volume, Vélocité, </b><b>Variété... </b></p> <p>Le &quot;Big Data&quot; est souvent caractérisé par ces 3x V : <br /></p> <ul> <li><b>Volume </b>: pour certains, le Big Data commence à partir du seuil pour lequel le volume de données devient difficile à gérer dans une solution de base données relationnelle. Toutefois, les avancées technologiques nous permettent toujours de repousser ce seuil de plus en plus loin sans remettre en cause les standards des DSI (cf: <a href="http://www.oracle.com/technetwork/database/exadata/exadata-storage-exp-rack-ds-v1-425092.pdf">Exadata</a>), et c'est pourquoi, l'aspect volume en tant que tel n'est pas suffisant pour caractériser une approche &quot;Big Data&quot;.</li> <li><b>Vélocité</b> : le Big Data nécessite donc également une notion temporelle forte associée à de gros volumes. C'est à dire, être capable de capturer une masse de données mouvante pour pouvoir soit réagir quasiment en temps réel face à un évènement ou pouvoir le revisiter ultérieurement avec un autre angle de vue.<br /></li> <li><b>Variété</b> : le Big Data va adresser non seulement les données structurées mais pas seulement. L'objectif essentiel est justement de pouvoir aller trouver de la valeur ajoutée dans l'ensemble des données accessibles à une entreprise. Et à l'heure du numérique, de la dématérialisation, des réseaux sociaux, des fournisseurs de flux de données, du Machine2Machine, de la géolocalisation,... la variété des données accessibles est importante, en perpétuelle évolution (qui sera le prochain Twitter ou Facebook, Google+ ?) et rarement structurée.<br /></li> </ul> <p> <img align="left" src="http://blogs.oracle.com/EricBezille/resource/Bigdata-V.bmp" alt="&quot;&quot;" /></p> <p style="color: #ff0000;"><b>...Visualisation et Valeur</b></p> <p>A ces 3x V qui caractérisent le &quot;Big Data&quot; de manière générale j'en ajouterai 2 : visualisation et valeur !</p> <p><b>Visualisation, </b>car face à ce volume de données, sa variété et sa vélocité, il est primordial de pouvoir se doter des moyens de naviguer au sein de cette masse, pour en tirer (rapidement et simplement) de l'information et de <b>la Valeur</b>, afin de trouver ce que l'on cherche mais aussi,... bénéficier d'un atout intéressant au travers de la diversité des données non structurées couplées aux données structurées de l'entreprise : la sérendipité ou, trouver ce que l'on ne cherchait pas (le propre de beaucoup d'innovations) ! </p> <p> Les opportunités pour le Business se situent évidemment dans les 2 derniers V : savoir visualiser l'information utile pour en tirer une valeur Business ...</p> <p> </p> <p style="color: #ff0000;"><b>(nouveau) Défi pour la DSI</b></p> <p>Le défi pour la DSI est dans la chaîne de valeur globale : savoir acquérir et stocker un volume important de données variées et mouvantes, et être capable de fournir les éléments (outils) aux métiers pour en tirer du sens et de la valeur. Afin de traiter ces données (non-structurées), il est nécessaire de mettre en oeuvre des technologies complémentaires aux solutions déjà en place pour gérer les données structurées des entreprises. Ces nouvelles technologies sont initialement issues des centres de R&amp;D des géants de l'internet, qui ont été les premiers à être confrontés à ces masses d'information non-structurées. L'enjeu aujourd'hui est d'amener ces solutions au sein de l'entreprise de manière industrialisée avec à la fois la maîtrise de l'intégration de l'ensemble des composants (matériels et logiciels) et leur support sur les 3 étapes fondamentales que constitue une chaîne de valeur autour du Big Data : <b>Acquérir, Organiser </b>et<b> Distribuer</b>.<br /></p> <ul> </ul> <ol> <li><b>Acquérir </b>: une fois les sources de données identifiées (avec les métiers), il faut pouvoir les stocker à moindre coût avec de forte capacité d'évolution (de part la volumétrie concernée et la rapidité de croissance) à des fins d'extraction d'information. Un système de grille de stockage évolutif doit être déployé, à l'instar du modèle Exadata. La référence dans ce domaine pour le stockage en grille de données non-structurées à des fins de traitement est&nbsp; <b>HDFS (Hadoop Distributed Filesystem), </b>ce système de fichiers étant directement lié aux algorithmes d'extraction permettant d'effectuer l'opération directement là où les données sont stockées.<br /><br /></li> <li><b>Organiser</b> : associer un premier niveau d'index {clé,valeur} sur ces données non-structurées avec <b>NoSQL (pour Not Only SQL)</b> . L'intérêt ici, par rapport à un modèle SQL classique étant de pouvoir traiter la variété (modèle non prédéfinie à l'avance), la vélocité et le volume. En effet, la particularité du NoSQL est de traiter les données sur un modèle CRUD (Create, Read, Update, Delete) et non pas ACID (Atomicity, Consistency, Isolation, Durability), avec ses avantages de rapidité (pas besoin de rentrer les données dans un modèle structuré) et ses inconvénients (accepter pour des raisons de capacité d'acquisition de pouvoir être amené à lire des données &quot;périmées&quot;, entre autres). Et ensuite pouvoir également extraire de l'information au travers de l'<b>opération MapReduce </b>s'effectuant directement sur la grille de données non-structurées (pour éviter de transporter les données vers des noeuds de traitement). <br /><br />L'information ainsi extraite de cette grille de données non-structurées devient une partie du patrimoine de l'entreprise et a toute sa place dans les données structurées et donc fiables et à &quot;haute densité&quot; d'information. C'est pourquoi, l'extraction d'information des données non-structurées nécessite également une passerelle vers l'entrepôt de données de l'entreprise pour enrichir le référentiel. Cette passerelle doit être en mesure d'absorber d'importants volumes d'information dans des temps très courts.<br /><br />Ces 2 premières étapes ont été industrialisées aussi bien sur la partie matérielle (grille/cluster de stockage) que logicielle (HDFS, Hadoop MapReduce, NoSQL, Oracle Loader for Hadoop) au sein de l'Engineered System d'Oracle : <a href="http://www.oracle.com/us/products/database/big-data-appliance/overview/index.html"><b>Oracle Big Data Appliance</b></a>, le référentiel de données structurées pouvant quant à lui être implémenté au sein d'<a href="http://www.oracle.com/us/products/database/exadata-database-machine/overview/index.html"><b>Exadata</b></a>.<br /> <p> </p> <br /> </li> <li><b>Distribuer </b>: la dernière étape consiste à rendre disponible l'information aux métiers, et leur permettre d'en tirer la quintessence : <b>Analyser et Visualiser</b>. L'enjeu est de fournir les capacités de faire de l'analyse dynamique sur un gros volume de données (cubes décisionnels) avec la possibilité de visualiser simplement sur plusieurs facettes. <br /><br /> <p><img width="494" height="211" src="http://blogs.oracle.com/datawarehousing/resource/BigDataPosts/bigdata_usage_endtoend.JPG" /> </p> Un premier niveau d'analyse peut se faire directement sur les données non-structurées au travers du <a href="http://www.oracle.com/us/corporate/features/features-oracle-r-enterprise-498732.html">langage R</a>, directement sur le <b>Big Data Appliance</b>.<br /><br />L'intérêt réside également dans la vision agrégée au sein du référentiel enrichi suite à l'extraction, directement au travers d'<b>Exadata</b> par exemple... ou via un véritable tableau de bord métier dynamique qui vient s'interfacer au référentiel et permettant d'analyser de très gros volumes directement en mémoire avec des mécanismes de visualisation multi-facettes, pour non seulement trouver ce que l'on cherche mais aussi découvrir ce que l'on ne cherchait pas (retour sur la sérendipité...). Ceci est fait grâce à l'identification (visuelle) d'axes de recherches que les utilisateurs n'avaient pas forcément anticipés au départ. <br /><br />Cette dernière étape est industrialisée au travers de la solution <a href="http://www.oracle.com/us/solutions/ent-performance-bi/business-intelligence/exalytics-bi-machine/overview/index.html"><b>Exalytics</b></a>, illustrée dans la vidéo ci-dessous dans le monde de l'automobile, où vous verrez une démonstration manipulant dynamiquement les données des ventes automobiles mondiales sur une période de 10 ans, soit environ 1 milliard d'enregistrements et 2 TB de données manipulées en mémoire (grâce a des technologies de compression embarquées).<br /><br /> <iframe width="420" height="315" frameborder="0" src="http://www.youtube.com/embed/oLLic4ytFsw"></iframe><br /><br /> </li> </ol> <ul> </ul> <p> </p> <p style="color: #ff0000;"><b>HSM (Hierachical Storage Management) et Big Data</b></p> <p>Pour terminer la mise en place de l'éco-système &quot;Big Data&quot; au sein de la DSI, il reste un point fondamental souvent omis : la sécurisation et l'archivage des données non-structurées. L'objectif est de pouvoir archiver/sauvegarder les données non-structurées à des fins de rejeu éventuel, et pour faire face à la croissance des volumes en les stockant sur un support approprié en fonction de leur &quot;fraîcheur&quot;.&nbsp; En effet, une grille de type Hadoop base sa sécurité sur la duplication de la données, mais si une donnée est corrompue, ses copies le sont aussi. En outre, cette grille est là pour permettre un traitement à un instant t (vélocité) sur les données, une fois ce traitement effectué, les données sur la grille sont souvent remplacées par des données plus récentes (voir l'exemple : &quot;⁞<a href="http://blogs.oracle.com/datawarehousing/entry/understanding_a_big_data_implementation">Understanding a Big Data Implementation and its Components</a>&quot; qui traite bien du cas d'usage des données liées à un contexte temporel) . Dans certains cas d'usage, il peut être intéressant de pouvoir revisiter des données capturées ultérieurement avec un autre angle d'analyse, ou pour des besoins de vérification, et dans tous les cas pour pouvoir restaurer en cas d'incident de corruption. C'est là où le couplage avec une solution de stockage hiérarchique (HSM) est indispensable pour la capture initiale des données non-structurées et leur archivage à moindre coût face aux volumétries à traiter. C'est ce que nous couvrons au travers de notre solution <a href="http://www.oracle.com/technetwork/articles/systems-hardware-architecture/optimizing-info-tiered-arch-163884.pdf">Storage Archive Manager</a> (SAM), solution d'ailleurs utilisée dans un projet &quot;Big Data&quot; français pour pouvoir archiver 1 PB de données non-structurées.<br /></p> <p> </p> <p> </p> <p style="color: #ff0000;"><b>Pour aller plus loin :</b></p> <ul> <li><a href="http://www.oracle.com/us/technologies/big-data/index.html">http://www.oracle.com/us/technologies/big-data/index.html</a><br /></li> <li><a href="http://blogs.oracle.com/datawarehousing/category/Oracle/Big+Data">http://blogs.oracle.com/datawarehousing/category/Oracle/Big+Data</a></li> <li><a href="http://blogs.oracle.com/datawarehousing/entry/understanding_a_big_data_implementation">Understanding a Big Data Implementation and its Components</a></li> <li><a href="http://www.oracle.com/us/products/database/big-data-appliance/overview/index.html">Oracle Big Data Appliance</a></li> <li><a href="http://www.oracle.com/us/products/database/exadata-database-machine/overview/index.html">Oracle Exadata</a><br /></li> <li><a href="http://www.oracle.com/us/solutions/ent-performance-bi/business-intelligence/exalytics-bi-machine/overview/index.html">Oracle Exalytics In-Memory Machine</a><br /></li> <li><a href="http://www.oracle.com/technetwork/articles/systems-hardware-architecture/optimizing-info-tiered-arch-163884.pdf">Storage Archive Manager</a></li> <p>&nbsp;Je profite de ce billet pour vous rappeler de mettre à jour votre &quot;feed reader&quot; : <a href="http://blogs.oracle.com/EricBezille/feed/entries/rss">http://blogs.oracle.com/EricBezille/feed/entries/rss</a> , avec tous mes meilleurs voeux pour 2012.</p> <p> </p> <p><a href="http://translate.google.com/translate?prev=hp&amp;hl=en&amp;js=y&amp;u=http%3A%2F%2Fblogs.sun.com%2FEricBezille%2Fentry%2Fbig_data_opportunit%C3%A9_business_et&amp;sl=fr&amp;tl=en&amp;history_state0=">Translate in English</a></p> </ul> Architecture and Innovation Wed, 11 Jan 2012 19:59:40 +0100 Big Data : opportunité Business et (nouveau) défi pour la DSI ? http://blogs.oracle.com/EricBezille/entry/big_data_opportunit%C3%A9_business_et <p><a href="http://translate.google.com/translate?prev=hp&amp;hl=en&amp;js=y&amp;u=http%3A%2F%2Fblogs.sun.com%2FEricBezille%2Fentry%2Fbig_data_opportunit%E9_business_et&amp;sl=fr&amp;tl=en&amp;history_state0=">Translate in English</a><br /></p> <p>Ayant participé à quelques conférences sur ce thème, voici quelques réflexions pour commencer l'année 2012 sur le sujet du moment... </p> <p style="color: #ff0000;"><b>Big Data : Opportunité<u>s</u> Business</b></p> <p> </p> <p style="margin-bottom: 0cm;">Comme le souligne une étude de McKinsey (« <a href="http://www.mckinsey.com/mgi/publications/big_data/index.asp">Big Data: The next frontier for innovation, competition, and productivity</a> » ), la maîtrise des données (dans leur diversité) et la capacité à les analyser à un impact fort sur l’apport que l’informatique (la DSI) peut fournir aux métiers pour trouver de nouveaux axes de compétitivité. Pour ne citer que 2 exemples, McKinsey estime que l'exploitation du Big Data pourrait permettre d'économiser plus de <b>€250 milliards sur l'ensemble du secteur public Européen</b> (identification des fraudes, gestion et mesures de l'efficacité des affectations des subventions et des plans d'investissements, ...). Quant au secteur marchand,<b> la simple utilisation des données de géolocalisation</b> pourrait permettre un surplus global de <b>$600 milliards</b>, opportunité illustrée par <b style="color: #ffaa00;">Jean-Pierre Dijcks</b> dans son blog : &quot;<a href="http://blogs.oracle.com/datawarehousing/entry/understanding_a_big_data_implementation">Understanding a Big Data Implementation and its Components</a>&quot;. <br /></p> <p style="color: #ff0000;"><b>Volume, Vélocité, </b><b>Variété... </b></p> <p>Le &quot;Big Data&quot; est souvent caractérisé par ces 3x V : <br /></p> <ul> <li><b>Volume </b>: pour certains, le Big Data commence à partir du seuil pour lequel le volume de données devient difficile à gérer dans une solution de base données relationnelle. Toutefois, les avancées technologiques nous permettent toujours de repousser ce seuil de plus en plus loin sans remettre en cause les standards des DSI (cf: <a href="http://www.oracle.com/technetwork/database/exadata/exadata-storage-exp-rack-ds-v1-425092.pdf">Exadata</a>), et c'est pourquoi, l'aspect volume en tant que tel n'est pas suffisant pour caractériser une approche &quot;Big Data&quot;.</li> <li><b>Vélocité</b> : le Big Data nécessite donc également une notion temporelle forte associée à de gros volumes. C'est à dire, être capable de capturer une masse de données mouvante pour pouvoir soit réagir quasiment en temps réel face à un évènement ou pouvoir le revisiter ultérieurement avec un autre angle de vue.<br /></li> <li><b>Variété</b> : le Big Data va adresser non seulement les données structurées mais pas seulement. L'objectif essentiel est justement de pouvoir aller trouver de la valeur ajoutée dans l'ensemble des données accessibles à une entreprise. Et à l'heure du numérique, de la dématérialisation, des réseaux sociaux, des fournisseurs de flux de données, du Machine2Machine, de la géolocalisation,... la variété des données accessibles est importante, en perpétuelle évolution (qui sera le prochain Twitter ou Facebook, Google+ ?) et rarement structurée.<br /></li> </ul> <p> <img align="left" src="http://blogs.oracle.com/EricBezille/resource/Bigdata-V.bmp" alt="&quot;&quot;" /></p> <p style="color: #ff0000;"><b>...Visualisation et Valeur</b></p> <p>A ces 3x V qui caractérisent le &quot;Big Data&quot; de manière générale j'en ajouterai 2 : visualisation et valeur !</p> <p><b>Visualisation, </b>car face à ce volume de données, sa variété et sa vélocité, il est primordial de pouvoir se doter des moyens de naviguer au sein de cette masse, pour en tirer (rapidement et simplement) de l'information et de <b>la Valeur</b>, afin de trouver ce que l'on cherche mais aussi,... bénéficier d'un atout intéressant au travers de la diversité des données non structurées couplées aux données structurées de l'entreprise : la sérendipité ou, trouver ce que l'on ne cherchait pas (le propre de beaucoup d'innovations) ! </p> <p> Les opportunités pour le Business se situent évidemment dans les 2 derniers V : savoir visualiser l'information utile pour en tirer une valeur Business ...</p> <p> </p> <p style="color: #ff0000;"><b>(nouveau) Défi pour la DSI</b></p> <p>Le défi pour la DSI est dans la chaîne de valeur globale : savoir acquérir et stocker un volume important de données variées et mouvantes, et être capable de fournir les éléments (outils) aux métiers pour en tirer du sens et de la valeur. Afin de traiter ces données (non-structurées), il est nécessaire de mettre en oeuvre des technologies complémentaires aux solutions déjà en place pour gérer les données structurées des entreprises. Ces nouvelles technologies sont initialement issues des centres de R&amp;D des géants de l'internet, qui ont été les premiers à être confrontés à ces masses d'information non-structurées. L'enjeu aujourd'hui est d'amener ces solutions au sein de l'entreprise de manière industrialisée avec à la fois la maîtrise de l'intégration de l'ensemble des composants (matériels et logiciels) et leur support sur les 3 étapes fondamentales que constitue une chaîne de valeur autour du Big Data : <b>Acquérir, Organiser </b>et<b> Distribuer</b>.<br /></p> <ul> </ul> <ol> <li><b>Acquérir </b>: une fois les sources de données identifiées (avec les métiers), il faut pouvoir les stocker à moindre coût avec de forte capacité d'évolution (de part la volumétrie concernée et la rapidité de croissance) à des fins d'extraction d'information. Un système de grille de stockage évolutif doit être déployé, à l'instar du modèle Exadata. La référence dans ce domaine pour le stockage en grille de données non-structurées à des fins de traitement est&nbsp; <b>HDFS (Hadoop Distributed Filesystem), </b>ce système de fichiers étant directement lié aux algorithmes d'extraction permettant d'effectuer l'opération directement là où les données sont stockées.<br /><br /></li> <li><b>Organiser</b> : associer un premier niveau d'index {clé,valeur} sur ces données non-structurées avec <b>NoSQL (pour Not Only SQL)</b> . L'intérêt ici, par rapport à un modèle SQL classique étant de pouvoir traiter la variété (modèle non prédéfinie à l'avance), la vélocité et le volume. En effet, la particularité du NoSQL est de traiter les données sur un modèle CRUD (Create, Read, Update, Delete) et non pas ACID (Atomicity, Consistency, Isolation, Durability), avec ses avantages de rapidité (pas besoin de rentrer les données dans un modèle structuré) et ses inconvénients (accepter pour des raisons de capacité d'acquisition de pouvoir être amené à lire des données &quot;périmées&quot;, entre autres). Et ensuite pouvoir également extraire de l'information au travers de l'<b>opération MapReduce </b>s'effectuant directement sur la grille de données non-structurées (pour éviter de transporter les données vers des noeuds de traitement). <br /><br />L'information ainsi extraite de cette grille de données non-structurées devient une partie du patrimoine de l'entreprise et a toute sa place dans les données structurées et donc fiables et à &quot;haute densité&quot; d'information. C'est pourquoi, l'extraction d'information des données non-structurées nécessite également une passerelle vers l'entrepôt de données de l'entreprise pour enrichir le référentiel. Cette passerelle doit être en mesure d'absorber d'importants volumes d'information dans des temps très courts.<br /><br />Ces 2 premières étapes ont été industrialisées aussi bien sur la partie matérielle (grille/cluster de stockage) que logicielle (HDFS, Hadoop MapReduce, NoSQL, Oracle Loader for Hadoop) au sein de l'Engineered System d'Oracle : <a href="http://www.oracle.com/us/products/database/big-data-appliance/overview/index.html"><b>Oracle Big Data Appliance</b></a>, le référentiel de données structurées pouvant quant à lui être implémenté au sein d'<a href="http://www.oracle.com/us/products/database/exadata-database-machine/overview/index.html"><b>Exadata</b></a>.<br /> <p> </p> <br /> </li> <li><b>Distribuer </b>: la dernière étape consiste à rendre disponible l'information aux métiers, et leur permettre d'en tirer la quintessence : <b>Analyser et Visualiser</b>. L'enjeu est de fournir les capacités de faire de l'analyse dynamique sur un gros volume de données (cubes décisionnels) avec la possibilité de visualiser simplement sur plusieurs facettes. <br /><br /> <p><img width="494" height="211" src="http://blogs.oracle.com/datawarehousing/resource/BigDataPosts/bigdata_usage_endtoend.JPG" /> </p> Un premier niveau d'analyse peut se faire directement sur les données non-structurées au travers du <a href="http://www.oracle.com/us/corporate/features/features-oracle-r-enterprise-498732.html">langage R</a>, directement sur le <b>Big Data Appliance</b>.<br /><br />L'intérêt réside également dans la vision agrégée au sein du référentiel enrichi suite à l'extraction, directement au travers d'<b>Exadata</b> par exemple... ou via un véritable tableau de bord métier dynamique qui vient s'interfacer au référentiel et permettant d'analyser de très gros volumes directement en mémoire avec des mécanismes de visualisation multi-facettes, pour non seulement trouver ce que l'on cherche mais aussi découvrir ce que l'on ne cherchait pas (retour sur la sérendipité...). Ceci est fait grâce à l'identification (visuelle) d'axes de recherches que les utilisateurs n'avaient pas forcément anticipés au départ. <br /><br />Cette dernière étape est industrialisée au travers de la solution <a href="http://www.oracle.com/us/solutions/ent-performance-bi/business-intelligence/exalytics-bi-machine/overview/index.html"><b>Exalytics</b></a>, illustrée dans la vidéo ci-dessous dans le monde de l'automobile, où vous verrez une démonstration manipulant dynamiquement les données des ventes automobiles mondiales sur une période de 10 ans, soit environ 1 milliard d'enregistrements et 2 TB de données manipulées en mémoire (grâce a des technologies de compression embarquées).<br /><br /> <iframe width="420" height="315" frameborder="0" src="http://www.youtube.com/embed/oLLic4ytFsw"></iframe><br /><br /> </li> </ol> <ul> </ul> <p> </p> <p style="color: #ff0000;"><b>HSM (Hierachical Storage Management) et Big Data</b></p> <p>Pour terminer la mise en place de l'éco-système &quot;Big Data&quot; au sein de la DSI, il reste un point fondamental souvent omis : la sécurisation et l'archivage des données non-structurées. L'objectif est de pouvoir archiver/sauvegarder les données non-structurées à des fins de rejeu éventuel, et pour faire face à la croissance des volumes en les stockant sur un support approprié en fonction de leur &quot;fraîcheur&quot;.&nbsp; En effet, une grille de type Hadoop base sa sécurité sur la duplication de la données, mais si une donnée est corrompue, ses copies le sont aussi. En outre, cette grille est là pour permettre un traitement à un instant t (vélocité) sur les données, une fois ce traitement effectué, les données sur la grille sont souvent remplacées par des données plus récentes (voir l'exemple : &quot;⁞<a href="http://blogs.oracle.com/datawarehousing/entry/understanding_a_big_data_implementation">Understanding a Big Data Implementation and its Components</a>&quot; qui traite bien du cas d'usage des données liées à un contexte temporel) . Dans certains cas d'usage, il peut être intéressant de pouvoir revisiter des données capturées ultérieurement avec un autre angle d'analyse, ou pour des besoins de vérification, et dans tous les cas pour pouvoir restaurer en cas d'incident de corruption. C'est là où le couplage avec une solution de stockage hiérarchique (HSM) est indispensable pour la capture initiale des données non-structurées et leur archivage à moindre coût face aux volumétries à traiter. C'est ce que nous couvrons au travers de notre solution <a href="http://www.oracle.com/technetwork/articles/systems-hardware-architecture/optimizing-info-tiered-arch-163884.pdf">Storage Archive Manager</a> (SAM), solution d'ailleurs utilisée dans un projet &quot;Big Data&quot; français pour pouvoir archiver 1 PB de données non-structurées.<br /></p> <p> </p> <p> </p> <p style="color: #ff0000;"><b>Pour aller plus loin :</b></p> <ul> <li><a href="http://www.oracle.com/us/technologies/big-data/index.html">http://www.oracle.com/us/technologies/big-data/index.html</a><br /></li> <li><a href="http://blogs.oracle.com/datawarehousing/category/Oracle/Big+Data">http://blogs.oracle.com/datawarehousing/category/Oracle/Big+Data</a></li> <li><a href="http://blogs.oracle.com/datawarehousing/entry/understanding_a_big_data_implementation">Understanding a Big Data Implementation and its Components</a></li> <li><a href="http://www.oracle.com/us/products/database/big-data-appliance/overview/index.html">Oracle Big Data Appliance</a></li> <li><a href="http://www.oracle.com/us/products/database/exadata-database-machine/overview/index.html">Oracle Exadata</a><br /></li> <li><a href="http://www.oracle.com/us/solutions/ent-performance-bi/business-intelligence/exalytics-bi-machine/overview/index.html">Oracle Exalytics In-Memory Machine</a><br /></li> <li><a href="http://www.oracle.com/technetwork/articles/systems-hardware-architecture/optimizing-info-tiered-arch-163884.pdf">Storage Archive Manager</a></li> <p>&nbsp;Je profite de ce billet pour vous rappeler de mettre à jour votre &quot;feed reader&quot; : <a href="http://blogs.oracle.com/EricBezille/feed/entries/rss">http://blogs.oracle.com/EricBezille/feed/entries/rss</a> , avec tous mes meilleurs voeux pour 2012.</p> <p> </p> <p><a href="http://translate.google.com/translate?prev=hp&amp;hl=en&amp;js=y&amp;u=http%3A%2F%2Fblogs.sun.com%2FEricBezille%2Fentry%2Fbig_data_opportunit%C3%A9_business_et&amp;sl=fr&amp;tl=en&amp;history_state0=">Translate in English</a></p> </ul> Architecture and Innovation Wed, 11 Jan 2012 19:59:40 +0100 Du modèle EAV, ou comment s’arracher les cheveux, pour plein de raisons http://blog.asyd.net/2012/01/du-modele-eav-ou-comment-sarracher-les-cheveux-pour-plein-de-raisons/ <p>Dans le cadre du projet <a href="https://wiki.opencsi.com/public/bin/view/SOIF/WebHome">SOIF</a> (qui fera l&#8217;objet d&#8217;un prochain billet), je travaille actuellement sur un job de transformation d&#8217;une base <a href="http://theforeman.org/projects/foreman/wiki/Puppet_Facts">Puppet facts</a> pour injecter dans <a href="http://sourceforge.net/projects/itop/">iTop</a>.</p> <p>Avant tout, un peu de contexte : Puppet intègre la commande <em>facter</em> qui renvoie tout un ensemble d&#8217;informations sous la forme <em>attribut=valeur</em>, et qui est facilement extensible, bref c&#8217;est très intéressant. Là où le bat blesse, c&#8217;est que &#8211; logiquement &#8211; ces informations sont stockées en base de données en utilisant le modèle de conception <a href="http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model">EAV</a> pour Entity Attribute Value.</p> <p>Ce qui donne :</p> <pre> +------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | MUL | NULL | | | updated_at | datetime | YES | | NULL | | | created_at | datetime | YES | | NULL | | +------------+--------------+------+-----+---------+----------------+ </pre> <p>et </p> <pre> mysql> desc fact_values; +--------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+----------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | value | text | NO | | NULL | | | fact_name_id | int(11) | NO | MUL | NULL | | | host_id | int(11) | NO | MUL | NULL | | +--------------+----------+------+-----+---------+----------------+ </pre> <p>Donc, pour obtenir par exemple la <em>fact</em> <em>serialnumber</em> pour un hôte donné, cela donne quelque chose du genre :</p> <p><code lang="sql"><br /> select fact_values.value FROM fact_values LEFT JOIN hosts ON fact_values.host_id = hosts.id LEFT JOIN fact_names ON fact_values.fact_name_id = fact_names.id WHERE hosts.name = 'xxx' AND fact_names.name = 'serialnumber';<br /> </code></p> <p>Mais maintenant, retour à mon objectif : travailler par lot, c&#8217;est à dire pour tous les enregistrements de la table <em>hosts</em>. Se pose donc la question de comment faire pour obtenir la liste de tous les hôtes, avec la valeur <em>serialnumber</em>, à froid, pour l&#8217;expert SQL que je ne suis pas, mon premier jet à donné :<br /> <code><br /> SELECT hosts.id, fact_values.value FROM hosts LEFT JOIN fact_values ON hosts.id = fact_values.host_id LEFT JOIN fact_names ON fact_names.id = fact_values.fact_name_id WHERE fact_names.name = 'serialnumber';<br /> </code><br /> qui semble fonctionné à priori, mais, MAIS, cela ne renvoie que les enregistrements pour lesquels il existe la valeur <em>serialnumber</em>.</p> <p>Après de nombreuses recherches, il semblerait que la seule solution à mon problème soit :</p> <pre> SELECT hosts.id, (SELECT fact_values.value FROM fact_values JOIN fact_names ON fact_names.id = fact_values.fact_name_id WHERE fact_names.name = 'serialnumber' AND fact_values.host_id = hosts.id) as serialnumber, FROM hosts; </pre> <p>et là, on le voit tout de suite, ça devient compliqué. Pourquoi ? parce que je n&#8217;ai pas seulement besoin du <em>serialnumber</em> mais de nombreux autres champs, et pour chaque champ que je veux, je dois donc rajouter un nouveau SELECT, je vous laisse deviner l&#8217;impact sur les performances.</p> <p>Bref, EAV, ça pue. Bien évidemment si vous avez une autre solution, n&#8217;hésitez pas à commenter !</p> asyd's blog Mon, 02 Jan 2012 12:27:20 +0100 Astuce : trouver le caractère UTF8 associé à un code hexa http://blog.asyd.net/2011/12/astuce-trouver-le-caractere-utf8-associe-a-un-code-hexa/ <p>Dans mes péripéties mod_security, j&#8217;ai eu l&#8217;erreur suivante :</p> <p><code><br /> [Thu Dec 29 08:44:22 2011] [error] [client xx.21.3.31] ModSecurity: Warning. Pattern match "\\W{4,}" at ARGS:typeLibelle. [file "/usr/local/apache2/conf/crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line "507"] [id "960024"] [rev "2.2.2"] [msg "SQL Character Anomaly Detection Alert - Repetative Non-Word Characters"] [data " \\xc3\\xa0 "] [hostname "dev.xxxx.fr"] [uri "/xxxx"] [unique_id "TvwaVgpArWEAAHu7CtMAAAAG"]<br /> </code></p> <p>Et la question qui tue : à quoi correspond \\xc3\\xa0 ? Je me doutais que c&#8217;était un caractère UTF8, j&#8217;ai donc demandé à mon expert jeu de caractères (aka Laurent Blume) qui m&#8217;a donné l&#8217;astuce suivante :</p> <ul> <li> Avant tout, avoir un système en UTF-8 </li> <li> Lancer vim (pas besoin d&#8217;ouvrir un fichier) </li> <li> Taper un caractère accentué, par exemple é </li> <li> Convertir en hexadécimal à l&#8217;aide de la commande &#8220;:%!xxd&#8221;, ce qui va donner quelque chose du genre &#8220;0000000: c3a9 0a&#8221; </li> <li> Modifier le c3a9 en c3a0 </li> <li> Reconvertir en texte, à l&#8217;aide de la commande &#8220;:%!xxd -r&#8221;, et miracle on obtient le caractère &#8220;à&#8221; !</li/ </ul> asyd's blog Thu, 29 Dec 2011 10:24:47 +0100