๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿ’ป Programming/Database3

[PostgreSQL] ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์˜ ์ผ๋ถ€๋ฅผ ์ง€์ •๋œ ๋‹จ์œ„๋กœ ์ž๋ฅด๊ธฐ | 'date_trunc' ํ•จ์ˆ˜ ์„ค๋ช… PostgreSQL์—์„œ date_trunc ํ•จ์ˆ˜๋Š” ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์˜ ์ผ๋ถ€๋ฅผ ์ง€์ •๋œ ๋‹จ์œ„๋กœ ์ž๋ฅด๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ฃผ์–ด์ง„ ๋‹จ์œ„์— ๋”ฐ๋ผ ์ฃผ์–ด์ง„ ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์˜ ๊ฐ’์„ ๋ฐ˜์˜ฌ๋ฆผ ๋˜๋Š” ๋ฒ„๋ฆผํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค. date_trunc(unit, source); unit: ์ž๋ฅด๊ณ ์ž ํ•˜๋Š” ์‹œ๊ฐ„ ๋˜๋Š” ๋‚ ์งœ์˜ ๋‹จ์œ„๋ฅผ ์ง€์ • source: ์ž๋ฅด๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์ด ๋˜๋Š” ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„ date_trunc ์‚ฌ์šฉ ์˜ˆ์‹œ ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์—์„œ ์‹œ๊ฐ„์„ ์ž๋ฅด๊ธฐ SELECT date_trunc('hour', NOW()); -- ๊ฒฐ๊ณผ: ํ˜„์žฌ ์‹œ๊ฐ„์˜ ์ •๊ฐ๊นŒ์ง€์˜ ๊ฐ’์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋‚ ์งœ์—์„œ ์›”์„ ์ž๋ฅด๊ธฐ SELECT date_trunc('month', '2023-03-15'::date); -- ๊ฒฐ๊ณผ: '2023-03-01' (ํ•ด๋‹น ์›”์˜ ์ฒซ ๋ฒˆ์งธ ๋‚ ์งœ.. 2023. 12. 3.
[PostgreSQL/Python] DB ํŠธ๋žœ์žญ์…˜ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ | asyncio, asyncpg | ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ’€ ๋งŒ๋“ค๊ธฐ asyncio asyncio๋Š” Python์˜ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ด๋ฒคํŠธ ๋ฃจํ”„์™€ ์ฝ”๋ฃจํ‹ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ์—ญํ• ์„ ํ•œ๋‹ค. ๋น„๋™๊ธฐ ์ฝ”๋“œ ๊ด€๋ฆฌ: asyncio๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์Šค์ผ€์ค„๋ง์ด ๊ฐ€๋Šฅ. ์ด๋ฒคํŠธ ๋ฃจํ”„: asyncio์˜ ํ•ต์‹ฌ ์š”์†Œ๋Š” ์ด๋ฒคํŠธ ๋ฃจํ”„๋กœ, ๋น„๋™๊ธฐ ์ž‘์—…์˜ ์Šค์ผ€์ค„๋ง๊ณผ ์‹คํ–‰์„ ๊ด€๋ฆฌํ•˜๋ฉฐ ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉด์„œ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌ. ์ฝ”๋ฃจํ‹ด ์ง€์›: asyncio๋Š” ์ฝ”๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅ. async def๋กœ ์ •์˜๋œ ์ฝ”๋ฃจํ‹ด ํ•จ์ˆ˜๋Š” await ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ž‘์—…์„ ์ผ์‹œ ์ค‘๋‹จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ. ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ: asyncio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ.. 2023. 11. 3.
[PostgreSQL/Python] psycopg2 : PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•˜๊ณ  ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ psycopg2 'psycopg2'๋Š” Python์—์„œ PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•˜๊ณ  ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ธ๊ธฐ์žˆ๋Š” PostgreSQL ์–ด๋Œ‘ํ„ฐ์ด๋‹ค. ์ด ์–ด๋Œ‘ํ„ฐ๋Š” PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๊ฒฐ์„ ์šฉ์ดํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ์‹คํ–‰, ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ๊ฐฑ์‹ , ์‚ญ์ œ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 'psycopg2'๋Š” PostgreSQL ์„œ๋ฒ„์™€์˜ ํšจ์œจ์ ์ธ ํ†ต์‹ ์„ ์œ„ํ•ด C ํ™•์žฅ ๋ชจ๋“ˆ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„์™€ ๋†’์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ๋ฌผ๋ก , ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์†์‰ฝ๊ฒŒ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. 'psycopg2'๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Python ์ฝ”๋“œ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. PostgreSQL.. 2023. 6. 29.
728x90