47. Rows and Columns
date: title: url:
123
1/23/11 My Title http://...
body: date: status: title:
546
Lipsum... 3/13/11 pending Foo
680 date: url:
1/23/11 http://...
body: date: title:
791
Lipsum... 3/13/11 Bar
48. Rows and Columns
date: title: url:
123
1/23/11 My Title http://... Row
body: date: status: title:
546
Lipsum... 3/13/11 pending Foo
680 date: url:
1/23/11 http://...
body: date: title:
791
Lipsum... 3/13/11 Bar
49. Rows and Columns
date: title: url:
123
1/23/11 My Title http://... Row
body: date: status: title:
546
Lipsum... 3/13/11 pending Foo
Row 680 date: url:
Key 1/23/11 http://...
body: date: title:
791
Lipsum... 3/13/11 Bar
50. Rows and Columns
date: title: url:
123
1/23/11 My Title http://... Row
body: date: status: title:
546
Lipsum... 3/13/11 pending Foo
Row 680 date: url:
Column
Key 1/23/11 http://...
body: date: title:
791
Lipsum... 3/13/11 Bar
51. In SQL Columns Exist
for Every Row ...
id title body url date user
123 My Title http://... 1/23/11 rudy
456 Foo Lipsum.. 3/13/11 jared
680 http://... 1/23/11 rob
791 Bar Lipsum.. 3/13/11 mike
52. ... But NOT in Column
Families!
date: title: url: user:
123
1/23/11 My Title http://... rudy
body: date: title: user:
546
Lipsum... 3/13/11 Foo jared
680 date: url: user:
1/23/11 http://... rob
body: date: title: user:
791
Lipsum... 3/13/11 Bar mike
53. In SQL New Columns
Require ALTER TABLE...
id title body url date user status
123 My Title http://... 1/23/11 rudy
456 Foo Lipsum.. 3/13/11 jared pending
680 http://... 1/23/11 rob
791 Bar Lipsum.. 3/13/11 mike
54. ... But Are Simple
Writes in Cassandra!
date: title: url: user:
123
1/23/11 My Title http://... rudy
body: date: status: title: user:
546
Lipsum... 3/13/11 pending Foo jared
680 date: url: user:
1/23/11 http://... rob
body: date: title: user:
791
Lipsum... 3/13/11 Bar mike
81. PATTERN: Timeline
Columns are timestamps
rudy: OHAI 0330:
rudy
OHAI
mike
jared
82. PATTERN: Timeline
Columns are timestamps
rudy: OHAI 0330:
rudy
OHAI
mike: Hi
mike 0335:
Hi
jared
83. PATTERN: Timeline
Columns are timestamps
rudy: OHAI 0330:
rudy
OHAI
mike: Hi
jared:YO 0335:
mike
Hi
0345:
jared
YO
84. PATTERN: Timeline
Columns are timestamps
rudy: OHAI 0330: 0346:
rudy
OHAI HALP
mike: Hi
jared:YO 0335:
mike
rudy:HALP Hi
0345:
jared
YO
85. PATTERN: Timeline
Columns are timestamps
rudy: OHAI 0330: 0346: 0415:
rudy
OHAI HALP PLZ
mike: Hi
jared:YO 0335:
mike
rudy:HALP Hi
rudy: PLZ
0345:
jared
YO
86. PATTERN: Timeline
Columns are timestamps
rudy: OHAI 0330: 0346: 0415:
rudy
OHAI HALP PLZ
mike: Hi
jared:YO 0335:
mike
rudy:HALP Hi
rudy: PLZ
0345: 0420:
jared
jared: RTFM YO RTFM
87. PATTERN: Timeline
Columns are timestamps
rudy: OHAI 0330: 0346: 0415:
rudy
OHAI HALP PLZ
mike: Hi
jared:YO 0335:
mike
rudy:HALP Hi
rudy: PLZ
0345: 0420: 0445:
jared
jared: RTFM YO RTFM NEWB
jared: NEWB
88. PATTERN: Timeline
Columns are timestamps
rudy: OHAI 0330: 0346: 0415:
rudy
OHAI HALP PLZ
mike: Hi
jared:YO 0335: 0515:
mike
rudy:HALP Hi LOL
rudy: PLZ
0345: 0420: 0445:
jared
jared: RTFM YO RTFM NEWB
jared: NEWB
mike: LOL
89. PATTERN: Timeline
Columns are timestamps
rudy: OHAI 0330: 0346: 0415: 0645:
rudy KTHXBAI
OHAI HALP PLZ
mike: Hi
jared:YO 0335: 0515:
mike
rudy:HALP Hi LOL
rudy: PLZ
0345: 0420: 0445:
jared
jared: RTFM YO RTFM NEWB
jared: NEWB
mike: LOL
rudy: KTHXBAI
99. Pattern: ORM
Row = Object
Column = Object property
date: title: url: user:
123
1/23/11 My Title http://... rudy
body: date: status: title: user:
546
Lipsum... 3/13/11 pending Foo jared
680 date: url: user:
1/23/11 http://... rob
100. Secondary Index
Create an index on date column
date: title: url: user:
123
1/23/11 My Title http://... rudy
body: date: status: title: user:
546
Lipsum... 3/13/11 pending Foo jared
680 date: url: user:
1/23/11 http://... rob
101. Secondary Index
Query: where date = 1/23/11
date: title: url: user:
123
1/23/11 My Title http://... rudy
body: date: status: title: user:
546
Lipsum... 3/13/11 pending Foo jared
680 date: url: user:
1/23/11 http://... rob
102. LAB: ORM
• Rewrite Link to save to Cassandra
• Update supporting models and controllers