Planet
Ayant participé à quelques conférences sur ce thème, voici quelques réflexions pour commencer l'année 2012 sur le sujet du moment...
Big Data : Opportunités Business
Comme le souligne une étude
de McKinsey (« Big Data: The next frontier for innovation,
competition, and productivity » ), 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 €250 milliards sur l'ensemble du secteur public Européen
(identification des fraudes, gestion et mesures de l'efficacité des
affectations des subventions et des plans d'investissements, ...). Quant
au secteur marchand, la simple utilisation des données de géolocalisation pourrait permettre un surplus global de $600 milliards, opportunité illustrée par Jean-Pierre Dijcks dans son blog : "Understanding a Big Data Implementation and its Components".
Volume, Vélocité, Variété...
Le "Big Data" est souvent caractérisé par ces 3x V :
- Volume : 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: Exadata), et c'est pourquoi, l'aspect volume en tant que tel n'est pas suffisant pour caractériser une approche "Big Data".
- Vélocité : 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.
- Variété : 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.

...Visualisation et Valeur
A ces 3x V qui caractérisent le "Big Data" de manière générale j'en ajouterai 2 : visualisation et valeur !
Visualisation, 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 la Valeur, 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) !
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 ...
(nouveau) Défi pour la DSI
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&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 : Acquérir, Organiser et Distribuer.
- Acquérir : 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 HDFS (Hadoop Distributed Filesystem), 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.
- Organiser : associer un premier niveau d'index {clé,valeur} sur ces données non-structurées avec NoSQL (pour Not Only SQL) . 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 "périmées", entre autres). Et ensuite pouvoir également extraire de l'information au travers de l'opération MapReduce s'effectuant directement sur la grille de données non-structurées (pour éviter de transporter les données vers des noeuds de traitement).
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 à "haute densité" 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.
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 : Oracle Big Data Appliance, le référentiel de données structurées pouvant quant à lui être implémenté au sein d'Exadata.
- Distribuer : la dernière étape consiste à rendre disponible l'information aux métiers, et leur permettre d'en tirer la quintessence : Analyser et Visualiser. 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.
Un premier niveau d'analyse peut se faire directement sur les données non-structurées au travers du langage R, directement sur le Big Data Appliance.
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'Exadata 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.
Cette dernière étape est industrialisée au travers de la solution Exalytics, 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).
HSM (Hierachical Storage Management) et Big Data
Pour terminer la mise en place de l'éco-système "Big Data" 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 "fraîcheur". 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 : "⁞Understanding a Big Data Implementation and its Components" 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 Storage Archive Manager (SAM), solution d'ailleurs utilisée dans un projet "Big Data" français pour pouvoir archiver 1 PB de données non-structurées.
Pour aller plus loin :
- http://www.oracle.com/us/technologies/big-data/index.html
- http://blogs.oracle.com/datawarehousing/category/Oracle/Big+Data
- Understanding a Big Data Implementation and its Components
- Oracle Big Data Appliance
- Oracle Exadata
- Oracle Exalytics In-Memory Machine
- Storage Archive Manager
Je profite de ce billet pour vous rappeler de mettre à jour votre "feed reader" : http://blogs.oracle.com/EricBezille/feed/entries/rss , avec tous mes meilleurs voeux pour 2012.
Dans le cadre du projet SOIF (qui fera l’objet d’un prochain billet), je travaille actuellement sur un job de transformation d’une base Puppet facts pour injecter dans iTop.
Avant tout, un peu de contexte : Puppet intègre la commande facter qui renvoie tout un ensemble d’informations sous la forme attribut=valeur, et qui est facilement extensible, bref c’est très intéressant. Là où le bat blesse, c’est que – logiquement – ces informations sont stockées en base de données en utilisant le modèle de conception EAV pour Entity Attribute Value.
Ce qui donne :
+------------+--------------+------+-----+---------+----------------+ | 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 | | +------------+--------------+------+-----+---------+----------------+
et
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 | | +--------------+----------+------+-----+---------+----------------+
Donc, pour obtenir par exemple la fact serialnumber pour un hôte donné, cela donne quelque chose du genre :
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';
Mais maintenant, retour à mon objectif : travailler par lot, c’est à dire pour tous les enregistrements de la table hosts. Se pose donc la question de comment faire pour obtenir la liste de tous les hôtes, avec la valeur serialnumber, à froid, pour l’expert SQL que je ne suis pas, mon premier jet à donné :
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';
qui semble fonctionné à priori, mais, MAIS, cela ne renvoie que les enregistrements pour lesquels il existe la valeur serialnumber.
Après de nombreuses recherches, il semblerait que la seule solution à mon problème soit :
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;
et là, on le voit tout de suite, ça devient compliqué. Pourquoi ? parce que je n’ai pas seulement besoin du serialnumber mais de nombreux autres champs, et pour chaque champ que je veux, je dois donc rajouter un nouveau SELECT, je vous laisse deviner l’impact sur les performances.
Bref, EAV, ça pue. Bien évidemment si vous avez une autre solution, n’hésitez pas à commenter !
Dans mes péripéties mod_security, j’ai eu l’erreur suivante :
[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"]
Et la question qui tue : à quoi correspond \\xc3\\xa0 ? Je me doutais que c’était un caractère UTF8, j’ai donc demandé à mon expert jeu de caractères (aka Laurent Blume) qui m’a donné l’astuce suivante :
- Avant tout, avoir un système en UTF-8
- Lancer vim (pas besoin d’ouvrir un fichier)
- Taper un caractère accentué, par exemple é
- Convertir en hexadécimal à l’aide de la commande “:%!xxd”, ce qui va donner quelque chose du genre “0000000: c3a9 0a”
- Modifier le c3a9 en c3a0
- Reconvertir en texte, à l’aide de la commande “:%!xxd -r”, et miracle on obtient le caractère “à” !
Pour tous les retardataires vous trouverez ci-joint quelques liens utiles sur la dernière version de l'os Solaris 11. Disponible depuis fin novembre cette nouvelle version est très prometteuse en corrigeant les défauts des anciennes version de Solaris (système de packages modifié, amélioration[...]
Pour ceux qui ne sont pas dans la liste de distribution de la communauté des utilisateurs Solaris francophones,
voici une petite compilation de liens sur les blogs des développeurs de
Solaris 11 et qui couvre en détails les nouveautés dans de multiples
domaines.
Les nouveautés côté Desktop
- What's new on the Solaris 11 Desktop ?
- S11 X11: ye olde window system in today's new operating system
- Accessible Oracle Solaris 11 - released !
Les outils de développements
- Nagging As a Strategy for Better Linking: -z guidance
- Much Ado About Nothing: Stub Objects
- Using Stub Objects
- The Stub Proto: Not Just For Stub Objects Anymore
- elffile: ELF Specific File Identification Utility
Le nouveau système de packaging : Image Packaging System (IPS)
Oracle Open World continue a battre des records aussi bien en terme
d'audience avec plus de 45000 personnes que de contenus, avec plus de
2000 sessions, sans parler des annonces majeures qui ont eu lieu cette
année et sur lesquelles je vais revenir dans ce poste, jour par jour.
Premier jour : Engineered Systems
L'évènement a été lancé avec une "key notes" 100% matériel, autour des Engineered Systems, avec un rappel du succès d'Exadata et d'Exalogic, et du pourquoi : massivement parallèle à tous les niveaux, avec en plus la compression des données pour pouvoir bouger beaucoup de données, beaucoup plus vite qu'une architecture traditionnelle, le tout basé sur un coeur infiniband... Conception poussée jusqu'au processeur avec le T4 et Solaris côté système d'exploitation, qui aboutissent a un nouvel "Engineered Systems", le Supercluster, pour proposer la solution la plus adaptée (intégrée) sur le terrain des applications utiles à l'Entreprise (Java/Database). Pour le partie calcul géométrique, ce sera la prochaine étape...
Cette première "key notes" s'est conclue toujours sur du "Hardware and Software
Engineered to work together", pour délivrer des résultats "plus vite
que la pensée" avec l'Exalytics,
qui s'interface de préférence avec un
Exadata, mais pas seulement... pourquoi pas votre SAP, pour en tirer
des analyses très rapide sur une volumétrie de données importante, que
l'on arrive à faire tenir dans 1 TB de RAM, grâce à des technologies de... [Read more] La troisième édition des séminaires sysadmin se tiendra les 20 et 21 Octobre à l’IRILL (merci à eux aux passage).
Le programme (non définitif) est maintenant disponible ! Les inscriptions seront ouvertes d’ici peu.
Content and Goal
|
"Oracle Automatic Storage Management gives database administrators a storage management interface that is consistent across all server and storage platforms and is purpose-built for Oracle Database. Oracle Automatic Storage Management Cluster File System is a general-purpose file system for single-node and cluster configurations. It supports advanced data services such as tagging and encryption. This hands-on lab shows how to configure Oracle Automatic Storage Management and Oracle Automatic Storage Management Cluster File System for installation of an Oracle Database instance on Oracle Solaris 10 8/11. You'll learn how to install the software, build Oracle Automatic Storage Management volumes, and configure and mount Oracle Automatic Storage Management Cluster File System file systems." |
Overview
This tutorial covers the installation of Oracle Grid Infrastructure for a standalone server. In the Oracle 11g Release 2, the Grid Infrastructure contains, amongst other software:
-
Automatic Storage Managment (ASM)
-
ASM Dynamic Volume Manager (ADVM)
-
ASM Cluster File System (ACFS)
This lab is divided into 4 exercises.
Exercise 1: We install the ASM binaries and grid infrastructure. As part of the install we create a diskgroup of three disks called DATA. DATA will later be used to store the database data files.
Exercise 2: We use ASM Configuration Assistant (ASMCA) to create a second diskgroup called MYDG. From MYDG we create a ADVM volume called MYVOL and from that we create a ACFS file system called u02.
Exercise 3: We use the installer to install the Oracle database binaries into our new ACFS filesystem (u02).
Exercise 4: We then use the database configuration assistant to create a database with the tablespaces populating the DATA ASM diskgroup.
In our setup we use "External" redundancy for our disks. This implies ... Read more...A quick introduction
I have been invited by Dominic Kay, Product Manager for Solaris Storage sub-systems, for an hands-on lab at OOW. For those of you who will assist at this session, next Monday, at 11:00am, in Marriott Marquis - Salon 5/6, here are the gory details to get you through this lab. For the others that won't have the opportunity to be there, we hope it will be usefull for you to set it up on your own environment.
The reasoning behind this lab
I already posted on this blog many times, about ZFS, and all its benefits, including the deployment of Oracle Database. And Dominic found very valuable to develop the knowledge of ASM (and ACFS) deployment on Solaris, as you can look at ASM in a way, as the "ZFS" from a DBA perspective, with another interesting benefit : the ability to deploy an Oracle Database in a shared multi-nodes environment with Oracle RAC, which is what's is running on Solaris on Exadata and on this week's new Engineered System announced, SPARC Supercluster... Read more...

