Datenmodellierung mit Riak

1,066 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,066
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
















  • Datenmodellierung mit Riak

    1. 1. Datenmodellierung mit Riak Frederik Fix
    2. 2. Riak • Entwickelt von Basho • Open-Source mit kommerziellen Erweiterungen für Multi-Datenzentren Betrieb • verteilte Key-Value Datenbank • Peer-to-Peer Replikation • Konfigurierbare Leistungsparameter • Definierbar auf wievielen Nodes ein Datensatz gespeichert wird
    3. 3. Konzepte • Buckets • Alle Datensätze sind in Buckets, wirken wie Namespaces • Objects • meistens JSON, besitzen eindeutige ID im Bucket • Metadata • Key-Value Paare, ala Content-Type: image/jpg • Oder Links...
    4. 4. Links • Links funktionieren wie in Link Tags in HTML • Gerichtet • Ermöglichen das Modellieren von Beziehungen
    5. 5. Ruby Client • Zwei Gems • http://github.com/seancribbs/ripple • riak-client: low-level, Rails >= 2.3 • Ripple: Object Mapper basierend auf ActiveModel
    6. 6. riak-client • Verbindungsaufbau
    7. 7. riak-client • Verbindungsaufbau • Objekt erstellen
    8. 8. riak-client • Objekt finden
    9. 9. riak-client • Objekt finden • Links erstellen follower phil bob
    10. 10. Datenmodell User Venue key: String key: String name: String email: String lat: float long: float embedded has_many belongs_to Badge code: String CheckIn created: Time created: Time
    11. 11. has_many :badges • Badges sind Teil des User Objektes
    12. 12. has_many :check_ins • CheckIn erstellen Analog zum Setzen der venue_id
    13. 13. Link Walking Venue User key: String key: String name: String email: String lat: float long: float ("venues", "...", "venue") bucket ID tag ("check_ins", "...", "check_ins") bucket ID tag CheckIn created: Time
    14. 14. Link Walking Venue User key: String key: String name: String email: String lat: float long: float ("venues", "...", "venue") bucket ID tag ("check_ins", "...", "check_ins") bucket ID tag CheckIn created: Time
    15. 15. has_many :check_ins, :conditions => “created > ?” • Einsatz von MapReduce User key: String email: String CheckIn CheckIn CheckIn CheckIn created: Time created: Time created: Time created: Time map map map map reduce
    16. 16. has_many :check_ins, :conditions => “created > ?”
    17. 17. has_many :check_ins, :order => “created”
    18. 18. Ende Fragen?

    ×