[GCP] Bigtable
Bigtable์ ์ด๋ํ ์คํ ๋ฆฌ์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค๋ค.
Hbase ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๊ณ , ํํ๋ฐ์ดํธ ๋จ์์ ๋ฌด์ํ ๋ฐ์ดํฐ๋ฅผ ์์๋๋๋ฐ ์ต์ ํ๋์ด์๋ค.
Apache HBase์ Cassandra์ ๋์ ์ค ํ๋๊ณ , ๋ง์ด๊ทธ๋ ์ด์ ๋ ์ ์ง์ํ๋ ํธ์ด๋ค.
๋ณดํต bigtable์ ๋ฌด์ํ๊ฒ ์๋ค๊ฐ ๋ถ์์ด ํ์ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ mapreduce๋ฅผ ๋๋ฆฌ๊ฑฐ๋, bigtable->bigquery๋ก ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ฒจ๋ฃ์ด์ ์ฐ๋ ๋ฐฉ๋ฒ์ ๋ง์ด๋ค ์ทจํ๋ ๊ฒ ๊ฐ๋ค.
๋ค๋ง ์์ฒด์ ์ผ๋ก MapReduce ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ ์๋๋ค. ์์ฒด์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์์ค์์ ๊ตฌํํด์ ์จ์ผํ๋ค.
๋น์ฉ
https://cloud.google.com/bigtable/pricing?hl=ko
๋น์ฉ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋
ธ๋๊ฐ ๋ ์๋ ์๊ฐ๊ณผ ์ ์ฅ๋ ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋งค๊ฒจ์ง๋ค.
์ ๋ ดํ ํธ์ ์๋๋ค. ๋งค์ฐ ๋น์ธ๋ค.
์๊ฐ๋น 0.85๋ฌ๋ฌ๋๊น, ๋
ธ๋๊ฐ ํ๋๋ง ๋ ์์ด๋ ํ๋ฌ์ 612๋ฌ๋ฌ=80๋ง์์ด ๋๊ฒ ๋๊ฐ๋ ์
์ด๋ค. ๊ฝค ๋น์ธ๋ค.
์คํ ๋ฆฌ์ง ๋น์ฉ์ SSD์ HDD ๋น์ฉ์ด ๋ค๋ฅด๋ค.
1ํ
๋ผ๋ง ์ ์ฅํ๋ค๊ณ ์น๋ฉด, SSD๋ ํ๋ฌ์ 220๋ฌ๋ฌ=30๋ง์, HDD๋ 34๋ฌ๋ฌ=5๋ง์ ์ ๋ ๋๊ฐ๋ค.
์ธ์คํด์ค ๋ง๋ค๊ธฐ
์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ์จ๋ณด๋ฉด์ ํ ์คํธ๋ฅผ ํด๋ณด์.
์ด๋ฆ ์ง๊ณ
์คํ ๋ฆฌ์ง ํ์
์ ์ ํํ๋ค.
๋๋ ์ข๋ ์ ๋ ดํ ํ๋๋ฅผ ํํ๊ฒ ๋ค..
๋ฆฌ์ ๊ณผ ๋
ธ๋ ๊ฐ์๋ฅผ ์ ํํ๋ค.

์ด๋ ๊ฒ ๋ง๋ค์ด์ง๋ฉด ์ ๋ ๊ฒ์ด๋ค.
ํ ์ด๋ธ ๋ง๋ค๊ธฐ
bigtable๋ ์ฌํ DB๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ ์ด๋ธ ๋จ์๋ก ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ด๋ฆฌํ๋ค.
ํ
์ด๋ธ ๋ง๋ค๊ธฐ ๋๋ฅด๊ณ
์ด๋ฆ์ ์ง๊ณ , ์ปฌ๋ผ ํจ๋ฐ๋ฆฌ๋ค์ ์ ์ ํ ์ ์ํ๋ค.
์ ๋๋ก ์จ๋จน์ผ๋ ค๋ฉด ์ปฌ๋ผ ํจ๋ฐ๋ฆฌ๋ฅผ ์ต์ํ ํ๋ ์ด์์ ๋ฌ์ผํ๋ค.
์ปฌ๋ผ ํจ๋ฐ๋ฆฌ๋ ์ฝ๊ฒ ๋งํด ์ปฌ๋ผ๋ค์ ๊ทธ๋ฃน์ด๋ค.
Bigtable์์ ํ
์ด๋ธ์ ํ๋์ ๊ธฐ๋ณธํค์ ์ฌ๋ฌ๊ฐ์ ์ปฌ๋ผํจ๋ฐ๋ฆฌ๋ก ์ด๋ฃจ์ด์ง๋ค.
๊ฐ ์ปฌ๋ผ ํจ๋ฐ๋ฆฌ์๋ ์ปฌ๋ผ์ด ์ฌ๋ฌ๊ฐ ๋ค์ด๊ฐ ์ ์๋ค.
CLI๋ก ๋ค๋ค๋ณด๊ธฐ
bigtable์ cbt๋ผ๋ ์ ์ฉ CLI ๋๊ตฌ๋ฅผ ์ง์ํ๋ค.
์๋ค๋ฉด gcloud๋ก ์ค์นํ๋ฉด ๋๋ค.
gcloud components install cbt
cloud shell์ ํตํด ์ด๋ค๋ฉด ๊ธฐ๋ณธ์ผ๋ก ๊น๋ ค์๋ค.
์ธ์คํด์ค ๋ชฉ๋ก์ ์กฐํํ๋ ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ๋ค.
cbt listinstances

๊ทธ๋ฆฌ๊ณ ํน์ ์ธ์คํด์ค์ ํ ์ด๋ธ ๋ชฉ๋ก์ ์กฐํํ๋ ค๋ฉด, ls ๋ช ๋ น์ ์ฐ๋ฉด ๋๋ค.
cbt -instance=์ธ์คํด์ค๋ช
ls

ํ ์ด๋ธ ๋ด์ ์ปฌ๋ผ ์ ๋ณด๋ฅผ ์กฐํํ๋ ค๋ฉด ์ด๋ ๊ฒ ํ๋ค.
cbt -instance=์ธ์คํด์ค๋ช
ls ํ
์ด๋ธ๋ช

๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ค๋ฉด set ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ๋๋ค.
cbt -instance=์ธ์คํด์ค๋ช
set ํ
์ด๋ธ๋ช
ํค๊ฐ ์ปฌ๋ผํจ๋ฐ๋ฆฌ:์ปฌ๋ผ=๊ฐ
์)
cbt -instance=bigtable-test set orders 1 test:price=5000 test:product_id=12 test:buyer_id=1
cbt -instance=bigtable-test set orders 2 test:price=7000 test:product_id=15 test:buyer_id=1
cbt -instance=bigtable-test set orders 3 test:price=3000 test:product_id=11 test:buyer_id=2
cbt -instance=bigtable-test set orders 4 test:price=1000 test:product_id=13 test:buyer_id=3

์ฝ์๋๋ read ๋ช ๋ น์ ์ด๋ค.
cbt -instance=์ธ์คํด์ค๋ช
read ํ
์ด๋ธ๋ช
cbt -instance=bigtable-test read orders

์ง์ฐ๋ ค๋ฉด deleterow ๋ช ๋ น์ ์ฐ๋ฉด ๋๋ค.
cbt -instance=์ธ์คํด์ค๋ช
deleterow ํ
์ด๋ธ๋ช
ํค

์ฐธ์กฐ
https://cloud.google.com/bigtable?hl=ko
https://cloud.google.com/bigtable/docs/create-instance-write-data-cbt-cli?hl=ko
https://medium.com/google-cloud/getting-started-with-bigtable-on-gcp-adfb896e0b26
https://github.com/googleapis/nodejs-bigtable/tree/main/samples#before-you-begin