240 lines
2.3 KiB
Markdown
240 lines
2.3 KiB
Markdown
Welcome
|
|
-------
|
|
|
|
NoSQL for cartographers.
|
|
|
|
|
|
Motiejus Jakštys
|
|
|
|
2019-11-08
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Why me?
|
|
-------
|
|
|
|
- 2008: first full-time software job.
|
|
- 2009-2012: graduated Computing Science in Glasgow.
|
|
- 2014-2016: job: Amazon Web Services.
|
|
- 2016-now: job: Uber.
|
|
|
|
SQL and NoSQL are part of the job.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
What is a server?
|
|
-----------------
|
|
|
|
Demonstration.
|
|
|
|
- pi
|
|
- pi-at-home.jpg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SQL
|
|
---
|
|
|
|
- Invented > 50 years ago.
|
|
- Technologies change, concepts remain.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.**
|
|
|
|
|
|
What do we do?
|
|
|
|
|
|
|
|
|
|
Get a big database
|
|
------------------
|
|
|
|
$30 to about a $1M.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alternatives
|
|
============
|
|
|
|
Split data across many servers!
|
|
|
|
Topology is not always needed:
|
|
- Pictures/videos.
|
|
- Stock prices.
|
|
- Sensor measurements.
|
|
|
|
|
|
Hey, No SQL!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sort-of-SQL
|
|
-----------
|
|
|
|
Leave the syntax, cut out constraints.
|
|
- familiar syntax.
|
|
- more storage.
|
|
- less features.
|
|
|
|
Hive:
|
|
```
|
|
SELECT a.foo FROM invites a WHERE a.ds='2008-08-15';
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Key-Value: fast & small
|
|
-----------------------
|
|
|
|
- Different syntax
|
|
- Different features
|
|
|
|
DynamoDB:
|
|
```
|
|
table = dynamodb.create_table(
|
|
TableName='users',
|
|
KeySchema=[
|
|
{ 'AttributeName': 'username', 'KeyType': 'HASH' },
|
|
{ 'AttributeName': 'last_name', 'KeyType': 'RANGE' }
|
|
],
|
|
)
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Key-Value: slow & very big
|
|
---------------------
|
|
|
|
Videos or just large files? S3 is most popular.
|
|
|
|
Imaginge an infinite disk.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cloud
|
|
-----
|
|
|
|
"The Cloud" is just someone's servers with software.
|
|
|
|
- pi-datacenter.jpg
|
|
- datacenter.jpg
|
|
- snowball-edge.jpg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Storage
|
|
-------
|
|
|
|
Storage in "the cloud" is quite cheap. People start moving.
|
|
|
|
https://www.youtube.com/watch?v=8vQmTZTq7nw
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
What next?
|
|
----------
|
|
|
|
- Create an account in S3.
|
|
- Upload a file there.
|
|
- Share it with everyone under your domain.
|
|
- It's free!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Want to know more?
|
|
------------------
|
|
|
|
- Stanford Computer Science 101: https://online.stanford.edu/courses/soe-ycscs101-sp-computer-science-101
|
|
- Python programming introduction for everyone: https://tutorial.djangogirls.org/en/
|
|
- Cloud services: https://aws.amazon.com/
|