Skip to content

Instantly share code, notes, and snippets.

@nt
Created October 15, 2012 11:52
Show Gist options
  • Save nt/3892087 to your computer and use it in GitHub Desktop.
Save nt/3892087 to your computer and use it in GitHub Desktop.
AngelHack

Je voudrai m'essayer aux techno de graph processing, perso je n'y connais rien mais j'y vois là une bonne occasion de découvrir.

Je pense que ça peux être marrant d'appliquer cela à l'analyse de texte en utilisant ConceptNet. http://conceptnet5.media.mit.edu/ J'ai rencontré une boite à Boston qui fait ça et qui a de très bon résultats (Luminoso). Je vais chercher les publis.

Base de données et technos que j'ai envie de tester:

Quelques références: https://gist.github.com/3888345

Poc proche de ce que je fais au boulot. Je voudrai faire un système d'analyse multidimensionnel en mémoire (OLAP). C'est assez ambitieux mais on a pas besoin de tout faire pour faire une bonne démo. Un des avantages à une implem en mémoire est qu'on peut ajouter des données temps réel, typiquement twitter en streaming.

Il y a deux éléments de design intéressants:

Une bonne démo d'une bdd multidimensionnelle en mémoire est ici, jouez avec l'outils pour comprendre ses capacités: https://dash.metamx.com/tweets/explore#p=r1w&w=-a-&zz=3

Je pense que l'API storm + Trident (Stream processing) avec les StateQuerys peut convenir à ce besoin: https://github.com/nathanmarz/storm/wiki

Pour la partie agrégations si on part sur du Scala je suis un grand fan d'Algebird: https://github.com/twitter/algebird

Au niveau restitution/visualisation si quelqu'un est bon en js on pourrait faire des restitutions live des données avec d3.js et node par exemple.

Pour la distribution des données et des requêtes on fera ça au prochain event je pense ;)

Si on a le temps/les ressources, je serai chaud pour commender une version persistante avec par exemple:


Détails d'implem

Structure en mémoire

Un index inversé par valeur de dimension, on peut commencer par l'approche naive: 1 bit par entrée pour chaque valeur de dimension. Permet de faire des opérations booléennes sur les sélections de valeurs de dims. Puis dans un deuxième temps on peut s'intéresser à la compression d'index, voir la solution des concise sets de Druid: http://metamarkets.com/2012/druid-bitmap-compression/, http://ricerca.mat.uniroma3.it/users/colanton/docs/concise.pdf

@benoitguigal
Copy link

Hello,
Je suis très motivé pour faire du temps réel. Ce qui me plairait bien c'est de travailler avec des données capteurs, type mesure de la pollution de l'air et de rajouter un modèle prédictif dessus de "early warning" un peu comme ce qui est décrit ici
http://www.kaggle.com/c/dsg-hackathon. ça permet par exemple de mettre à jour des forecast de pollution en temps réel http://www.airnow.gov/. Le problème majeur c'est trouver des API publique... Eventuellement, on peut faire ça avec du traffic routier et de la prévision de bouchon ?

@benoitguigal
Copy link

Hello,
Je suis très motivé pour faire du temps réel. Ce qui me plairait bien c'est de travailler avec des données capteurs, type mesure de la pollution de l'air et de rajouter un modèle prédictif dessus de "early warning" un peu comme ce qui est décrit ici
http://www.kaggle.com/c/dsg-hackathon. ça permet par exemple de mettre à jour des forecast de pollution en temps réel http://www.airnow.gov/. Le problème majeur c'est trouver des API publique... Eventuellement, on peut faire ça avec du traffic routier et de la prévision de bouchon ?

@benoitguigal
Copy link

Hello,
Je suis très motivé pour faire du temps réel. Ce qui me plairait bien c'est de travailler avec des données capteurs, type mesure de la pollution de l'air et de rajouter un modèle prédictif dessus de "early warning" un peu comme ce qui est décrit ici
http://www.kaggle.com/c/dsg-hackathon. ça permet par exemple de mettre à jour des forecast de pollution en temps réel http://www.airnow.gov/. Le problème majeur c'est trouver des API publique... Eventuellement, on peut faire ça avec du traffic routier et de la prévision de bouchon ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment