diff --git a/misc/2019-11-08-NoSQL/README.md b/misc/2019-11-08-NoSQL/README.md new file mode 100644 index 0000000..9cf9a38 --- /dev/null +++ b/misc/2019-11-08-NoSQL/README.md @@ -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