๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๋ชจ๋ํฐ๋ง ๋ฐ ์ด์ ํ์ง
- ์ถ์ฒ ๋์ Anomaly Detection for Monitoring
์๋ ค์ง ๋ฏธ์ง์ ์๋ ค์ง์ง ์์ ๋ฏธ์ง
- ์๋ ค์ง ๋ฏธ์ง : ์์ธกํ ์ ์๋ ๊ฒ
- ์ฝ๊ฒ ์์ธก์ด ๊ฐ๋ฅํ ์ข ๋ฅ(NULL ๊ฐ, ํน์ ์ ์ ๋ ๋ฌธ์ , ์์คํ ์ ๊ธฐ ์ ๋ฐ์ดํธ๋ก ์ ๋ฐ๋ ์คํค๋ง ๋ณ๊ฒฝ)
- ์๋ ค์ง์ง ์์ ๋ฏธ์ง : ํ ์คํธ๋ก๋ ์ค๋ช ํ ์ ์๋ ๋ฐ์ดํฐ ๋ค์ดํ์, ์ฆ ํน์ ํ ์คํธ์์ ๋ค๋ฃจ๋ ์น์ ๋ฟ ์๋๋ผ ์ ์ฒด ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์๋ฏธ
๋ฐ์ดํฐ ๋ชจ๋ํฐ๋ง
1. ์ ์ ๋ ๋ชจ๋ํฐ๋ง
์๋ ์ฟผ๋ฆฌ๋ ROW ์ถ๊ฐ ์๋ฅผ ๋ ์ง๋ณ๋ก ์ ๋ฆฌ๋ table์ ํ์ฉํด ๋ฐ์ดํฐ ๋ค์ด์คํธ๋ฆผ์ ์ถ์ ํ๋ ์ฟผ๋ฆฌ์ด๋ค. DAYS_SINCE_LAST_UPDATE
์ค๋จ ์ง์ ์ ๊ธฐ์ ์ผ๋ก ๋ค์ ๋ ์ง๊ฐ์ ๊ฐ๊ฒฉ์ด 2์ผ ์ด๊ณผ์ด๋ฉด ์กฐํ๋ฅผ ํ๋ค.
์ด๋ ๊ฒ
WITH UPDATES AS (
SELECT DATE_ADDED
, COUNT(*) ROWS_ADDED
FROM EXOPLANETS
GROUP BY DATE_ADDED
),
NUM_DAYS_UPDATES AS (
SELECT DATE_ADDED
, TO_DAYS(DATE_ADDED) - TO_DAYS(LAG(DATE_ADDED) OVER(ORDER BY DATE_ADDED)) AS DAYS_SINCE_LAST_UPDATE
FROM UPDATES
)
SELECT *
FROM NUM_DAYS_UPDATES
WHERE DAYS_SINCE_LAST_UPDATE > 2
;
2. ๋ถํฌ
์ ๊ท ๋ถํฌ๋ฅผ ํ์ฉํ๋ฉด ๋งค์ฐ ๋จ์ํ์ง๋ง ๋๋๊ณ ํจ๊ณผ์ ์ธ ์ด์ํ์ง์ ๊ธฐ์ด์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์๊ฐํ ์ ์๋ค.
NULL ๊ฐ ๋น์จ์ ํ์งํ๋ '์คํ์ดํฌ'๊ฐ ์์์ ๋ณด์ฌ์ค๋ค.
SELECT DATE_ADDED
, COUNT(*) ROWS_ADDED
, CAST(
SUM(
CASE
WHEN DISTANCE IS NULL THEN 1
ELSE 0
END
) AS FLOAT) / COUNT(*) AS DISTANCE_NULL_RATE,
CAST(
SUM(
CASE
WHEN G IS NULL THEN 1
ELSE 0
END
) AS FLOAT) / COUNT(*) AS G_NULL_RATE,
CAST(
SUM(
CASE
WHEN ORBITAL_PERIOD IS NULL THEN 1
ELSE 0
END
) AS FLOAT) / COUNT(*) AS ORBITAL_PERIOD_NULL_RATE,
CAST(
SUM(
CASE
WHEN AVG_TEMP IS NULL THEN 1
ELSE 0
END
) AS FLOAT) / COUNT(*) AS AVG_TEMP_NULL_RATE
FROM EXOPLANETS
GROUP BY DATE_ADDED;
3. ๊ณ๋ณด์ ์๊ฐํ
๊ณ๋ณด : ๋ฐ์ดํฐ ์ต์ ๋ฒ๋น๋ฆฌํฐ์ ๋ค์ฏ๊ฐ์ง ํต์ฌ ์์ ์ค ๊ฐ์ฅ ์ค์ํ ๊ฒ
- ์ํฅ๋ฐ์ ์ ์๋ ๋ค์ด์คํธ๋ฆผ ์์ค
- ๊ทผ๋ณธ์ ์ธ ์์ธ์ด ๋ ์ ์๋ ์
์คํธ๋ฆผ ์์ค๋ฅผ ์๋ ค์ค์ผ๋ก์จ ๋งฅ๋ฝํ ๋จ์
๋ฐ์ดํฐ Quick SQL Script๋ฅผ ์ด์ฉํด ๊ฐ ์ปฌ๋ผ์ ์์ฑ์ ๋ณด๊ณ ์์กด์ฑ์ ํ์ ํ๋ค.4. ๋ฐ์ดํฐ ์ด์ ์กฐ์ฌํ์์ ์ ๊ท๋ถํฌ๋ฅผ ๋ฐ๋ฅด๊ณ ์๋ ๋ฐ์ดํฐ๊ฐ 3 sigma ์ด์์ ์ฐจ์ด๊ฐ ๋๋ ๊ฐ์ด ์์ฃผ ๋ฐ์ํ๋ค๋ฉด ์ด์์น๋ผ๊ณ ์์ฌํด ๋ณผ ์ ์๋ค. 1๋ฒ์ NULL ๋น์จ๊ณผ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
๋ฐ์ดํฐ ํ์ง ๋ชจ๋ํฐ ์ค๊ณ : ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค vs ๋ฐ์ดํฐ ๋ ์ดํฌ
๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์ ๊ตฌ์กฐํ๋ ๋ชจ๋๋ก์ ๋ฐ์ดํฐ, ์ต์ ๋ฐ์ดํฐ ๋ ์ดํฌ๋ฅผ ๋ฐ๋ฐ๋ฅ๋ถํฐ ์์ํ ์ง ๊ตฌ๋ถํ๊ณ ๊ฒฐ์ ํ๋ ์ผ์ ์ค์ํ๋ค.
๊ณ ๋ คํด์ผํ ์์
- ๊ณ ๋ คํด์ผํ๋ ์ง์ ์ ์ ์
- ๋ฉํ๋ฐ์ดํฐ ์์ง ๋ฐ ์ ์ฅ ๋ฐฉ๋ฒ
- ๋ฉํ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ
์ ๋ฆฌ
- ๋ฐ์ดํฐ ๋ ์ดํฌ์ ์ง์
์ ์ด ๋ง๋ค.
๋์ ์ด์ง์ฑ
๊ณ ๋ ค (PostgresSQL) - ๋ฐ์ดํฐ ๋ ์ดํฌ๋ก ์ง์ ์์ง๋ ๋ฉํ๋ฐ์ดํฐ๋ ์ด์ ํ์ง ์๊ณ ๋ฆฌ์ฆ์ ์คํํ๊ธฐ ์ ์ ๋ค์ํ ์์ค์ ์ ์ฒ๋ฆฌ๊ฐ ํ์.
[keyword]
์์ฃผ ๋ฎ์ ๊ฐ๊ณผ ์์ฃผ ๋์ ๊ฐ ์ฌ์ด์ ๊ณจ๋๋ฝ์ค ์กด(Goldilocks Zone), ์ค์ํธ ์คํ(sweet spot)
๊ณจ๋๋ฝ์ค ์กด(Goldilocks Zone) : ์๋ฌผ์ด ์ด์๊ฐ๊ธฐ์ ์ ํฉํ ํ๊ฒฝ์ ์ง๋ ์ฐ์ฃผ ๊ณต๊ฐ์ ๋ฒ์
์ค์ํธ ์คํ(sweet spot) : ํด๋ฝ, ๋ผ์ผ, ๋ฐฐํธ ๋ฑ์ ๊ณต์ด ๋ง์์๋ ๊ฐ์ฅ ์ ๋ ์๊ฐ๋ ์ต์ ์ ์ง์ ์ ๋ปํ๋ ์คํฌ์ธ ์ฉ์ด
'๐ข๏ธ Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ ์ด์ฃผ To NAS (synology, dropbox) (0) | 2024.09.03 |
---|---|
Data Orchestration (0) | 2024.08.03 |
๋ฐ์ดํฐ ํ์ง์ ๋น๋ฐ (3) (0) | 2024.07.30 |
Airflow Entrypoint (0) | 2024.07.28 |
๋ฐ์ดํฐ ํ์ง์ ๋น๋ฐ (2) (0) | 2024.07.21 |