Cascalog présenté par Bertrand Dechoux
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Cascalog présenté par Bertrand Dechoux

on

  • 1,742 views

 

Statistics

Views

Total Views
1,742
Views on SlideShare
959
Embed Views
783

Actions

Likes
0
Downloads
1
Comments
0

13 Embeds 783

http://hugfrance.fr 406
http://blog.xebia.fr 309
http://flavors.me 25
http://127.0.0.1 14
http://cluster015.ovh.net 9
http://www.bonvote.com 4
http://webcache.googleusercontent.com 4
http://www.newsblur.com 3
http://de.flavors.me 3
http://fr.flavors.me 2
http://jp.flavors.me 2
http://pt.flavors.me 1
http://www-ig-opensocial.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Cascalog présenté par Bertrand Dechoux Presentation Transcript

  • 1. HUG France #1 - 15 Mars 2012 Cascalog des MapReduces concisBertrand DECHOUX@BertrandDechoux
  • 2. Casca... quoi? Map/Reduce : pertinent mais insuffisant Des alternatives : Pig, Hive... et Cascading ! Cascalog : Cascading + Datalog + Clojure
  • 3. Cascading : les concepts tuple : liste de valeurs nommées tap : source et sink de données ▶ par défaut : LFS et HFS ▶ par la communauté : Avro, HBase, JDBC, JSON, Kryo, Memcached, Membase, ElasticSearch, SimpleDB, Solr, Thrift... flow : tap(s) source + des opérations + tap(s) sink
  • 4. Cascading : les opérations (Cascading 1.2 - User Guide)
  • 5. Clojure un dialect de Lisp sur la JVM ▶ environnement connu ▶ interoperabilité avec Java ▶ homoiconicité ou code-as-data : fait pour les DSLs
  • 6. Clojure : syntaxe 1/2 (http://lisperati.com/syntax.html)
  • 7. Clojure : syntaxe 2/2 (http://lisperati.com/syntax.html)
  • 8. Cascalog : select ... from ... (?<- (stdout) [?person] (person ?person)) (?<- (stdout) [?person ?age] (age ?person ?age)) (?<- (stdout) [?age] (age _ ?age))
  • 9. Cascalog : select ... from ... where ... (?<- (stdout) [?person ?age] (age ?person ?age) (< ?age 30))
  • 10. Cascalog : select ... as ... from ... (?<- (stdout) [?person ?junior] (age ?person ?age) (< ?age 30 :> ?junior))
  • 11. Cascalog : select count(*) from ... group by ... (?<- (stdout) [?count] (age _ _) (c/count ?count)) (?<- (stdout) [?junior ?count] (age _ ?age) (< ?age 30 :> ?junior) (c/count ?count)) disponible : count, sum, min, max
  • 12. Cascalog : select ... from ... join ... (?<- (stdout) [?person ?age ?gender] (age ?person ?age) (gender ?person ?gender))
  • 13. Cascalog : select ... from ... (select ...) (let [many-follows (<- [?person] (follows ?person _) (c/count ?count) (> ?count 2))] (?<- (stdout) [?personA ?personB] (many-follows ?personA) (many-follows ?personB) (follows ?personA ?personB)))
  • 14. Cascalog : définir vos fonctions (defn toUpperCase [person] (.toUpperCase person)) (?<- (stdout) [?PERSON] (person ?person) (toUpperCase ?person :> ?PERSON))
  • 15. Plus d’informations? Cascalog ▶ github ▶ wiki ▶ google group  Clojure et cie ▶ midje, framework de test ▶ Pallet, DevOps pour la JVM
  • 16. #1 HUG France 15 Mars 2012 Cascalog Merci pour votre attentionBertrand DECHOUX@BertrandDechoux