Part 4. ๋ฐ์ดํฐ์ ์ดํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค(FastCampus)์ ๋ฐ์ดํฐ ์์ง๋์ด๋ง ์ฌ์ธ์ ํจํค์ง Online์ ์ฐธ๊ณ ํ์์ต๋๋ค.
์ด ํฌ์คํ ์ NoSQL ์ค DynamoDB๋ฅผ ์์ฃผ๋ก ์์ ๋์ด ์์ต๋๋ค.
1. NoSQL vs. RDB
Not Only SQL- ์ฐจ์ด์ (1) ๋ค์ด๋๋ฏน ์คํค๋ง
- ๊ตฌ์กฐ๋ฅผ ์ ์ํ์ง ์๊ณ ๋ Documents, Key Values ๋ฑ์ ์์ฑ
- ๊ฐ๊ฐ์ Document๊ฐ ์๋ก ๋ค๋ฅธ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค๋ง๋ค ๋ค๋ฅธ syntax
- ํ๋ ์ถ๊ฐ ๊ฐ๋ฅ
- ์ฐจ์ด์ (2) Scalabilty
- SQL DB:
verticallyscalable - CPU, RAM, SSD๋ก ์ฉ๋ ๋ฌธ์ ํด๊ฒฐ๊ฒฐ - NoSQL DB:
horizontallyscalable - Sharding, Partitioning๋ก ์ฉ๋ ๋ฌธ์ ํด๊ฒฐ
- SQL DB:
2. Partition
- ๋ฐ์ดํฐ ๋๋๊ธฐ(vertical & horizontal)
- ๋ฐ์ดํฐ ๋งค๋์ง๋จผํธ, ํผํฌ๋จผ์ค ๋ฑ ๋ค์ํ ์ด์
- Vertical Partition
- ํ ์ด๋ธ์ ๋ ์์ ํ ์ด๋ธ๋ก ๋๋๊ธฐ(Normalization์๋ ๋ค๋ฆ)
- ex. ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ์นผ๋ผ๊ณผ ์๋ ์นผ๋ผ๋ค ๋๋๊ธฐ
- Horizontal Partition
- Schema / Structure ์์ฒด๋ฅผ ๋ณต์ฌํ์ฌ ๋ฐ์ดํฐ ์์ฒด๋ฅผ
Sharded Key๋ก ๋ถ๋ฆฌ - NosQL DB์์๋ ํ์์ ์ด๋ค.
- Schema / Structure ์์ฒด๋ฅผ ๋ณต์ฌํ์ฌ ๋ฐ์ดํฐ ์์ฒด๋ฅผ
3. DynamoDB
- aws.amazon.com > DynamoDB
- Partition Key๋ SQL์์ Primary Key์ ์ ์ฌํ๋ค.
4. AWS SDK - Boto3 Package (DynamoDB ์ฐ๊ฒฐ)
|
|
5. ํ ์ด๋ธ ์์ฑ ๋ฐ ์คํ
- Provisioned(ํ ๋น๋จ) vs. On-demand(์จ๋๋งจ๋)
6. Global Index, Local Index
7. INSERT(Single, Batch items)
boto3 Documentation ์ฝ์ด๋ณด๊ธฐ
Creating a New Item
|
|
Batch Writing
|
|
8. ๋ฐ์ดํฐ ์์ฒญ ๋ฐ ์ ํ์
boto3 Documentation ์ฝ์ด๋ณด๊ธฐ
Getting an Item
|
|
ClientError: An error occurred (ValidationException) when calling the GetItem operation: The provided key element does not match the schema
์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฌ๋ค๋ฉด, key๊ฐ์ ์ ๋๋ก ๋ค ๋ฃ์๋์ง ํ์ธํด๋ณธ๋ค.
Querying and Scanning
- Querying: Primary Key ๊ฐ์ ์๊ณ ์์ ๋ ํ์ฉ
- Scanning: Primary Key ๊ฐ์ ๋ชจ๋ฅด์ง๋ง, ๋ค๋ฅธ attribute๋ฅผ ์ ๋ ํ์ฉ
- Scan์ ๋ชจ๋ ํ์ ๋ค ํ๋ ๋นํจ์จ์ ์ธ ๊ธฐ๋ฅ์ด๋ฏ๋ก ๊ผญ ํ์ํ ๋๋ง ์ฐ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค.
|
|