์ค์ ๋ก ๋ง์ ๋ฐ์ง์ด๋ ์ฑ์ ํธ์คํธ์ ์ค์น๋ Postgresql DB์ ์ก์ธ์คํด์ผ ํฉ๋๋ค. ํ ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ Postgresql์ ์ฐ๊ฒฐ ํ์ ๊ฐ์ ธ์ค๊ณ ๋ค๋ฅธ ์ฑ๊ณผ ๊ณต์ ๋๋ ์ ์ญ ๋ณ์๋ก ์ค์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์๋ก์ด ์ฌ์ฉ์ ํธ๋ฆฌ๊ฑฐ ์ฑ์ Postgresql์ ์๋ก์ด ์ฐ๊ฒฐ์ ์ป์ต๋๋ค. ๋๋ฌด ๋ง์ ๋์ ์ฌ์ฉ์๊ฐ ๋ฐ์ง์ด๋ ์ฑ์ ์ฌ์ฉํ๋ฉด Postgresql์ด ๋ค์ด๋ ๊น๋ด ๋๋ ต์ต๋๋ค. ์ด ์๋๋ฆฌ์ค์ ๋ํ ํด๊ฒฐ์ฑ ์ด ์์ต๋๊น?
๋ค์ url๋ก ํ ํจํค์ง๋ฅผ ์๊ฐํฉ๋๋ค. https://shiny.rstudio.com/articles/pool-basics.html
ํ ์ ๋ฌธ๊ฐ๋ pqbouncer๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ์กฐ์ธํ์ง๋ง ShinyProxy์์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ, ์กฐ์ธ ๋๋ ์๋ฃจ์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ ๋ง ๊ฐ์ฌํฉ๋๋ค.
Shinyproxy๊ฐ Shiny ์ฑ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ํ(์: postgresql, mysql ๋ฑ)์ ์ง์ํ๋ค๋ฉด ๊ฐ๋ฐ์์๊ฒ ํจ์ฌ ๋ ํธ๋ฆฌํ ๊ฒ์ ๋๋ค. ๊ฐ๋ฅํฉ๋๊น?
๋๋ ์ด๊ฒ์ํ๋ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ง์ต๋๋ค. ์ฌ์ด ํด๊ฒฐ ๋ฐฉ๋ฒ ์ค ํ๋๋ ๋ฐฐ๊ด๊ณต์ ์ฌ์ฉํ์ฌ API๋ฅผ ๋ฐฐํฌํ๋ ๊ฒ์ ๋๋ค.
@shrektan ๋๋ถ์ ๋์ค์ ์๋ํ๊ฒ ์ต๋๋ค.
pgbouncer๋ฅผ ์ค์นํ๊ณ ๋น๋๊ฒ ์ฐ๊ฒฐ์ pgbouncer ์๋น์ค๋ก ์ค์ ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. ์ ๋ง ๊ฐ์ฌํฉ๋๋ค
์๋
ํ์ธ์ @chienyuchuan ์๋ฃจ์
์ ์ฐพ์
๋ฐ๋ผ์ ์ง๊ธ ์ด ๋ฌธ์ ๋ฅผ ๋ซ์ต๋๋ค.
ShinyProxy์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ฃผ์ ํ์ง ๋ง๊ณ ์ ๋ฌธ์ ๋ฅผ ์ฌ์ญ์์ค!
pgbouncer๋ฅผ ์ค์นํ๊ณ ๋น๋๊ฒ ์ฐ๊ฒฐ์ pgbouncer ์๋น์ค๋ก ์ค์ ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. ์ ๋ง ๊ฐ์ฌํฉ๋๋ค
@chienyuchuan ์๋ ํ์ธ์! pgbouncer์ ์ฐ๊ฒฐํ๊ธฐ ์ํด ์ด๋ค R ํจํค์ง๋ฅผ ์ฌ์ฉํ๋์ง ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ด ์ฐ๊ฒฐ์ ์๋ฅผ ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น?
pgbouncer๋ฅผ ์ค์นํ๊ณ ๋น๋๊ฒ ์ฐ๊ฒฐ์ pgbouncer ์๋น์ค๋ก ์ค์ ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. ์ ๋ง ๊ฐ์ฌํฉ๋๋ค
@chienyuchuan ์๋ ํ์ธ์! pgbouncer์ ์ฐ๊ฒฐํ๊ธฐ ์ํด ์ด๋ค R ํจํค์ง๋ฅผ ์ฌ์ฉํ๋์ง ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ด ์ฐ๊ฒฐ์ ์๋ฅผ ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น?
@kuzmenkov111 ๋ , ์ ๋ ์ฌ์ ํ ์ค์ด๋ ํ ํจํค์ง๋ฅผ ์ฌ์ฉํ์ง๋ง pgbouncer์ ์ฐ๊ฒฐํฉ๋๋ค.
/etc/pgbouncer/pgbouncer.ini๋ฅผ ํธ์งํ์ฌ [databases] ์น์
์ ์
๋ ฅํ ํ pool ํจํค์ง๋ก [databases] ์น์
์ dbname ๋ฐ ํฌํธ์ ์ฐ๊ฒฐํ๋ R ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์์ต๋๋ค.
๋ค์์ ์ฐธ์กฐ ์ฌ์ดํธ์ ๋๋ค. ์ฌ๊ธฐ์์ ๋ฐฐ์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
PgBouncer + ์ฐ๋ถํฌ 18.04
https://www.willandskill.se/en/how-to-setup-pgbouncer-on-ubuntu/
PgBouncer๋ฅผ ์ฌ์ฉํ PostgreSQL ์ฐ๊ฒฐ ํ๋ง
https://pgdash.io/blog/pgbouncer-connection-pool.html
ํ ํจํค์ง ์ฌ์ฉ(๊ธฐ๋ณธ)
https://shiny.rstudio.com/articles/pool-basics.html
๋ด ๋ ์ผํธ๋ฅผ ์ถ๊ฐํ์ญ์์ค.
์ค์ ๋ก ์์์ ์ธ๊ธํ ๋๋ก Plumber API๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์ ์ฌํ ์๋น์ค๋ฅผ ๋ฐฐํฌํ์ต๋๋ค.
์กฐ๊ธ ๋ ๋ณต์กํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ํผ ํจ์๋ฅผ โโ์์ฑํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ PostgreSQL์ ๊ตญํ๋์ง ์๊ณ ์ฌ๋ฌ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๋ด๊ฐ ํ๋ ๋ฐฉ๋ฒ:
httr
๋ฅผ ์ฌ์ฉํ๋ ๋ํผ ํจ์๋ฅผ โโ์์ฑํฉ๋๋ค. ์ด ๋ํผ ํจ์๋ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ API ๋๋ ์ค๋ฅ ๋ฉ์์ง(์๋ ๊ฒฝ์ฐ)์์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๋ SQL์ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ๋จํ R ์คํฌ๋ฆฝํธ๋ ๋ด๋ถ R ํจํค์ง๋ฅผ ํตํด ๋ํผ ๊ธฐ๋ฅ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.์ ๋ ๊ฐ์ธ์ ์ผ๋ก SQL ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด ๊ฑฐ์ ํญ์ ๋ํผ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฐฉ๋ฒ์ ์ ํธํฉ๋๋ค.
์ ์ ๊ฐ์ ์ผ์ด์ค๋ฅผ ๊ฒช์ผ์๋ ๋ถ๋ค์๊ฒ ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ด ๋ ์ผํธ๋ฅผ ์ถ๊ฐํ์ญ์์ค.
์ค์ ๋ก ์์์ ์ธ๊ธํ ๋๋ก Plumber API๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์ ์ฌํ ์๋น์ค๋ฅผ ๋ฐฐํฌํ์ต๋๋ค.
์กฐ๊ธ ๋ ๋ณต์กํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ํผ ํจ์๋ฅผ โโ์์ฑํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ PostgreSQL์ ๊ตญํ๋์ง ์๊ณ ์ฌ๋ฌ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๋ด๊ฐ ํ๋ ๋ฐฉ๋ฒ:
httr
๋ฅผ ์ฌ์ฉํ๋ ๋ํผ ํจ์๋ฅผ โโ์์ฑํฉ๋๋ค. ์ด ๋ํผ ํจ์๋ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ API ๋๋ ์ค๋ฅ ๋ฉ์์ง(์๋ ๊ฒฝ์ฐ)์์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๋ SQL์ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ๋จํ R ์คํฌ๋ฆฝํธ๋ ๋ด๋ถ R ํจํค์ง๋ฅผ ํตํด ๋ํผ ๊ธฐ๋ฅ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.์ ๋ ๊ฐ์ธ์ ์ผ๋ก SQL ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด ๊ฑฐ์ ํญ์ ๋ํผ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฐฉ๋ฒ์ ์ ํธํฉ๋๋ค.
์ ์ ๊ฐ์ ์ผ์ด์ค๋ฅผ ๊ฒช์ผ์๋ ๋ถ๋ค์๊ฒ ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค.