start presentation
This commit is contained in:
parent
d79bde565c
commit
2e60964aa4
88
misc/2019-11-08-NoSQL/README.md
Normal file
88
misc/2019-11-08-NoSQL/README.md
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
Welcome
|
||||||
|
-------
|
||||||
|
|
||||||
|
This is a presentation about NoSQL for cartographers.
|
||||||
|
|
||||||
|
Why me?
|
||||||
|
-------
|
||||||
|
|
||||||
|
- 2008: first paid software job.
|
||||||
|
- 2012: graduated Computing Science.
|
||||||
|
- 2014-2016: Amazon Web Services.
|
||||||
|
- 2016+: Uber.
|
||||||
|
- Using SQL and NoSQL at dayjob.
|
||||||
|
|
||||||
|
What is a server?
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
SQL
|
||||||
|
---
|
||||||
|
|
||||||
|
- Invented > 50 years ago.
|
||||||
|
- Technologies differ, concepts are the same.
|
||||||
|
|
||||||
|
Power and limitation of SQL
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Let's model a house on a piece of land.
|
||||||
|
|
||||||
|
- There will be always a piece of land under a house.
|
||||||
|
- SQL says you can enforce this.
|
||||||
|
|
||||||
|
**They must be on the same server to enforce this constraint.**
|
||||||
|
|
||||||
|
If constraint cannot be created, it's not SQL.
|
||||||
|
If it's SQL, all houses and all areas must be on the same server.
|
||||||
|
|
||||||
|
Get a big database
|
||||||
|
------------------
|
||||||
|
|
||||||
|
$30 to about a $1M. Show graphics.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
============
|
||||||
|
|
||||||
|
Cat videos do not require topology. But we still need storage -- No SQL!
|
||||||
|
|
||||||
|
Like-SQL
|
||||||
|
--------
|
||||||
|
|
||||||
|
Forego some SQL constraints, but use the same (/similar) language:
|
||||||
|
- No uniqueness constraints.
|
||||||
|
- No foreign keys.
|
||||||
|
- ... many more restrictions.
|
||||||
|
|
||||||
|
Hive:
|
||||||
|
```
|
||||||
|
SELECT a.foo FROM invites a WHERE a.ds='2008-08-15';
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Key-Value: fast & small
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
DynamoDB, Cassandra. Some have their language, some don't.
|
||||||
|
|
||||||
|
DynamoDB:
|
||||||
|
```
|
||||||
|
table = dynamodb.create_table(
|
||||||
|
TableName='users',
|
||||||
|
KeySchema=[
|
||||||
|
{ 'AttributeName': 'username', 'KeyType': 'HASH' },
|
||||||
|
{ 'AttributeName': 'last_name', 'KeyType': 'RANGE' }
|
||||||
|
],
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
Cassandra:
|
||||||
|
```
|
||||||
|
INSERT INTO monkeys (type, family, common_name, conservation_status)
|
||||||
|
VALUES ('New World Monkey', 'Cebidae', 'white-headed capuchin', 'Least concern');
|
||||||
|
```
|
||||||
|
|
||||||
|
Key-Value: slow & big
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
S3.
|
||||||
|
|
||||||
|
https://www.youtube.com/watch?v=8vQmTZTq7nw
|
Loading…
Reference in New Issue
Block a user