๋ฐ์ดํ„ฐ ์ด์ฃผ To NAS (synology, dropbox)
ยท
๐Ÿ›ข๏ธ Database
์Œ“์—ฌ๋งŒ ๊ฐ€๋Š” ๋ฐ์ดํ„ฐ. ๋ฒ„๋ฆฌ์ง€๋Š” ๋ชปํ•˜๊ณ  ๋ถ„์‚ฐ๋˜์–ด ์žˆ์–ด ๋”์šฑ์ด ์ฐพ์„ ์ˆ˜๊ฐ€ ์—†๋Š” ์ƒํ™ฉ์— ์ด๋ฅด๋ €๋‹ค. ์ด ์ƒํ™ฉ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด NAS๋ฅผ ๊ตฌ์ถ•ํ•ด ํ•˜๋‚˜์˜ ๊ณต๊ฐ„์— ๋ชฐ์•„๋„ฃ์œผ๋ ค ๋ช‡ ์ฃผ๊ฐ„์˜ ์„œ์นญ ๋์— Synology Disk Station +923 ๋ชจ๋ธ์„ ๊ตฌ๋งคํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. 4 bay๋กœ ํ–ฅํ›„ ์ถ”๊ฐ€๋  ๋„‰๋„‰ํ•œ slot๊ณผ ๋ฌด๋‚œํ•œ RAM 4g ์‚ฌ์–‘์œผ๋กœ ์ดˆ์‹ฌ์ž๋„ ์˜ค๋ž˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๊ฒฉ๋งŒ ๋นผ๋ฉด  NAS๋Š” ์ƒ์‹œ HDD๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์Œ๊ณผ ์ง„๋™์ด ์ •๋ง ํฌ๋‹ค. ํŠนํžˆ 365์ผ ๋””์Šคํฌ I/O์™€ ์„œ๋ฒ„๋ฅผ ์œ ์ง€ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„ ์ „์šฉ RAM๊ณผ ์ €์žฅ ์žฅ์น˜๋ฅผ ๊ตฌ๋งคํ•ด์•ผ ํ•œ๋‹ค. ํ•ด๋†€๋กœ์ง€๋ผ๋Š” ํ•ด์ ํŒ OS๊ฐ€ ์žˆ์ง€๋งŒ ์•ˆ์ •์„ฑ์— ์žˆ์–ด์„œ ๋ฌธ์ œ๊ฐ€ ๋งŽ๋‹ค๋Š” ๊ธ€์„ ๋งŽ์ด ๋ณด์•˜๋‹ค. ๋งŒ์•ฝ ๋…ธ๋Š” ์ปดํ“จํ„ฐ ๋…ธ๋Š” ํ•˜๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์‹œ๋„ํ•ด ๋ณด๋Š” ๊ฒƒ๋„ ์ข‹๋‹ค...
๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์˜ ๋น„๋ฐ€ (4)
ยท
๐Ÿ›ข๏ธ Database
๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ด์ƒ ํƒ์ง€์ถ”์ฒœ ๋„์„œ Anomaly Detection for Monitoring์•Œ๋ ค์ง„ ๋ฏธ์ง€์™€ ์•Œ๋ ค์ง€์ง€ ์•Š์€ ๋ฏธ์ง€์•Œ๋ ค์ง„ ๋ฏธ์ง€ : ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์‰ฝ๊ฒŒ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•œ ์ข…๋ฅ˜(NULL ๊ฐ’, ํŠน์ • ์‹ ์„ ๋„ ๋ฌธ์ œ, ์‹œ์Šคํ…œ ์ •๊ธฐ ์—…๋ฐ์ดํŠธ๋กœ ์œ ๋ฐœ๋œ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ)์•Œ๋ ค์ง€์ง€ ์•Š์€ ๋ฏธ์ง€ : ํ…Œ์ŠคํŠธ๋กœ๋„ ์„ค๋ช…ํ•  ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ ๋‹ค์šดํƒ€์ž„, ์ฆ‰ ํŠน์ • ํ…Œ์ŠคํŠธ์—์„œ ๋‹ค๋ฃจ๋Š” ์„น์…˜๋ฟ ์•„๋‹ˆ๋ผ ์ „์ฒด ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์˜๋ฏธ ๋ฐ์ดํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง 1. ์‹ ์„ ๋„ ๋ชจ๋‹ˆํ„ฐ๋ง ์•„๋ž˜ ์ฟผ๋ฆฌ๋Š” ROW ์ถ”๊ฐ€ ์ˆ˜๋ฅผ ๋‚ ์งœ๋ณ„๋กœ ์ •๋ฆฌ๋œ table์„ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ ๋‹ค์šด์ŠคํŠธ๋ฆผ์„ ์ถ”์ ํ•˜๋Š” ์ฟผ๋ฆฌ์ด๋‹ค. DAYS_SINCE_LAST_UPDATE ์ค‘๋‹จ ์ง€์ ์„ ๊ธฐ์ ์œผ๋กœ ๋‹ค์Œ ๋‚ ์งœ๊ฐ„์˜ ๊ฐ„๊ฒฉ์ด 2์ผ ์ดˆ๊ณผ์ด๋ฉด ์กฐํšŒ๋ฅผ ํ•œ๋‹ค.์ด๋ ‡๊ฒŒWITH UPDATE..
Data Orchestration
ยท
๐Ÿ›ข๏ธ Database
Data Orchestration Airflow? ๋ฐ์ดํ„ฐ ์ข…์‚ฌ์ž๋ผ๋ฉด Data Orchestration(๋ฐฐ์น˜ ํˆด)์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ์ฏค ๋“ค์–ด๋ดค์„ ๊ฒƒ์ด๋‹ค. ๊ทธ์ค‘ Airflow๊ฐ€ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ด๊ณ  ์ธ๊ธฐ๊ฐ€ ์žˆ์ง€๋งŒ ์ด Dag system์„ ์ฒ˜์Œ ์ตํžˆ๊ธฐ๋Š” ์ƒ๋‹นํžˆ ์ƒ์†Œํ•˜๊ณ  ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์šธ ๊ฒƒ์ด๋‹ค. execute date, start date, clear ๋“ฑ ๋“ฑ ๋ฐฐ์น˜ํ•˜๋‚˜ ํ•œ ์ค‘์š”ํ•œ task๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์น˜๊ฐ€ ์‹œ์Šคํ…œ์„ ์ž˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ณ  ๋ถˆํ•„์š”ํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ์‹คํŒจํ•œ task๊ฐ€ ์‹คํŒจ ์‹œ์ ์—์„œ ์ง€๊ธˆ ์‹œ๊ฐ„๊นŒ์ง€ ์žฌ์‹œ์ž‘์ด ๋˜๋Š” ๋ถˆ์ƒ์‚ฌ ๋˜ํ•œ ์ผ์–ด๋‚  ์ˆ˜๋„ ์žˆ๋‹ค. (ex) catch_up)  Airflow์˜ UI๋ฅผ ๋ณผ ๋•Œ ํ˜นํ•ด์„œ ๋งŽ์ด๋“ค ์„ ํƒํ•˜๊ณ  ํ›„ํšŒํ•˜๋Š” ํฌ์ธํŠธ๊ฐ€ ์—ฌ๋Ÿฟ ์žˆ๋‹ค.  ์ฒซ ๋ฒˆ์งธ. Airflow์˜ ํŒจํ‚ค์ง€ ๊ด€์  ..
๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์˜ ๋น„๋ฐ€ (3)
ยท
๐Ÿ›ข๏ธ Database
๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ · ์ •์ œ · ๋ณ€ํ™˜ · ํ…Œ์ŠคํŠธ(1) ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์ˆ˜์ง‘์—๋งŒ ์ดˆ์ ์„ ๋‘๋ฉด ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์ธ ์—…์ŠคํŠธ๋ฆผ์— ์žˆ๋Š” ์ง„์ž…์ ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์†Œ๊ฐœํ•œ๋‹ค. Docker๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค๋ฉด entrypoint๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ง„์ž…์ ์˜ ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋ธ๋ง์„ ํ•˜๋Š” ์™ธ๋ถ€ ์„ธ๊ณ„์˜ ์ „ํ˜•์ ์ธ ๋…ธ์ด์ฆˆ์™€ ๋ถˆ๊ทœ์น™์„ฑ์„ ๋ชจ๋‘ ๋‚ดํฌํ•˜๊ณ  ์žˆ์–ด ๊ฐ€์žฅ ์›์‹œ์ ์ด๋‹ค. ๋Œ€๊ฒŒ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์†Œ์Šค๋ฅผ ๋ณด์œ ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ๋Œ€๋ถ€๋ถ„ ๋ถ„์„ ์„œ๋น„์Šค ๋˜๋Š” API์™€ ๊ฐ™์€ ์ผ๋ถ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ, ์—…์ŠคํŠธ๋ฆผ ๋„๊ตฌ์— ์˜์กดํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์†Œ์Šค๋Š” ํฌ๊ฒŒ ์„ธ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ ๋œ๋‹ค.์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์†Œํ”„ํŠธ์›จ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์˜ ์ž‘์—…์œผ๋กœ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ํด๋ผ์ด์–ธํŠธ์šฉ ๋˜๋Š” ๋‚ด๋ถ€์šฉ์ผ ์ˆ˜ ์žˆ๋‹ค. ์ž‘์—…์€ ์‚ฌ์šฉ์ž ์‹œ์ž‘ ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์ผ ์ˆ˜ ์žˆ๋‹ค. ์†Œํ”„ํŠธ..
Airflow Entrypoint
ยท
๐Ÿ›ข๏ธ Database
Entrypoint ํ”„๋กœ๋•์…˜ ์ด๋ฏธ์ง€์˜ ๊ธฐ๋ณธ ์ง„์ž…์ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋™์ž‘์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ด๋ฏธ์ง€์— ์ „๋‹ฌํ•˜์—ฌ ํ•ด๋‹น ๋™์ž‘ ์ค‘ ์ผ๋ถ€๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ž„์˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉ Airflow ์ด๋ฏธ์ง€๋Š” Open-Shift์™€ ํ˜ธํ™˜๋˜๋ฏ€๋กœ ์ž„์˜์˜ ์‚ฌ์šฉ์ž ID์™€ ๊ทธ๋ฃน ID 0( root)๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Airflow์™€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž์˜ GID๋ฅผ .์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค 0. ๋‹ค๋ฅธ ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ง„์ž…์ ์ด ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.OpenShift๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ UID๋ฅผ ๋ฌด์ž‘์œ„๋กœ ํ• ๋‹นํ•˜์ง€๋งŒ, ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ด ์œ ์—ฐํ•œ UID๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ..
๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์˜ ๋น„๋ฐ€ (2)
ยท
๐Ÿ›ข๏ธ Database
์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋ธ”๋ก ์กฐ๋ฆฝ(1) ์šด์˜ ๋ฐ์ดํ„ฐ์™€ ๋ถ„์„ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์ด์กฐ์ง ๋‚ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ํฌ๊ฒŒ ๊ตฌ๋ถ„ํ•ด ๋‹ฌ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ์šด์˜ ๋ฐ์ดํ„ฐ์™€ ๋ถ„์„ ๋ฐ์ดํ„ฐ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์šด์˜ ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ๊ณผ ์‹ ๋ขฐ์„ฑ ๊ด€๋ฆฌ๋Š” ์ข…์ข… (DevOps, SRE), ๋ถ„์„ ๋ฐ์ดํ„ฐ์˜ ๊ด€๋ฆฌ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๋•ํŠธ์™€ ๊ด€๋ จ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ๋กœ OLTP์™€ OLAP๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์šด์˜์ƒ์ด๋ƒ ๋ถ„์„์„ ์œ„ํ•ด ์ด๋ƒ ์ฐจ์ด๋กœ ๋ณด๋ฉด ๋œ๋‹ค.์šด์˜ ๋ฐ์ดํ„ฐ๋Š” ์šด์˜์ƒ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ, ์กฐ์ง์—์„œ ์ผ์ƒ์ ์ธ ์šด์˜์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ์ด๋‹ค. ํŠน์ • ์‹œ์ ์˜ ์ธ๋ฒคํ† ๋ฆฌ ์Šค๋ƒ…์ƒท, ๊ณ ๊ฐ ์ธ์ƒ ๋ฐ ๊ฑฐ๋ž˜ ๊ธฐ๋ก ๋ชจ๋‘ ์šด์˜ ๋ฐ์ดํ„ฐ์— ์†ํ•œ๋‹ค.๋ถ„์„ ๋ฐ์ดํ„ฐ๋Š” ๋ถ„์„์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ, ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์˜์‚ฌ ๊ฒฐ์ •์— ํ™œ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•œ๋‹ค. ์ „ํ™˜๋ฅ , ํด๋ฆญ๋ฅ , ๊ธ€๋กœ๋ฒŒ..
๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์˜ ๋น„๋ฐ€ (1)
ยท
๐Ÿ›ข๏ธ Database
Intro์คŒ์ธํฌ๋Š” ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ๋ฌธ์ œ๋กœ ๊ณ ๊ฐ์˜ 20%๊ฐ€ ์ดํƒˆํ•œ ๊ฒฝํ—˜์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ ์กฐ์ง์ด ํ’ˆ์งˆ ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ „์ฒด ์—…๋ฌด์˜ 40%์ด์ƒ ์†Œ๋ชจํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ๊ด€๋ จ ์‚ฌ์†Œํ•œ ์ด์Šˆ๋Š” ์ง€์†์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์˜ค๋ฅ˜๋Š” ํ”ํ•œ ์ผ์ด๋ฏ€๋กœ ๋†€๋ž„ ์ผ์€ ์•„๋‹ˆ์—ˆ๋‹ค.๋‚จ๊ทน ํƒํ—˜๊ฐ€๋“ค์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ €ํ’ˆ์งˆ ๋ฐ์ดํ„ฐ๋กœ ๋ชฉ์ ์ง€์ธ ๋‚จ๊ทน์˜ ์œ„์น˜๋ฅผ ์ž˜๋ชป ๊ณ„์‚ฐ1999๋…„ ํ™”์„ฑ ๊ธฐํ›„ ๊ถค๋„์„ (NASA) ์‚ฌ๊ณ ๋Š” ๋ฏธํ„ฐ๋ฒ•์„ ํ˜ผ๋™ํ•˜์—ฌ ๋ฐœ์ƒํ•œ ์ผ, ์ด ์ผ๋กœ 1์–ต 2500๋งŒ ๋‹ฌ๋Ÿฌ ๋น„์šฉ ๋ฐœ์ƒํ•„์ž๋Š” ์ด์ฒ˜๋Ÿผ ํ”ํ•˜์ง€๋งŒ ํฐ ์‚ฌ๊ณ ๋ฅผ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์ดํ„ฐ ๋‹ค์šดํƒ€์ž„์„ ๋ฐฉ์ง€ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์„ ์œ ์ง€, ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•˜๊ณ ์ž ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ–ˆ๋‹ค.(1) ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์ด๋ž€?์‹ ๋ขฐ์„ฑ(reliability), ์™„์ „์„ฑ(completeness), ์ •ํ™•์„ฑ(accuracy..
[UNION ALL] Colum Row ๋ณ‘ํ•ฉ
ยท
๐Ÿ›ข๏ธ Database
SELECT * FROM (SELECT colA, colB FROM tableA UNION SELECT colA, colB FROM tableB) WHERE colA > 1 https://stackoverflow.com/questions/5437507/union-with-where-clause UNION with WHERE clause I'm doing a UNION of two queries on an Oracle database. Both of them have a WHERE clause. Is there a difference in the performance if I do the WHERE after UNIONing the queries compared to performin... stackove..
๋‹คํ–ˆ๋‹ค
'๐Ÿ›ข๏ธ Database' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก