๊ฐ์
์ํ์น ์นด์ฐ๋๋ผ(Apache Cassandra)๋ ์คํ ์์ค๋ก ๊ฐ๋ฐ๋ ๋ถ์ฐํ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์
๋๋ค. ์ด๋ ํํฐ์
๋ ๋์ ์ด(column) ์ ์ฅ ๋ชจ๋ธ์ ์ ๊ณตํ๋ฉฐ, ์ต์ข
์ผ๊ด์ฑ(eventual consistency)์ ๊ฐ์ง๋ค.
์ํ์น ์นด์ฐ๋๋ผ๋ ์๋ Facebook์์ ์ค๊ณ๋์์ผ๋ฉฐ, staged event-driven architecture (SEDA)๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋์์ต๋๋ค. ์ด๋ Amazon์ Dynamo ๋ถ์ฐ ์ ์ฅ ๋ฐ ๋ณต์ ๊ธฐ์ ๊ณผ Google์ Bigtable ๋ฐ์ดํฐ ๋ฐ ์ ์ฅ ์์ง ๋ชจ๋ธ์ ๊ฒฐํฉ์ ๊ตฌํํ๊ธฐ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค. Dynamo์ Bigtable์ ๋ชจ๋ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ๋ขฐ์ฑ์ด ๋์ผ๋ฉฐ ๊ณ ๊ฐ์ฉ์ฑ์ ๊ฐ์ถ ์ ์ฅ ์์คํ
์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑ์ํค๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๊ฐ์ ๊ฐ์ ํ ์ ์๋ ๋ถ๋ถ์ด ์์์ต๋๋ค.
์นด์ฐ๋๋ผ๋ ์ด๋ฌํ ๋ ์์คํ
์ ์ต์์ ์กฐํฉ์ผ๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ ํํ๋ฆฐํธ์ ์ฟผ๋ฆฌ ์ ๋ชจ๋์ ๋ํ ๋๊ท๋ชจ ํ์ฅ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑ์ํค๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ๋ค์ด ์ ์ธ๊ณ์ ์ธ ๋ณต์ ์ ํญ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ง์ฐ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ๋ฅผ ํ์๋ก ํ ๋, ์ด๋ ํ๋์ ์ธ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์ด ๊ธ๋ก๋ฒ ๊ท๋ชจ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ก์ด ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑ์ํค๊ธฐ ์ด๋ ค์์ง๋ ์ํฉ์์ ์๋ก์ด ์ข
๋ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ์ ์ค๊ณํ๋ ๊ฒ์ด ํ์์ ์ด์์ต๋๋ค.
์นด์ฐ๋๋ผ์ ๊ฐ์ ์์คํ ์ ์ด๋ฌํ ๋์ ์ ๋๋นํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์ค๊ณ ๋ชฉํ๋ฅผ ์ถ๊ตฌํฉ๋๋ค:
- ์ ์ฒด ๋ค์ค ๋ง์คํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณต์ (Full multi-master database replication)
- ์ ์ง์ฐ ์ ์ธ๊ณ์ ์ธ ๊ฐ์ฉ์ฑ(Global availability at low latency)
- ์ ๊ฐ์ ํ๋์จ์ด์์์ ํ์ฅ(Scaling out on commodity hardware)
- ๊ฐ ์ถ๊ฐ ํ๋ก์ธ์๋ง๋ค ์ ํ์ ์ธ ์ฒ๋ฆฌ๋ ์ฆ๊ฐ(Linear throughput increase with each additional processor)
- ์จ๋ผ์ธ ๋ก๋ ๋ฐธ๋ฐ์ฑ๊ณผ ํด๋ฌ์คํฐ ํ์ฅ(Online load balancing and cluster growth)
- ํํฐ์ ํค ์งํฅ ์ฟผ๋ฆฌ(Partitioned key-oriented queries)
- ์ ์ฐํ ์คํค๋ง(Flexible schema)
ํน์ง
์นด์ฐ๋๋ผ(Cassandra)๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์์ฑํ๊ณ ์ ๋ฐ์ดํธํ๋ฉฐ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํด SQL๊ณผ ์ ์ฌํ ์ธ์ด์ธ ์นด์ฐ๋๋ผ ์ฟผ๋ฆฌ ์ธ์ด(CQL, Cassandra Query Language)๋ฅผ ์ ๊ณตํฉ๋๋ค. CQL์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๋ ๋ค์๊ณผ ๊ฐ์ด ์นด์ฐ๋๋ผ ๋ ธ๋ ํด๋ฌ์คํฐ ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค:
- Keyspace(ํค์คํ์ด์ค): ๋ฐ์ดํฐ์ ์ด ๋ฐ์ดํฐ ์ผํฐ๋ง๋ค ์ด๋ป๊ฒ ๋ณต์ ๋๋์ง๋ฅผ ์ ์ํฉ๋๋ค. ๋ณต์ ๋ ํด๋ฌ์คํฐ ๋น ์ ์ฅ๋๋ ์ฌ๋ณธ์ ์๋ฅผ ์๋ฏธํฉ๋๋ค. ํค์คํ์ด์ค๋ ํ ์ด๋ธ์ ํฌํจํฉ๋๋ค.
- Table(ํ ์ด๋ธ): ํํฐ์ ๋ค์ ๋ชจ์์ ๋ํ ํ์ ํ๋ ์คํค๋ง๋ฅผ ์ ์ํฉ๋๋ค. ํ ์ด๋ธ์ ํํฐ์ ๋ค์ ํฌํจํ๋ฉฐ, ํํฐ์ ์ ๋ก์ฐ๋ค์, ๋ก์ฐ๋ ์ปฌ๋ผ๋ค์ ํฌํจํฉ๋๋ค. ์นด์ฐ๋๋ผ ํ ์ด๋ธ์ ๊ธฐ์กด ํ ์ด๋ธ์ ์๋ก์ด ์ปฌ๋ผ๋ค์ ์ํฅ ์์ด ์ ์ฐํ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- Partition(ํํฐ์ ): ์นด์ฐ๋๋ผ์ ๋ชจ๋ ๋ก์ฐ๋ค์ด ํด๋ฌ์คํฐ ๋ด์์ ์ ์ฅ๋๋ ๋ ธ๋๋ฅผ ์๋ณํ๊ธฐ ์ํด ํ์์ ์ธ ๊ธฐ๋ณธ ํค์ ์ผ๋ถ๋ฅผ ์ ์ํฉ๋๋ค. ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ฟผ๋ฆฌ๋ ์ฟผ๋ฆฌ์ ํํฐ์ ํค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Row(๋ก์ฐ): ํํฐ์ ํค์ ์ ํ์ ์ผ๋ก ์ถ๊ฐ์ ์ธ ํด๋ฌ์คํฐ๋ง ํค๋ค๋ก ์๋ณ๋๋ ์ปฌ๋ผ๋ค์ ๋ชจ์์ ํฌํจํฉ๋๋ค.
- Column(์ปฌ๋ผ): ๋ก์ฐ์ ์ํ๋ ๋จ์ผํ ๋ฐ์ดํฐ ํญ๋ชฉ์ผ๋ก์ ํ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
CQL์ ํํฐ์ ๋ ๋ฐ์ดํฐ์ ์ ๋์์ผ๋ก ๋ค์ํ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด:
1. ๋จ์ผ ํํฐ์
๊ฒฝ๋ ํธ๋์ญ์
: ์์์ ์ธ ๋น๊ต ๋ฐ ์ค์ ์๋ฏธ๋ก ์ ๊ฐ์ง ๋จ์ผ ํํฐ์
๊ฒฝ๋ ํธ๋์ญ์
์ ์ง์ํฉ๋๋ค.
2. ์ฌ์ฉ์ ์ ์ ์ ํ, ํจ์ ๋ฐ ์ง๊ณ ํจ์
3. ์ธํธ, ๋งต ๋ฐ ๋ฆฌ์คํธ๋ฅผ ํฌํจํ ์ปฌ๋ ์
์ ํ
4. ๋ก์ปฌ ๋ณด์กฐ ์ธ๋ฑ์ค
5. (์คํ์ ์ธ) ๋จธํฐ๋ฆฌ์ผ๋ผ์ด์ฆ๋ ๋ทฐ
์นด์ฐ๋๋ผ๋ ์ผ๋ฐ์ ์ผ๋ก ๋๋ฆฌ๊ณ ๋์ ๊ฐ์ฉ์ฑ์ผ๋ก ์ ์ธ๊ณ์ ์๋ฏธ๋ก ์ ์ ๊ณตํ๊ธฐ ์ด๋ ค์ด ์ฐ์ฐ์ ๊ตฌํํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์นด์ฐ๋๋ผ๋ ๋ค์์ ์ง์ํ์ง ์์ต๋๋ค:
1. ํํฐ์
๊ฐ ํธ๋์ญ์
2. ๋ถ์ฐ ์กฐ์ธ
3. ์ธ๋ ํค ๋๋ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ
์ด์
์ํ์น ์นด์ฐ๋๋ผ(Apache Cassandra) ๊ตฌ์ฑ ์ค์ ์ cassandra.yaml ํ์ผ์์ ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด ํ์ผ์ ์ง์ ํธ์งํ๊ฑฐ๋ ๊ตฌ์ฑ ๊ด๋ฆฌ ๋๊ตฌ์ ๋์์ผ๋ก ํธ์งํ ์ ์์ต๋๋ค. ์ผ๋ถ ์ค์ ์ ์จ๋ผ์ธ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ค์๊ฐ์ผ๋ก ์กฐ์ํ ์ ์์ง๋ง, ๋ค๋ฅธ ์ค์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์์ํด์ผ๋ง ์ ์ฉ๋ฉ๋๋ค.
์นด์ฐ๋๋ผ๋ ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. nodetool ๋ช
๋ น์ ์นด์ฐ๋๋ผ์ ์ค์๊ฐ ์ ์ด ์ธํฐํ์ด์ค์ ์ํธ์์ฉํ์ฌ cassandra.yaml์์ ๋ง์ ์ค์ ์ ๋ฐํ์์ผ๋ก ์กฐ์ํ ์ ์๊ฒ ํฉ๋๋ค. auditlogviewer๋ ๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ๋ณด๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. fqltool์ ์ ์ฒด ์ฟผ๋ฆฌ ๋ก๊ทธ๋ฅผ ๋ณด๊ณ , ์ฌ์คํํ๊ณ ๋น๊ตํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. auditlogviewer์ fqltool์ ์ํ์น ์นด์ฐ๋๋ผ 4.0์์ ์๋ก ์ถ๊ฐ๋ ๋๊ตฌ์
๋๋ค.
๋ํ, ์นด์ฐ๋๋ผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์์ ์ค๋
์ท ๊ธฐ๋ฅ์ ์ง์ํ์ฌ ์นด์ฐ๋๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ฐฑ์
๋๊ตฌ์ ํตํฉํ ์ ์๋ ์์ ์ ์ค๋
์ท์ผ๋ก ์ ๊ณตํฉ๋๋ค. ์นด์ฐ๋๋ผ๋ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋๋๋๋ก ์ฆ๋ถ ๋ฐฑ์
์ ์ง์ํ๊ธฐ๋ ํฉ๋๋ค.
์ํ์น ์นด์ฐ๋๋ผ 4.0์ ๊ฐ์ ํ
์ด๋ธ, ์ผ์์ ๋ณต์ (์คํ์ ), ๊ฐ์ฌ ๋ก๊น
, ์ ์ฒด ์ฟผ๋ฆฌ ๋ก๊น
๋ฐ ์๋ฐ 11 ์ง์(4.0.2 ๋ฒ์ ๋ถํฐ ์์ ์ง์)์ ํฌํจํ์ฌ ์ฌ๋ฌ ๊ฐ์ง ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
'๐ป > MLOps' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
stern : ๋ถ์ฐ ์ฒ๋ฆฌ ํ๋ซํผ ๋ชจ๋ํฐ๋ง (0) | 2024.02.23 |
---|---|
[k8s] `kubectl top` (0) | 2024.01.02 |
[Pinot] ์คํ์์ค ๊ธฐ์ฌ ํ๋ก์ธ์ค (0) | 2023.03.05 |
[Pinot] Apache Pinot ๊ฐ๋ฐ ํ๊ฒฝ (0) | 2023.03.05 |
[Pinot] Apache Pinot? (0) | 2022.11.05 |