Skip to main content
소요 시간: ~15분 | 사전 조건: 02. 공기청정기 데이터 생성 완료 | 컴퓨트: Serverless 권장

이 모듈에서 사용하는 Databricks 기능

기능설명공식 문서
PySparkDatabricks의 분산 데이터 처리 엔진. 대규모 데이터를 클러스터에서 병렬로 생성/처리합니다.docs
Faker테스트용 가짜 데이터를 생성하는 Python 라이브러리. 현실적인 센서 값을 만듭니다.pypi
Delta LakeDatabricks의 기본 테이블 형식. 트랜잭션 보장, 스키마 진화, 시간 여행(Time Travel) 기능을 제공합니다.docs

개요

DUALCOOL/WHISEN 에어컨에서 수집되는 IoT 센서 데이터를 기반으로 9개 테이블, 약 120만 건의 가상 데이터를 생성합니다. 에어컨 특유의 냉/난방 사이클, 컴프레서 동작, 에너지 효율 등 실제 운전 데이터 구조를 반영합니다.

데이터 아키텍처

catalog: lge_appliance
├── bronze (Raw IoT 센서 로그)
│   ├── [Master] ac_devices                    8,000건   — 에어컨 디바이스 마스터
│   ├── [Sensor] ac_temperature_logs         400,000건   — 실내/외 온도, 설정 온도 측정
│   ├── [Sensor] ac_humidity_logs            200,000건   — 실내 습도 및 제습량
│   ├── [Operation] ac_operation_logs        250,000건   — 냉방/난방/제습/송풍 모드, 풍향/풍속
│   ├── [Operation] ac_compressor_events      80,000건   — 컴프레서 가동/정지, 주파수(Hz)
│   ├── [Energy] ac_energy_consumption       200,000건   — 시간대별 전력 소비 및 EER
│   ├── [IoT] ac_thinq_commands               60,000건   — ThinQ 앱 원격 제어 명령
│   ├── [Alert] ac_alert_events               30,000건   — 에러 코드, 정비 알림
│   └── [Maintenance] ac_maintenance_logs     20,000건   — 정기 점검, 냉매 충전, 세척 이력

테이블별 DDL 및 프롬프트

1. 디바이스 마스터 (ac_devices)

lge_appliance.bronze.ac_devices 테이블을 생성해줘. 8,000건.

DDL 정보:
- device_id: STRING — 고유 디바이스 ID (AC-UUID 형식)
- model_name: STRING — 모델명 (FQ18DADWA2, FQ18PAKWT2, FW18RAWWA 등 DUALCOOL/WHISEN 모델)
- product_line: STRING — 'DUALCOOL' 또는 'WHISEN'
- capacity_btu: INT — 냉방 능력(BTU), 9000/12000/18000/24000
- energy_grade: STRING — 에너지 효율 등급 '1'~'5'
- manufactured_date: DATE — 2022-01-01 ~ 2026-03-31
- firmware_version: STRING — 'v2.5.0' ~ 'v3.2.0'
- region: STRING — 서울, 경기, 부산, 대구, 광주, 대전, 인천, 세종
- install_type: STRING — '벽걸이', '스탠드', '천장형', '시스템'
- thinq_registered: BOOLEAN — ThinQ 앱 등록 여부 (75% true)
- warranty_end_date: DATE — manufactured_date + 3년
- registration_date: TIMESTAMP

COMMENT: 'DUALCOOL/WHISEN 에어컨 디바이스 마스터 테이블'
Delta 형식으로 저장해줘.

2. 온도 센서 로그 (ac_temperature_logs)

lge_appliance.bronze.ac_temperature_logs 테이블을 생성해줘. 400,000건.

DDL 정보:
- log_id: STRING — UUID
- device_id: STRING — ac_devices.device_id 참조
- measured_at: TIMESTAMP — 2025-10-01 ~ 2026-03-31 (10분 간격)
- indoor_temp: DOUBLE — 실내 온도(°C), 15~35
- outdoor_temp: DOUBLE — 실외 온도(°C), -10~40, 계절별 변동
- set_temp: DOUBLE — 설정 온도(°C), 18~30
- temp_diff: DOUBLE — indoor_temp - set_temp (자동 계산)
- sensor_location: STRING — 'main', 'sub', 'remote'
- event_date: DATE

여름(6~8월) 실외 온도 30~40°C, 겨울(12~2월) -10~5°C로 계절별 분포.
COMMENT: '실내외 온도 센서 측정 로그 (10분 간격)'
Delta 형식, event_date 파티셔닝.

3. 습도 센서 로그 (ac_humidity_logs)

lge_appliance.bronze.ac_humidity_logs 테이블을 생성해줘. 200,000건.

DDL 정보:
- log_id: STRING — UUID
- device_id: STRING
- measured_at: TIMESTAMP — 10분 간격
- indoor_humidity: DOUBLE — 실내 습도(%), 20~90
- dehumidify_amount: DOUBLE — 제습량(L/h), 0~3.0
- comfort_index: DOUBLE — 쾌적 지수 0~100
- event_date: DATE

장마철(6~7월) 습도 70~90%로 높게, 겨울 20~40%로 낮게.
COMMENT: '실내 습도 및 제습량 측정 로그'
Delta 형식, event_date 파티셔닝.

4. 운전 모드 로그 (ac_operation_logs)

lge_appliance.bronze.ac_operation_logs 테이블을 생성해줘. 250,000건.

DDL 정보:
- log_id: STRING — UUID
- device_id: STRING
- event_at: TIMESTAMP
- operation_mode: STRING — 'Cooling', 'Heating', 'Dehumidify', 'Fan', 'AI_Auto', 'Energy_Saving'
- fan_speed: INT — 풍속 단계 1~6
- fan_direction: STRING — 'auto', 'up', 'down', 'left', 'right', 'wide', 'spot'
- set_temperature: DOUBLE — 설정 온도
- duration_minutes: INT — 해당 모드 유지 시간
- triggered_by: STRING — 'user', 'ai_auto', 'schedule', 'thinq_app'
- event_date: DATE

여름: 냉방 60%, AI자동 20%. 겨울: 난방 55%, AI자동 25%.
COMMENT: '에어컨 운전 모드 변경 로그'
Delta 형식, event_date 파티셔닝.

5. 컴프레서 이벤트 (ac_compressor_events)

lge_appliance.bronze.ac_compressor_events 테이블을 생성해줘. 80,000건.

DDL 정보:
- event_id: STRING — UUID
- device_id: STRING
- event_at: TIMESTAMP
- compressor_state: STRING — 'running', 'stopped', 'defrost'
- frequency_hz: DOUBLE — 인버터 주파수(Hz), 0~120
- discharge_temp: DOUBLE — 토출 온도(°C), 40~90
- suction_temp: DOUBLE — 흡입 온도(°C), -5~20
- current_amps: DOUBLE — 소비 전류(A), 0~15
- event_date: DATE

COMMENT: '컴프레서 가동/정지 이벤트 (인버터 주파수 포함)'
Delta 형식, event_date 파티셔닝.

6. 전력 소비 (ac_energy_consumption)

lge_appliance.bronze.ac_energy_consumption 테이블을 생성해줘. 200,000건.

DDL 정보:
- record_id: STRING — UUID
- device_id: STRING
- measured_at: TIMESTAMP — 1시간 간격
- power_watts: DOUBLE — 소비 전력(W), 모드별: Fan 30~50W, Cooling 500~2000W, Heating 600~2500W
- cumulative_kwh: DOUBLE — 누적 전력량(kWh)
- eer: DOUBLE — 에너지효율비(EER), 2.5~5.0
- operation_mode: STRING — 측정 시점의 운전 모드
- outdoor_temp: DOUBLE — 측정 시점 실외 온도 (효율 분석용)
- event_date: DATE

실외 온도가 높을수록(냉방 시) 또는 낮을수록(난방 시) 전력 소비 증가.
COMMENT: '시간대별 전력 소비 및 에너지 효율 로그'
Delta 형식, event_date 파티셔닝.

7. ThinQ 원격 제어 명령 (ac_thinq_commands)

lge_appliance.bronze.ac_thinq_commands 테이블을 생성해줘. 60,000건.

DDL 정보:
- command_id: STRING — UUID
- device_id: STRING
- sent_at: TIMESTAMP
- command_type: STRING — 'power_on', 'power_off', 'mode_change', 'temp_set', 'fan_speed', 'schedule_set', 'ai_mode'
- command_payload: STRING — JSON 형태 명령 파라미터
- execution_result: STRING — 'success', 'failed', 'timeout', 'device_offline'
- response_time_ms: INT — 명령 응답 시간(ms), 100~5000
- app_version: STRING — ThinQ 앱 버전
- event_date: DATE

성공률 90%, 실패 6%, 타임아웃 2.5%, 오프라인 1.5%.
COMMENT: 'ThinQ 앱 에어컨 원격 제어 명령 로그'
Delta 형식, event_date 파티셔닝.

8. 알림 이벤트 (ac_alert_events)

lge_appliance.bronze.ac_alert_events 테이블을 생성해줘. 30,000건.

DDL 정보:
- alert_id: STRING — UUID
- device_id: STRING
- alert_at: TIMESTAMP
- alert_type: STRING — 'filter_clean', 'refrigerant_low', 'compressor_error', 'sensor_fault', 'defrost_cycle', 'firmware_update'
- error_code: STRING — 'CH01'~'CH15' LG 에러 코드 체계
- severity: STRING — 'info', 'warning', 'critical'
- alert_message: STRING — 한글 알림 메시지
- acknowledged: BOOLEAN — 사용자 확인 여부
- resolved_at: TIMESTAMP — 해결 시각 (NULL 가능)
- event_date: DATE

필터 세척 35%, 제상 사이클 20%, 센서 이상 15%, 컴프레서 에러 10%, 냉매 부족 10%, 펌웨어 10%.
COMMENT: '에어컨 알림 및 에러 코드 이벤트'
Delta 형식, event_date 파티셔닝.

9. 정비 이력 (ac_maintenance_logs)

lge_appliance.bronze.ac_maintenance_logs 테이블을 생성해줘. 20,000건.

DDL 정보:
- maintenance_id: STRING — UUID
- device_id: STRING
- maintenance_date: DATE — 정비 수행일
- maintenance_type: STRING — 'regular_inspection', 'filter_cleaning', 'refrigerant_charge', 'deep_cleaning', 'part_replacement'
- technician_id: STRING — 서비스 기사 ID
- cost_krw: INT — 정비 비용(원), 0(무상) ~ 500000
- warranty_covered: BOOLEAN — 무상 보증 해당 여부
- parts_replaced: STRING — 교체 부품 (NULL 가능)
- next_maintenance_date: DATE — 다음 정비 권장일
- notes: STRING — 정비 메모
- event_date: DATE

정기 점검 30%, 필터 세척 25%, 심층 세척 20%, 냉매 충전 15%, 부품 교체 10%.
COMMENT: '에어컨 정비 및 서비스 이력'
Delta 형식, event_date 파티셔닝.

데이터 검증

모든 테이블 생성 후 아래 프롬프트로 검증합니다:
lge_appliance.bronze 스키마에서 ac_로 시작하는 모든 테이블의 
건수, 컬럼 수, 파티션 키를 정리해서 보여줘.
테이블목표 건수주요 컬럼
ac_devices8,000device_id, model_name, capacity_btu
ac_temperature_logs400,000indoor_temp, outdoor_temp, set_temp
ac_humidity_logs200,000indoor_humidity, dehumidify_amount
ac_operation_logs250,000operation_mode, fan_speed, fan_direction
ac_compressor_events80,000compressor_state, frequency_hz
ac_energy_consumption200,000power_watts, eer
ac_thinq_commands60,000command_type, execution_result
ac_alert_events30,000alert_type, error_code, severity
ac_maintenance_logs20,000maintenance_type, cost_krw

다음 단계

  • 04. SDP 파이프라인 — 공기청정기 + 에어컨 데이터를 Bronze → Silver → Gold로 변환하는 파이프라인 구축