์ฐฝ๊ณ ์˜ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ

์›จ์–ดํ•˜์šฐ์Šค์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ์€ ๊ท€์ค‘ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ ์ค‘์š”ํ•œ ์ „์ œ ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค. ํ’ˆ์งˆ์ด ์ข‹์ง€ ์•Š์œผ๋ฉด ์žฅ๊ธฐ์ ์œผ๋กœ ๋ถ€์ •์ ์ธ ์—ฐ์‡„ ๋ฐ˜์‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ฒซ์งธ, ์ œ๊ณต๋œ ์ •๋ณด์— ๋Œ€ํ•œ ์‹ ๋ขฐ๊ฐ€ ์ƒ์‹ค๋ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๋น„์ฆˆ๋‹ˆ์Šค ์ธํ…”๋ฆฌ์ „์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋œ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ž ์žฌ๋ ฅ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํ™œ์šฉ๋˜์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ถ„์„ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํˆฌ์ž์— ์˜๋ฌธ์ด ์ œ๊ธฐ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์— ๋Œ€ํ•œ ์ฑ…์ž„

BI ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ํ–ฅ์ƒ๊ณผ ๊ด€๋ จ๋œ ์ธก๋ฉด์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ๊ธฐ์ˆ  ์ „๋ฌธ๊ฐ€๋งŒ์˜ ํŠน๊ถŒ์ด ์•„๋‹™๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธก๋ฉด์—๋„ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

๊ธฐ์—… ๋ฌธํ™”

  • ๊ทผ๋กœ์ž ์ž์‹ ์ด ์ข‹์€ ํ’ˆ์งˆ์„ ์ƒ์‚ฐํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
  • ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์™œ ์•ˆ ๋ฉ๋‹ˆ๊นŒ? ์ดํ•ด์ƒ์ถฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ’ˆ์งˆ ์ฑ…์ž„์ž๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ์—… ๊ทœ์น™์ด ์žˆ์„๊นŒ์š”?

ํ”„๋กœ์„ธ์Šค

  • ์ด ์ฒด์ธ์˜ ๋์—์„œ๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜๋‚˜์š”?
  • ์•„๋งˆ๋„ ์šด์˜ ์ฒด์ œ๋Š” ํ˜„์‹ค์—์„œ ํŠน์ • ์ƒํ™ฉ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด "๋น„ํ‹€์–ด"์•ผ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์šด์˜ ์ฒด์ œ๊ฐ€ ๋ฐ์ดํ„ฐ ํ™•์ธ ๋ฐ ์กฐ์ •์„ ์ž์ฒด์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๊นŒ?

์กฐ์ง์˜ ๋ชจ๋“  ์‚ฌ๋žŒ์€ ๋ณด๊ณ  ์‹œ์Šคํ…œ์˜ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์— ๋Œ€ํ•œ ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์˜์™€ ์˜๋ฏธ

ํ’ˆ์งˆ์€ ๊ณ ๊ฐ ๊ธฐ๋Œ€์— ๋Œ€ํ•œ ์ž…์ฆ๋œ ๋งŒ์กฑ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์—๋Š” ์ •์˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ•ญ์ƒ ์‚ฌ์šฉ ์ƒํ™ฉ์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์™€ BI ์‹œ์Šคํ…œ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์˜ค๋Š” ์šด์˜ ์ฒด์ œ์™€ ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์šด์˜ ์ฒด์ œ์—์„œ๋Š” ๊ณ ๊ฐ ์†์„ฑ์ด ์„ ํƒ์  ํ•„๋“œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์—์„œ ์ด ์†์„ฑ์€ ์ฐจ์›์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•ด๋‹น ์†์„ฑ์„ ์ฑ„์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์ง€์†์ ์œผ๋กœ ๋ณ€ํ™”ํ•˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์šด์˜ ์ฒด์ œ ์š”๊ตฌ ์‚ฌํ•ญ๋ณด๋‹ค ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šด์˜ ์ฒด์ œ์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ๋ฐ˜๋Œ€์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์„ ์ธก์ • ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๋ฉด ํ•ด๋‹น ํ‘œ์ค€์„ ์„ค๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—…๋ฌด์— ์ •๋ณด์™€ ์ˆ˜์น˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๊ธฐ์ˆ  ๊ณผ์ •์— ์ฐธ์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐœ์ž…์˜ ๊ฒฐ๊ณผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ‘œ๋ฅผ ํ†ตํ•ด ํ•œ๋ˆˆ์— ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ทœ์น™์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ทœ์น™์€ ํ›„์† ํ™•์ธ์„ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŠธ/์ฝ”๋“œ ํ˜•์‹์œผ๋กœ ์ง€์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๊ฐœ์„ 

๋ฐ์ดํ„ฐ๋ฅผ ์›จ์–ดํ•˜์šฐ์Šค์— ๋กœ๋“œํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ชจ๋“  ๊ฐ€์ƒ ์˜ค๋ฅ˜๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์€ ๋ชจ๋“  ์ฐธ๊ฐ€์ž ๊ฐ„์˜ ๊ธด๋ฐ€ํ•œ ํ˜‘๋ ฅ์„ ํ†ตํ•ด์„œ๋งŒ ๋‹ฌ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์–ด๋–ค ์ž‘์—…์ด ์˜ค๋ฅ˜๋กœ ์ด์–ด์ง€๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์€ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ๋งŽ์€ ์กฐ์ง์—๋Š” ์ง€์†์ ์ธ ๊ฐœ์„ ์„ ์œ„ํ•œ ์ „๋žต์ด ์—†์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ฐ์ดํ„ฐ ์ €์žฅ์—๋งŒ ๊ตญํ•œํ•˜๊ณ  ๋ถ„์„ ์‹œ์Šคํ…œ์˜ ์ž ์žฌ๋ ฅ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์˜ˆ์‚ฐ์˜ 70~80%๊ฐ€ ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ โ€‹โ€‹๊ตฌํ˜„์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ฐœ์„  ํ”„๋กœ์„ธ์Šค๋Š” ์ „ํ˜€ ๋ถˆ์™„์ „ํ•œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๋„๊ตฌ

์†Œํ”„ํŠธ์›จ์–ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๊ฐœ์„  ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•„๋“œ ํ˜•์‹, ๊ธฐ๋ณธ๊ฐ’ ์กด์žฌ, ํ…Œ์ด๋ธ” ํ•„๋“œ ์ด๋ฆ„ ์ค€์ˆ˜ ๋“ฑ ์Šคํ† ๋ฆฌ์ง€ ๊ตฌ์กฐ์˜ ๊ธฐ์ˆ ์  ๊ฒ€์ฆ์„ ์™„์ „ํžˆ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด์šฉ ํ™•์ธ์ด ๋” ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ† ๋ฆฌ์ง€ ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋ฐ์ดํ„ฐ ํ•ด์„๋„ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„๊ตฌ ์ž์ฒด๋Š” ์ง€์›์ด ํ•„์š”ํ•œ ๊ฑฐ๋Œ€ํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์‚ฌํšŒ

์ผ๋ฐ˜์ ์œผ๋กœ ๋งค์žฅ์„ ์„ค๊ณ„ํ•˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ๋ทฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋†€๋ผ์šด ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์šฉ์˜ ๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ์„ ์•Œ๋ฉด ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์—์„œ ์˜ค๋ฅ˜๋‚˜ ๋ฌธ์ œ์ ์„ ๋ฐœ๊ฒฌํ•œ ๊ฐ ์‚ฌ๋ก€๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ ํ˜•์‹์œผ๋กœ ๊ธฐ๋ก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์ง€์‹ ๊ธฐ๋ฐ˜์ด ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ทธ๋Ÿฌํ•œ ์š”์ฒญ์€ ๋นจ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜ ๋„๊ตฌ๋ณด๋‹ค ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋” ์ ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ๋Š” ํ•ญ์ƒ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ค‘์š”ํ•œ ๋ณด๊ณ ์„œ์˜ ๊ฒฝ์šฐ ๋ณด๊ธฐ์—๋Š” ์ˆ˜์‹ ์ž๊ฐ€ ํฌํ•จ๋œ ์—ด์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ BI ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›จ์–ดํ•˜์šฐ์Šค์˜ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ์ƒํƒœ๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

์˜ˆ

์ฟผ๋ฆฌ๋Š” Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ ํ…Œ์ŠคํŠธ๋Š” ์›ํ•˜๋Š” ๋Œ€๋กœ ํ•ด์„๋  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. T_MIN ๋ฐ T_MAX ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ๋ณด ์ˆ˜์ค€์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. REPORT ํ•„๋“œ๋Š” ์ด๋ฉ”์ผ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๋Š” ์ƒ์—…์šฉ ETL ์ œํ’ˆ์—์„œ ๋ฉ”์‹œ์ง€๋กœ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฏ€๋กœ rpad๋Š” "๋ฒ„ํŒ€๋ชฉ"์ž…๋‹ˆ๋‹ค.

ํฐ ํ…Œ์ด๋ธ”์˜ ๊ฒฝ์šฐ ์˜ˆ๋ฅผ ๋“ค์–ด AND ROWNUM <= 10์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 10๊ฐœ์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉด ๊ฒฝ๋ณด๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

CREATE OR REPLACE VIEW V_QC_DIM_PRODUCT_01 AS
SELECT
  CASE WHEN OUTPUT>=T_MIN AND OUTPUT<=T_MAX
  THEN 'OK' ELSE 'ERROR' END AS RESULT,
  DESCRIPTION,
  TABLE_NAME, 
  OUTPUT, 
  T_MIN,
  T_MAX,
  rpad(DESCRIPTION,60,' ') || rpad(OUTPUT,8,' ') || rpad(T_MIN,8,' ') || rpad(T_MAX,8,' ') AS REPORT
FROM (-- Test itself
  SELECT
    'DIM_PRODUCT' AS TABLE_NAME,
    'Count of blanks' AS DESCRIPTION,
    COUNT(*) AS OUTPUT,
    0 AS T_MIN,
    10 AS T_MAX
  FROM DIM_PRODUCT
  WHERE DIM_PRODUCT_ID != -1 -- not default value
  AND ATTRIBUTE IS NULL ); -- count blanks

์ถœํŒ๋ฌผ์€ ์ฑ…์˜ ์ž๋ฃŒ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋กœ๋„๋“œ ๋ฐ”ํ๋งŒ ๋ฐ•์‚ฌ ๊ท€๋„ ์ผํผ
Raus aus der BI-Falle
Wie Business Intelligence zum Erfolg wird


์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€