26
Décembre
2016

ban3

Bonjour à tous!

En ce début de semaine, le laboratoire BlueDsX met à votre disposition un tutoriel complet, pour vous apprendre à croiser vous-même vos données et en déduire des informations pertinentes. Au programme, des grands classiques parmi les tests statistiques comme Fisher, Student, Wilcoxon et bien d'autres ! Vous apprendrez à :

  • Tester la corrélation et déterminer les forces de liaison entre  vos variables
  • Choisir des tests statistiques pertinents
  • Réaliser en un rien de temps une analyse descriptive globale de vos données

untitled_med_hr

Notes : Ce tutoriel nécessite l'installation du logiciel RStudio sur votre ordinateur. Vous pouvez le télécharger ici.

Cliquez ici pour commencer notre tutoriel sur l'analyse de données ! ATTENTION : si vous avez installé l'extension Adblock sur votre navigateur, désactivez le pour afficher correctement la page.

Eva Laude, laboratoire Blue DsX

26
Décembre
2016
 perforpmance2222 Savez-vous que le temps de navigation sur internet a été multiplié par 6 depuis les années 2000 ? Que cela soit pour un besoin de recherche d’information ou pour effectuer un achat, l’internaute a besoin d’être face à un site web répondant à ses attentes mais aussi disponible, fluide et ergonomique. Afin d’éviter un taux de rebond conséquent les sites web et les applications mobiles destinés au grand public doivent proposer un contenu intéressant mais nécessite également être à haute disposition. C’est pourquoi l’optimisation des performances devient un enjeu primordial. Cette dernière peut se faire sur plusieurs niveaux :
  • niveau infrastructure
  • niveau applicatif
  • niveau base de données
On doit s’assurer également que l’application est performante via des outils de monitoring. Nous vous proposons ce séminaire pour vous offrir une démarche claire pour l’optimisation des performances sur les différents niveaux ainsi que des outils pour contrôler les applications et leurs environnements.

Dates à venir ! 

 
26
Décembre
2016
docker-devops-832x333 Les projets évoluent de plus en plus vite dans des configurations techniques de plus en plus complexes. Gain de productivité, gain de temps, gains économiques forment notre quotidien. La méthodologie Agile et l'intégration continue ont contribué à l’amélioration de la flexibilité de vos SI. Aujourd’hui la philosophie Devops intégrant l’automatisation des tâches les plus critiques et pouvant s’appuyer sur la technologie des conteneurs, devient le prérequis fondamental pour le lancement de vos projets stratégiques de transformation digitale. Comment vous accompagner dans cette course vers l’agilité ? Où la fiabilité de vos tests sera enfin garantie. Où la multiplication de vos mises en production deviendra plus qu'une simple formalité. Où encore une situation ou vous ne serez plus dépendant de votre fournisseur d’infrastructure cloud.

Vous souhaitez avoir les réponses à l'ensemble de ces questions ?

Rencontrez-nous, pour échanger sur nos retours d'expériences.

 15 décembre à 8 h 30

Je m'inscris pour le 15 décembre 

remy-signature  
26
Décembre
2016

couv0-2 Quandl est un portail de données vous donnant accès gratuitement à plus de 5 millions de datasets de données financières, économiques ou sociales. Quandl vous propose aussi  une API  pour nourrir vos analyses de données et reporting. Simple d'utilisation, les APIs vous permettent d'automatiser le flux entrant de données de vos analyses pour que vos données financières soient automatiquement mises à jour dans votre logiciel de manipulation de données. Découvrez comment profiter de ces milliers de dataframes en suivant le guide !

Les APIs, à quoi ça sert?

Une API (pour Application Programmation Interface ou interface de programmation) permet à deux applications d'échanger des données d'une manière automatisée et programmable par le biais d'une interface. On dit que celle-ci expose le service à un client/développeur/particulier.

  • Serveur : ordinateur puissant éxécutant un programme nommé API
  • API : partie "cachée" d'un site web qui est destinée à être consommée par les ordinateurs
  • Client : Un programme qui échange des données avec un serveur, au moyen d'une API
shema2
 Besoin d'un exemple? Imaginons : vous venez de créer votre premier site web marchand. Vous souhaitez que vos futurs clients puissent acheter vos produits directement sur votre site mais, sans un très gros bagage technique, il vous est impossible de concevoir vous-même le code pour prendre en charge les différentes types de carte s bancaires, devises, pays etc. La solution est alors de trouver une solution extérieure à intégrer sur votre site : par exemple, l'API de Paypal qui vous permet de sélectionner les renseignements bancaires à la fin du processus d'achat. Il en existe bien d'autres ! logos1

Les exemples ci-dessus ne représentent qu'un type particulier d'API, les API ouvertes qui permettent la diffusion d'une ou de plusieurs fonctionnalités d'un produit au grand public. On trouve aussi d'autres types d'APIs dans un contexte business (BtoB) : les APIs  fermées (ou privées) pour un usage interne (par exemple pour faciliter l'échange d'informations entre différents services d'une société), et des API à destination des partenaires pour faciliter la communication et l'intégration logicielle entre votre entreprise et vos partenaires commerciaux. Une chose est sûre, la création d'une API par une entreprise est un projet important qui amène les décideurs à plusieurs réflexions sur : la sécurisation des données échangées, le(s) bénéfice(s) en terme d'image et de notoriété du service auprès du grand public et des communautés de développeurs, l'impact sur la structure du service etc. Découvrez la liste des 50 APIs les plus populaires en cliquant sur ce lien !

Comment fonctionne une API Rest ?

Il existe plusieurs types d'API (REST, SOAP, Javascript, etc.), mais la grande majorité d'entre elles sont des API REST (pour Representational State Transfer). Les APIs Rest se basent sur le protocole HTTP (Hypertext Transfer Protocol) qui permet aux différentes parties du web de communiquer entres-elles : client ---> requête HTTP -----> Serveur. Crée par Roy Fielding, grand spécialiste du web en 2000 (il a notamment participé au développement des technologies HTML -initialement inventé par Tim Berners-Lee - , HTTP et URI et est aussi le cofondateur de la fondation Apache). Pour respecter les critères Rest, une API doit être :

  • Dotée d'une interface client-service uniforme
  • Sans état (le serveur n'a pas d'information sur l'état du client entre deux requêtes)
  • Cacheable (avec cache = mémoire)
  • Orientée client-serveur
  • Dotée d'un système de couches
Pour connaître en détails les caractéristiques et contraintes d'une API Rest, rendez-vous sur le site restapitutorial.com.

RStudio et Quandl

[caption id="attachment_1264" align="alignnone" width="1644"]main-page-dataset-quandl Exemple de présentation d'un dataframe sur Quandl[/caption]

Nous apprendrons dans ce billet, non pas à construire notre propre API (un très bon didacticiel existe sur ce sujet ici), mais  à utiliser une API déjà existante, bien connue de tous les "fans" de data : l'API de Quandl.

Quandl est un portail de données vous donnant accès gratuitement à plus de 5 millions de datasets de données financières, économiques ou sociales. L'intérêt d'utiliser Quandl est qu'il propose aussi à ses utilisateurs une API  pour nourrir leur analyse de données et reporting. Simple d'utilisation, les APIs vous permettent d'automatiser le flux entrant de données de vos analyses pour que vos données financières soient automatiquement mises à jour dans votre logiciel de manipulation de données (au hasard RStudio ^^).

Créer un compte Quandl

Première étape, créez votre compte sur www.quandl.com. Vous pouvez utiliser Quandl et son API sans vous inscrire, mais vous serez limité à 50  requêtes  par jours.  Après avoir crée votre compte, vous pourrez requêter jusqu'à 500 flux par jours ! Conservez bien votre API Key pour ce qui suit.

[caption id="attachment_1262" align="aligncenter" width="455"]api-key Exemple d'API Key[/caption]  

Installer le package Quandl dans RStudio

#Installez le package Quandl en tapant la commande ci-dessous dans votre
 console RStudio:

 install.packages("Quandl")
 library(Quandl)

#Authentifiez-vous grâce à votre API Key pour passer à 500 liens par jours
 une fois pour toute (seulement si vous utilisez RStudio / Excel ou Python)

 Quandl.api_key("votre numéro de clef API")

Accèder aux données

Télécharger un dataset depuis votre navigateur

Voici un exemple de requête API vers le serveur de Quandl. En copiant cette adresse dans la barre de notre navigateur, vous pouvez télécharger ce fichier en format .csv.
https://www.quandl.com/api/v3/datasets/WIKI/FB/data.csv
Si vous n'avez pas encore enregistré votre API Key dans RStudio, placez celle-ci à la fin de l'adresse comme suit :
https://www.quandl.com/api/v3/datasets/WIKI/FB/data.csv?api_key=YOURAPIKEYHERE

Formats de données

Quandl vous propose trois types de formats. Pour choisir celui-ci, modifiez l'extension à la fin de l'URL. [caption id="attachment_1263" align="alignnone" width="720"]dataformat source : www.quandl.com/docs/api[/caption]

Rechercher un dataset Quandl depuis RStudio

L'objectif final étant d'avoir le moins de manipulation à faire en dehors de votre IDE (ici RStudio), vous pouvez très bien effectuer une recherche précise de datasets directement depuis votre console R. Pour cela utilisez la fonction Quandl.search() avec les paramètres voulus.

Quandl.search(query = "Le mot que vous cherchez", page = int,
source = "nom de la source",  silent = TRUE|FALSE)
  • Query est le seul argument obligatoire de votre fonction. Il représente le terme que vous  cherchez.
  • Page est le nombre de page de résultat que vous souhaitez afficher.
  • Source vous permet, lui, de spécifier la source de votre recherche.
  • Le dernier paramètre est silent avec deux arguments,TRUE ou FALSE (pour voir ou non les trois premiers résultats de la recherche).
#Regardez les trois premiers résultats pour la recherche sur le mot "Bitcoin":
results <- Quandl.search(query = "Bitcoin", page = int, silent = FALSE)

# Affichez vos résultats : 
str(results)

# Copier le Quandl Code du dataset qui vous intéresse et placez-le dans
une variable pour le manipuler : 
BitCoin <- Quandl("BCHAIN/TOTBC")

Appeler un dataset dans RStudio

Chaque dataset est identifié par un numéro (id), appelé Quandl Code. Pour appeler directement ce dataset, tapez la fonction Quandl() suivi de l'identifiant de votre dataset. quandl-code
# Assigner le dataset Facebook à une variable :
 data <- Quandl("WIKI/FB"
Vous pouvez maintenant travailler sur ce tableau de données comme avec n'importe quel autre. Tapez str(data) pour regarder la structure du tableau rstudio-str Nous allons voir maintenant comment personnaliser vos requêtes en changeant les  paramètres de la fonction Quandl().

Sélectionner une période sur une série temporelle

La fonction Quandl() peut prendre deux arguments :
start_date=yyyy-mm-dd
 et/ou 
end_date=yyyy-mm-dd
 #On décide de prendre les observations de janvier 2015 à mars 2016 :

data2 <- Quandl("WIKI/FB", start_date="2015-01-26", end_date="2016-03-31",
collapse="monthly", transform="rdiff") 

 #On change l'ordre chronologique pour la présentation des observations
avec le paramètre order=asc (ascending).  

data3 <- Quandl("WIKI/FB", start_date="2015-01-26", end_date="2016-03-31",
collapse="monthly", transform="rdiff", order="asc")
 

Choisir les variables

Vous pouvez soit afficher les n premières variables avec limit="n", ou choisir précisément vos variables avec column_index="n".
#Je décide d'afficher la colonne "Volume" (numéro 5) avec le paramètre
colum_index :

 data4 <- Quandl("WIKI/FB", start_date="2015-01-26", end_date="2016-03-31",
collapse="monthly", transform="rdiff", order="asc", column_index="5") 

 data5 <- Quandl("WIKI/FB", start_date="2015-01-26", end_date="2016-03-31",
collapse="monthly", transform="rdiff", order="asc", limit="5")  

#limit=n , n étant le nombre de colonnes souhaitées. Utilisez limit=1 pour voir
toutes les colonnes
 

Les formats de données data

Par défaut, Quandl fourni les données sous la forme d'un dataframe (type raw). Il est parfois nécessaire de changer le format des données pour pouvoir utiliser certains packages ou effectuer certaines manipulations. Les autres formats disponible sont : le format -xts ( pour Extensible Time Series), -ts (pour Time Series), et -zoo (Zoo Format). Pour changer la nature de votre dataframe, tapez la fonction Quandl() suivi du type de format souhaité comme argument :

Créer votre diagramme à points

Maintenant que vous avez récupérez les données qui vous intéressent, essayez la fonction plot(x,y) pour mettre en image vos variables! plot
Bravo ! Vous savez maintenant comment récupérer facilement et de manière illimitée les données économiques de Quandl directement depuis l'interface de RStudio. A vous les times-series et les données du CAC-40! A très vite sur notre blog !

Eva LAUDE, laboratoire BlueDsX

elqude
26
Décembre
2016

SL NO SLQ board

Depuis 20 ans, le langage SQL et les bases de données relationnelles (SGBD) sont des standards dans le monde du stockage et de la manipulation de données. Les fonctionnalités des bases de données SQL ont permis de s'adapter aux besoins des entreprises (comme, par exemple, l'intégrité des données et l'implémentation de transactions dans les applications de gestion). Ses outils matures du côté développement en font un outil indispensable pour tout développeurs.

Notons aussi, en passant, que les trois bases de données les plus populaires restent des bases de données relationnelles (Oracle DB, MySQL, SQL Server) !

[caption id="attachment_1162" align="aligncenter" width="1135"]ranking SGBD et NoSQL Source : http://db-engines.com/en/ranking[/caption]

L'arrivée du NoSQL

L'accroissement exponentiel des données échangées et stockées par les entreprises ainsi que leur grande hétérogénéité (on parle aussi de données semi ou non-structurées) ont fait apparaitre les limites des SGBD relationnels dans un contexte nécessitant des environnements distribués ayant pour caractéristiques :

  • Le traitement intense de données (scaling des traitements) pour résister aux montées en charges importantes.
  • La répartition harmonieuse des données entre plusieurs machines (scaling de données) pour permettre le stockage de grands volumes.
  • L'assurance de la continuité de service en cas d'indisponibilité des datacenters
C'est ici qu'apparait une alternative avec le NoSQL pour Not ONLY SQL (et non pas Not SQL). Certaines de ces bases de données non relationnelle se veulent plus performantes car conçues pour permettre la distribution des données entre plusieurs serveurs (horizontal scaling) et tenir les montées en charge. Attention dans une implémentation fortement distribuée NoSQL, la gestion des contraintes ACID (Atomicity, Consistency, Isolation, Durability) peut aussi représenter une difficulté importante. Il existe plusieurs types de base de données non relationnelle NoSQL offrant chacune une représentation différente des données :

les bases clef / valeur permettent de stocker des informations sous un couple clef/valeur. Chaque objet est identifié par une clef unique, seule façon de requêter. La simplicité de ce modèle avec seulement quatre opérations possibles Create - Read - Update - Delete (CRUD) permet des performances élevées en lecture et écriture ainsi qu'une grande scalabilité horizontale.Exemple : Redis, Voldemort.

les bases orientées document ont une représentation proche de celle clef/valeur, à ceci près que la valeur est représentée sous la forme d'un document, hiérarchisé (tout l'atout est ici), comme un objet XML ou JSON. Exemple : CouchDB, MongoDB, RavenDB.

les bases orientées colonnes stockent les données par colonnes. Elles sont souvent utilisées pour les traitements d'analyse de données et dans les traitements massifs (au travers l'utilisation de MapReduce notamment). Elles ont pour atout d'être plus évolutives et flexibles, et possède un nombre de colonnes dynamiques pour chaque ligne. Exemple : HBase (Open Source de BigTable de Google), Cassandra (fondation Apache), Simple DB (Amazon, FaceBook).

les bases orientées graphes permettent de pallier à des problèmes insolvables avec une base de données relationnelle. Elles représentent les données sous la forme d'un réseau composé de nœuds et de relations. Exemple : Neo4J, Hypergraph DB, Giraph.

Adieu le SQL ?

nosql-expertLe NoSQL ne se substituera au relationnel : l'un complète l'autre (au besoin) en fonction de la nature de votre projet et de l'existant : vos données, vos serveurs, vos environnements. A titre d'exemple, Tweeter tourne sur MySQL et Memcache. Stackoverflow utilise SQL Server 2008 et Redis !

Base de données relationnelle ou non, la réussite de votre projet dépendra surtout de votre réflexion sur la structure de votre application bien avant le choix final de solutions.

Pour conclure, on peut dire que tout système distribué est unique dans sa conception et répondra différemment aux trois lois fondamentales CAP (Coherence, Availabilty, Partition tolerance) en fonction de votre besoin. En effet, les SGBDR assurent les propriétés de consistance (Coherence), de diponibilité (Availability)  tandis que les SGBD "NoSqL" sont des systèmes soit de type AP (disponible et résistant au partitionnement), soit de type CP (cohérent et résistant au partitionnement).

triangle CAP

Pour le datascientist, le choix n'est pas neutre car ce n'est pas uniquement un choix de performance auquel il sera confronté, ainsi :

  • On ne traite pas d'information structurellement incomplète dans les SGBDR.
  • La structuration des données peut influencer les analyses statistiques et prédictives

N'hésitez pas à nous faire partager votre expérience sur les bases de données , SQL ou NoSQL (on est pas jaloux !), dans le cadre des datasciences.

Eva LAUDE, laboratoire BlueDsX

signature eva laude