소요 시간: ~15분 | 사전 조건: 01. 환경 설정 완료 | 컴퓨트: Serverless 권장
이 모듈에서 사용하는 Databricks 기능
| 기능 | 설명 | 공식 문서 |
|---|---|---|
| PySpark | Databricks의 분산 데이터 처리 엔진. 대규모 데이터를 클러스터에서 병렬로 생성/처리합니다. | docs |
| Faker | 테스트용 가짜 데이터를 생성하는 Python 라이브러리. 이름, 날짜, IP 주소 등 현실적인 값을 만듭니다. | pypi |
| Delta Lake | Databricks의 기본 테이블 형식. 트랜잭션 보장, 스키마 진화, 시간 여행(Time Travel) 기능을 제공합니다. | docs |
| Unity Catalog Volumes | 파일(CSV, Parquet, PDF 등)을 저장하는 Unity Catalog 내 스토리지 영역입니다. | docs |
개요
LG webOS Smart TV에서 실제로 발생하는 텔레메트리 로그 체계를 기반으로 10개 카테고리, 17개 테이블, 약 250만 건의 가상 데이터를 생성합니다. webOS의 실제 로깅 인프라(pmlogd, Luna Service API, rdxd)의 구조를 반영하여, 현실적인 필드명과 값 분포를 가진 데이터를 만듭니다.
Genie Code로 생성하기
이 모듈의 모든 데이터는 Genie Code를 통해 자연어 프롬프트만으로 생성합니다. 각 테이블별로 제공되는 프롬프트를 Genie Code에 입력하면, PySpark + Faker 기반의 데이터 생성 코드가 자동으로 만들어집니다.
Tip: Genie Code에서 Cmd+I → Agent Mode로 전환 후 프롬프트를 입력하세요.
데이터 아키텍처 전체 구조
진행 방법
17개 테이블을 한 번에 다 만들 필요는 없습니다. 테이블 1(devices)만 먼저 생성하고, 나머지는 카테고리별로 필요할 때 생성하세요. 각 테이블의 프롬프트를 Genie Code에 그대로 복사 붙여넣기하면 PySpark + Faker 코드가 자동 생성됩니다.
사전 준비: 환경 설정
01. 환경 설정에서 카탈로그/스키마를 이미 생성했다면 이 단계는 건너뛰세요.
카테고리 안내
아래 17개 테이블은 카테고리별로 묶어서 설명합니다. 각 카테고리를 클릭하면 상세 스키마와 프롬프트가 펼쳐집니다.| 카테고리 | 테이블 수 | 총 건수 | 포함 테이블 |
|---|---|---|---|
| Master | 1개 | 10,000 | devices |
| System | 3개 | 265,000 | boot_events, resource_utilization, firmware_updates |
| Viewing | 3개 | 880,000 | viewing_logs, app_launch_events, input_switch_events |
| Network | 2개 | 250,000 | wifi_connection_events, streaming_buffer_events |
| Media & Ad | 3개 | 700,000 | media_playback_events, acr_events, ad_impressions |
| IoT & Voice & App | 3개 | 230,000 | thinq_device_events, voice_command_events, app_lifecycle_events |
| Display & Error | 2개 | 70,000 | panel_diagnostics, error_crash_events |
가장 먼저 테이블 1(devices)을 생성하세요. 나머지 모든 테이블이 devices의 device_id를 참조합니다.
테이블 1: devices (디바이스 마스터)
모든 로그의 기준이 되는 TV 디바이스 마스터 테이블. 가장 먼저 생성해야 합니다.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
device_id | STRING | 고유 디바이스 ID | LGE_TV_KR_000001 |
model_name | STRING | TV 모델명 | OLED65C4PSA, 86QNED90TPA |
product_line | STRING | 제품 라인 | OLED_C, OLED_G, QNED, NANO, UHD |
panel_type | STRING | 패널 타입 | WOLED, OLED_EX, MLA_OLED_EX, NanoCell, IPS_LCD |
screen_size_inch | INT | 화면 크기 | 55, 65, 77, 83, 97 |
manufacturing_date | DATE | 제조일 | 2024-03-15 |
manufacturing_country | STRING | 제조국 | KR, PL, MX, CN, ID |
webos_version | STRING | webOS 버전 | 24.10.40, 23.08.25, 6.0, 5.0 |
firmware_version | STRING | 펌웨어 버전 | 03.33.85 |
soc_chipset | STRING | SoC 칩셋 | Alpha9_Gen7, Alpha8, Alpha5_Gen7 |
ram_mb | INT | RAM 용량 | 2048, 3072, 4096 |
storage_mb | INT | 저장 용량 | 8192, 16384, 32768 |
region | STRING | 배포 지역 | KR, US, EU, JP, SEA, LATAM |
country | STRING | 상세 국가 | KR, US, DE, JP, BR |
timezone | STRING | 타임존 | Asia/Seoul, America/New_York |
registration_date | DATE | 등록일 | 2024-04-01 |
thinq_connected | BOOLEAN | ThinQ 연결 여부 | true, false |
voice_assistant | STRING | 음성 비서 | lg_thinq_ai, alexa, google_assistant, none |
network_type | STRING | 네트워크 연결 | wifi_5ghz, wifi_2.4ghz, ethernet, wifi_6 |
hdmi_port_count | INT | HDMI 포트 수 | 3, 4 |
has_earc | BOOLEAN | eARC 지원 여부 | true, false |
energy_rating | STRING | 에너지 등급 | 1등급, 2등급, 3등급 |
Genie Code 프롬프트
생성 확인
✅ row 수가 10,000건이고, region 분포가 KR(30%) US(25%) EU(20%)에 가까우면 정상입니다.
💡 AI 결과에 도전하기: 단순 확인에 만족하지 말고, Genie Code의 결과에 질문을 던져보세요:이렇게 “조건대로 잘 만들어졌는지” 검증하는 습관을 들이면, 이후 Silver/Gold 변환에서 데이터 품질 문제를 줄일 수 있습니다.
카테고리: System (시스템 로그)
시스템 로그 3개 테이블 펼치기 — boot_events(50K), resource_utilization(200K), firmware_updates(15K)
테이블 2: system_boot_events (시스템 부팅/전원 이벤트)
webOS pmlogd 로그 형식을 기반으로 한 부팅/전원 상태 전환 이벤트.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_BOOT_20250101_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | ISO 8601 UTC | 2025-01-15T09:24:09.612Z |
monotonic_ms | BIGINT | 부팅 이후 경과 ms | 10151514 |
event_type | STRING | 이벤트 유형 | COLD_BOOT, WARM_BOOT, POWER_ON, POWER_OFF, STANDBY_ENTER, STANDBY_EXIT |
boot_reason | STRING | 부팅 사유 | user_remote, timer_wakeup, cec_wakeup, ota_update, watchdog_reset |
boot_time_ms | INT | 부팅 소요 시간 | 8500 ~ 25000 |
previous_shutdown | STRING | 이전 종료 방식 | clean, dirty, watchdog |
webos_version | STRING | OS 버전 | 24.10.40 |
firmware_version | STRING | 펌웨어 버전 | 03.33.85 |
kernel_version | STRING | 커널 버전 | 4.14.150-lge-g12345 |
uptime_before_event_sec | BIGINT | 이벤트 전 가동 시간 | 86400 |
Genie Code 프롬프트
테이블 3: resource_utilization (시스템 리소스 사용량)
1분 간격으로 수집되는 CPU/메모리/GPU/온도 등 시스템 리소스 메트릭.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 수집 시각 | 2025-03-15T14:30:00.000Z |
cpu_usage_pct | DOUBLE | CPU 사용률 | 34.7 |
mem_total_kb | INT | 전체 메모리 | 2097152 |
mem_used_pct | DOUBLE | 메모리 사용률 | 75.0 |
mem_available_kb | INT | 가용 메모리 | 524288 |
swap_used_kb | INT | 스왑 사용량 | 102400 |
gpu_usage_pct | DOUBLE | GPU 사용률 | 42.0 |
thermal_zone_0_c | DOUBLE | SoC 온도 | 58.3 |
thermal_zone_1_c | DOUBLE | 패널 온도 | 42.5 |
thermal_throttle_active | BOOLEAN | 쓰로틀링 여부 | false |
storage_available_mb | INT | 잔여 저장 공간 | 3200 |
active_app_id | STRING | 현재 포그라운드 앱 | netflix, com.webos.app.livetv |
process_count | INT | 실행 프로세스 수 | 127 |
network_rx_bytes | BIGINT | 수신 바이트 | 1048576000 |
network_tx_bytes | BIGINT | 송신 바이트 | 5242880 |
Genie Code 프롬프트
테이블 4: firmware_updates (펌웨어 업데이트 이벤트)
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_OTA_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T03:00:00.000Z |
event_type | STRING | OTA 이벤트 유형 | OTA_CHECK, OTA_AVAILABLE, OTA_DOWNLOAD_START, OTA_DOWNLOAD_COMPLETE, OTA_INSTALL_START, OTA_INSTALL_COMPLETE, OTA_ROLLBACK |
current_version | STRING | 현재 펌웨어 | 03.33.80 |
target_version | STRING | 대상 펌웨어 | 03.33.85 |
download_size_bytes | BIGINT | 다운로드 크기 | 524288000 |
download_duration_ms | BIGINT | 다운로드 소요 시간 | 180000 |
install_result | STRING | 설치 결과 | SUCCESS, FAIL_VERIFY, FAIL_SPACE, FAIL_POWER |
update_channel | STRING | 업데이트 채널 | stable, beta |
Genie Code 프롬프트
카테고리: Viewing (시청 로그)
시청 로그 3개 테이블 펼치기 — viewing_logs(500K), app_launch_events(300K), input_switch_events(80K)
테이블 5: viewing_logs (시청 로그)
webOS com.webos.service.utp.broadcast Luna Service 기반 채널/앱 시청 기록.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_VIEW_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
session_start | TIMESTAMP | 시청 시작 | 2025-03-15T20:00:00.000Z |
session_end | TIMESTAMP | 시청 종료 | 2025-03-15T21:30:00.000Z |
duration_sec | INT | 시청 시간 (초) | 5400 |
content_source | STRING | 콘텐츠 소스 | live_tv, ott_app, hdmi_input, usb_media |
app_id | STRING | 앱 ID (OTT일 때) | netflix, youtube.leanback.v4, com.webos.app.livetv |
channel_number | STRING | 채널 번호 (Live TV) | 6.1, 11-1 |
channel_name | STRING | 채널명 | KBS1, MBC, SBS, tvN, JTBC |
broadcast_type | STRING | 방송 타입 | ATSC, DVB-T, IPTV, IP_STREAM |
program_title | STRING | 프로그램명 | 뉴스9, 나혼자산다 |
genre | STRING | 장르 | Drama, News, Entertainment, Sports, Kids, Movie, Documentary |
signal_strength_dbm | DOUBLE | 신호 세기 | -52.3 |
signal_quality_pct | INT | 신호 품질 | 87 |
tune_latency_ms | INT | 채널 전환 지연 | 1250 |
resolution | STRING | 해상도 | 3840x2160, 1920x1080 |
hdr_type | STRING | HDR 타입 | DolbyVision, HDR10, HDR10Plus, HLG, SDR |
Genie Code 프롬프트
테이블 6: app_launch_events (앱 실행 이벤트)
webOS com.webos.applicationManager (SAM) Luna Service 기반.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_APP_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T20:00:00.000Z |
msgid | STRING | SAM 메시지 ID | NL_APP_LAUNCH_BEGIN, NL_APP_LAUNCH_END, APP_CLOSE, APP_PAUSE, APP_RELAUNCH |
app_id | STRING | 앱 ID | netflix, youtube.leanback.v4, com.webos.app.browser |
app_name | STRING | 앱 이름 | Netflix, YouTube, 웹 브라우저 |
app_version | STRING | 앱 버전 | 5.4.1-2028 |
caller_id | STRING | 호출자 | com.webos.surfacemanager, com.webos.app.home |
launch_mode | STRING | 실행 모드 | normal, background, hidden |
launch_time_ms | INT | 실행 소요 시간 | 3200 |
close_reason | STRING | 종료 사유 | user, system_oom, app_crash, relaunch |
session_duration_sec | INT | 세션 시간 | 5420 |
memory_at_launch_kb | INT | 실행 시 메모리 사용량 | 1245184 |
Genie Code 프롬프트
테이블 7: input_switch_events (입력 소스 전환)
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_INPUT_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 전환 시각 | 2025-03-15T19:30:00.000Z |
input_id | STRING | 전환된 입력 | HDMI_1, HDMI_2, HDMI_3, HDMI_4 |
previous_input_id | STRING | 이전 입력 | HDMI_2 |
device_type | STRING | 연결 기기 유형 | stb, game_console, soundbar, bluray, pc, unknown |
cec_device_name | STRING | CEC 디바이스명 | PlayStation 5, XBOX Series X, Apple TV |
hdmi_signal_type | STRING | HDMI 신호 타입 | HDMI2.1, HDMI2.0, eARC |
allm_active | BOOLEAN | 자동 저지연 모드 | true |
vrr_active | BOOLEAN | 가변 주사율 | true |
Genie Code 프롬프트
카테고리: Network (네트워크)
네트워크 2개 테이블 펼치기 — wifi_connection_events(100K), streaming_buffer_events(150K)
테이블 8: wifi_connection_events (WiFi 연결 이벤트)
webOS com.webos.service.connectionmanager Luna Service 기반.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_WIFI_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T09:00:00.000Z |
event_type | STRING | 이벤트 유형 | WIFI_CONNECTED, WIFI_DISCONNECTED, WIFI_AUTH_FAIL, DHCP_SUCCESS, DHCP_FAIL, WIFI_SCAN_COMPLETE |
state | STRING | 연결 상태 | connected, disconnected, connecting, associating |
ssid | STRING | SSID | HomeNetwork_5G |
security_type | STRING | 보안 타입 | WPA2-PSK, WPA3-SAE, WPA2-Enterprise |
frequency_mhz | INT | 주파수 | 5180, 2437 |
channel | INT | 채널 | 36, 6 |
signal_strength_dbm | INT | 신호 세기 | -45 |
link_speed_mbps | INT | 링크 속도 | 866, 150, 1200 |
ip_address | STRING | IP 주소 | 192.168.1.105 |
gateway | STRING | 게이트웨이 | 192.168.1.1 |
dns_servers | STRING | DNS 서버 | 8.8.8.8,8.8.4.4 |
Genie Code 프롬프트
테이블 9: streaming_buffer_events (스트리밍 버퍼 이벤트)
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_BUF_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T21:15:30.000Z |
event_type | STRING | 버퍼 이벤트 | STREAM_START, BUFFER_UNDERRUN, BUFFER_RECOVERY, BITRATE_SWITCH, STREAM_STOP, STREAM_ERROR |
app_id | STRING | 스트리밍 앱 | netflix, youtube.leanback.v4 |
buffer_level_pct | DOUBLE | 버퍼 수준 | 15.0 |
buffer_duration_ms | INT | 버퍼 시간 | 2400 |
stall_count | INT | 정지 횟수 | 3 |
stall_duration_total_ms | INT | 총 정지 시간 | 8500 |
current_bitrate_kbps | INT | 현재 비트레이트 | 15000 |
target_bitrate_kbps | INT | 목표 비트레이트 | 25000 |
cdn_host | STRING | CDN 호스트 | ipv4-c038-sel.nflxvideo.net |
latency_ms | INT | 레이턴시 | 28 |
dns_resolve_ms | INT | DNS 해석 시간 | 45 |
Genie Code 프롬프트
카테고리: Media & Ad (미디어 & 광고)
미디어/광고 3개 테이블 펼치기 — media_playback_events(200K), acr_events(300K), ad_impressions(200K)
테이블 10: media_playback_events (미디어 재생 이벤트)
비디오 코덱, 해상도, HDR 메타데이터 등 미디어 파이프라인 로그.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_MEDIA_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T20:05:00.000Z |
event_type | STRING | 이벤트 유형 | MEDIA_PLAY_START, MEDIA_PLAY_STOP, RESOLUTION_CHANGE, HDR_MODE_CHANGE, CODEC_SWITCH |
video_codec | STRING | 비디오 코덱 | HEVC, AV1, VP9, H264 |
video_profile | STRING | 코덱 프로파일 | Main10, Main, High |
resolution | STRING | 해상도 | 3840x2160, 1920x1080 |
frame_rate | DOUBLE | 프레임레이트 | 59.94, 23.976, 120.0 |
bit_depth | INT | 비트 심도 | 10, 8 |
color_space | STRING | 색 공간 | BT.2020, BT.709 |
hdr_type | STRING | HDR 타입 | DolbyVision, HDR10, HDR10Plus, HLG, SDR |
dolby_vision_profile | STRING | DV 프로파일 | dvhe.05.06, dvhe.08.06 |
max_cll_nits | INT | 최대 콘텐츠 밝기 | 1000 |
max_fall_nits | INT | 최대 프레임 평균 밝기 | 400 |
audio_codec | STRING | 오디오 코덱 | EAC3_ATMOS, EAC3, AAC, AC3 |
audio_channels | STRING | 오디오 채널 | 7.1.4, 5.1, 2.0 |
audio_passthrough | BOOLEAN | eARC 패스스루 | true |
content_source | STRING | 콘텐츠 소스 | ott, live_tv, hdmi, usb |
drm_type | STRING | DRM 타입 | widevine, playready, none |
Genie Code 프롬프트
테이블 11: acr_events (자동 콘텐츠 인식 이벤트)
LG “Live Plus” ACR 시스템. 화면 핑거프린트를 통한 콘텐츠 식별.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_ACR_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T20:30:00.000Z |
event_type | STRING | ACR 이벤트 | ACR_FINGERPRINT, ACR_MATCH, ACR_NO_MATCH |
fingerprint_hash | STRING | 화면 해시 | a3f8c2e1b7d9... (32자 hex) |
match_confidence | DOUBLE | 매칭 신뢰도 | 0.97 |
content_id | STRING | Gracenote 프로그램 ID | EP012345678901 |
program_title | STRING | 프로그램명 | 슬기로운 의사생활, Breaking Bad |
network_name | STRING | 방송 네트워크 | tvN, NBC |
genre | STRING | 장르 | Drama, News, Sports |
content_type | STRING | 콘텐츠 유형 | linear_tv, ott_stream, hdmi_external, gaming |
is_ad_break | BOOLEAN | 광고 시간 여부 | true |
ad_brand | STRING | 광고 브랜드 (광고일 때) | Samsung, Hyundai, Toyota |
dma_code | STRING | 지역 코드 | KR_SEOUL, US_501 |
Genie Code 프롬프트
테이블 12: ad_impressions (광고 노출/클릭/전환)
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_AD_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T20:45:00.000Z |
event_type | STRING | 광고 이벤트 | AD_REQUEST, AD_IMPRESSION, AD_START, AD_FIRST_QUARTILE, AD_MIDPOINT, AD_THIRD_QUARTILE, AD_COMPLETE, AD_SKIP, AD_CLICK, AD_ERROR |
ad_unit_id | STRING | 광고 유닛 | lg_home_banner_01, lg_screensaver_01, lg_channel_strip_01 |
creative_id | STRING | 크리에이티브 ID | CR_20250301_001 |
campaign_id | STRING | 캠페인 ID | CAMP_Q1_2025_0042 |
advertiser_name | STRING | 광고주 | Samsung Electronics, Hyundai Motor |
ad_format | STRING | 광고 형식 | display_banner, video_preroll, native_tile, screensaver, pause_ad |
ad_duration_sec | INT | 광고 길이 | 15, 30, 60 |
completion_pct | DOUBLE | 시청 완료율 | 75.0 |
placement | STRING | 노출 위치 | home_screen, content_store, lg_channels, epg, screensaver |
revenue_model | STRING | 수익 모델 | CPM, CPC, CPCV |
bid_price_usd | DOUBLE | 입찰 가격 | 12.50 |
viewability_pct | DOUBLE | 가시성 | 100.0 |
Genie Code 프롬프트
카테고리: IoT & Voice & App
IoT/음성/앱 3개 테이블 펼치기 — thinq_device_events(50K), voice_command_events(80K), app_lifecycle_events(100K)
테이블 13: thinq_device_events (ThinQ IoT 디바이스 이벤트)
com.webos.service.iot Luna Service 기반 ThinQ 스마트홈 연동 이벤트.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_IOT_20250301_000001 |
device_id | STRING | FK → devices (TV) | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T18:00:00.000Z |
event_type | STRING | IoT 이벤트 | DEVICE_DISCOVERED, DEVICE_PAIRED, DEVICE_STATUS_CHANGE, DEVICE_COMMAND_SENT, DEVICE_COMMAND_ACK, DEVICE_REMOVED |
iot_device_id | STRING | IoT 디바이스 ID | LG_REF_KR_001234 |
iot_device_type | STRING | 디바이스 유형 | refrigerator, washer, dryer, air_conditioner, air_purifier, robot_vacuum, styler |
iot_device_model | STRING | 디바이스 모델 | LRMVS3006S |
protocol | STRING | 통신 프로토콜 | thinq_cloud, matter, wifi_direct |
connection_status | STRING | 연결 상태 | online, offline, pairing |
command | STRING | 명령어 | power_on, set_temperature, start_cycle, get_status |
command_result | STRING | 명령 결과 | success, timeout, device_offline, invalid_command |
response_time_ms | INT | 응답 시간 | 450 |
Genie Code 프롬프트
테이블 14: voice_command_events (음성 명령 이벤트)
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_VOICE_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T20:10:00.000Z |
event_type | STRING | 음성 이벤트 | VOICE_WAKE, VOICE_COMMAND_START, VOICE_COMMAND_END, VOICE_RESULT, VOICE_ERROR, VOICE_CANCEL |
assistant_type | STRING | 어시스턴트 | lg_thinq_ai, alexa, google_assistant |
wake_word | STRING | 웨이크워드 | 하이 엘지, Alexa, Hey Google |
transcript | STRING | 인식된 텍스트 | 채널 KBS로 바꿔줘 |
intent | STRING | 의도 분류 | channel_change, volume_control, search_content, smart_home_control, app_launch, general_query |
confidence_score | DOUBLE | 인식 신뢰도 | 0.92 |
result_status | STRING | 처리 결과 | success, partial_match, no_match, timeout |
audio_duration_ms | INT | 음성 길이 | 2100 |
processing_latency_ms | INT | 처리 지연 | 850 |
microphone_source | STRING | 마이크 소스 | magic_remote, built_in |
language | STRING | 언어 | ko-KR, en-US, ja-JP |
Genie Code 프롬프트
테이블 15: app_lifecycle_events (앱 설치/삭제/업데이트)
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_APPLIFE_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T14:00:00.000Z |
event_type | STRING | 라이프사이클 이벤트 | APP_INSTALL, APP_UNINSTALL, APP_UPDATE, APP_UPDATE_CHECK |
app_id | STRING | 앱 ID | com.disney.disneyplus-prod |
app_name | STRING | 앱 이름 | Disney+ |
app_version | STRING | 앱 버전 | 2.14.0-rc1 |
previous_version | STRING | 이전 버전 (업데이트 시) | 2.13.2 |
app_size_bytes | BIGINT | 앱 크기 | 52428800 |
install_source | STRING | 설치 소스 | content_store, preloaded, auto_update |
category | STRING | 앱 카테고리 | Entertainment, Game, Education, Utility, Lifestyle |
download_duration_ms | INT | 다운로드 시간 | 15000 |
install_result | STRING | 설치 결과 | SUCCESS, FAIL_SPACE, FAIL_NETWORK, FAIL_VERIFY, FAIL_INCOMPATIBLE |
storage_after_mb | INT | 설치 후 잔여 저장 공간 | 2800 |
Genie Code 프롬프트
카테고리: Display & Error (디스플레이 & 에러)
디스플레이/에러 2개 테이블 펼치기 — panel_diagnostics(30K), error_crash_events(40K)
테이블 16: panel_diagnostics (패널/디스플레이 진단)
OLED 패널 케어, 픽셀 리프레셔, 밝기 제어 등 디스플레이 진단 로그.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_PANEL_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T04:00:00.000Z |
event_type | STRING | 패널 이벤트 | PIXEL_REFRESH_SHORT, PIXEL_REFRESH_LONG, JB_COMPENSATION, OFFRS_COMPENSATION, ABL_ADJUST, TPC_ADJUST, GSR_CYCLE |
panel_type | STRING | 패널 타입 | WOLED, OLED_EX, MLA_OLED_EX |
panel_total_hours | INT | 총 사용 시간 | 4328 |
panel_on_count | INT | 총 ON 횟수 | 2847 |
compensation_type | STRING | 보상 유형 | offrs (4시간마다), jb (2000시간마다) |
trigger_reason | STRING | 트리거 사유 | auto_scheduled, user_manual, cumulative_hours |
duration_min | INT | 소요 시간 | 7, 60 |
result | STRING | 결과 | completed, interrupted_power_loss, skipped_no_standby |
backlight_level | INT | OLED 밝기 수준 | 80 |
abl_current_pct | DOUBLE | ABL 현재 수준 | 72.0 |
peak_luminance_nits | INT | 피크 휘도 | 800 |
panel_temperature_c | DOUBLE | 패널 온도 | 42.5 |
ambient_light_lux | INT | 주변 조도 | 120 |
picture_mode | STRING | 화질 모드 | filmmaker, vivid, standard, eco, game |
energy_saving_mode | STRING | 절전 모드 | auto, off, minimum, medium, maximum |
Genie Code 프롬프트
테이블 17: error_crash_events (에러/크래시 로그)
webOS rdxd 데몬이 수집하는 크래시/에러 리포트.
스키마 정의
| 컬럼 | 타입 | 설명 | 예시 값 |
|---|---|---|---|
event_id | STRING | 이벤트 고유 ID | EVT_ERR_20250301_000001 |
device_id | STRING | FK → devices | LGE_TV_KR_000001 |
timestamp | TIMESTAMP | 이벤트 시각 | 2025-03-15T22:30:00.000Z |
event_type | STRING | 에러 유형 | APP_CRASH, APP_ANR, APP_OOM, SYSTEM_WATCHDOG, KERNEL_PANIC, GPU_HANG, MEDIA_PIPELINE_ERROR |
severity | STRING | 심각도 | CRITICAL, ERROR, WARNING |
process_name | STRING | 프로세스명 | WebAppMgr, sam, audiod, media-pipeline, settingsservice |
app_id | STRING | 관련 앱 (앱 크래시 시) | netflix, com.webos.app.browser |
crash_signal | STRING | 크래시 시그널 | SIGSEGV(11), SIGABRT(6), SIGKILL(9) |
exit_code | INT | 종료 코드 | 137, 139, 134 |
error_code | STRING | 에러 코드 | MEDIA_ERR_DECODE, DRM_LICENSE_FAIL, EGL_BAD_DISPLAY |
error_detail | STRING | 에러 상세 | EGL initialization failure, Widevine L1 error |
cpu_usage_at_event | DOUBLE | 이벤트 시 CPU | 98.2 |
mem_used_pct_at_event | DOUBLE | 이벤트 시 메모리 | 94.5 |
uptime_sec | BIGINT | 가동 시간 | 86400 |
webos_version | STRING | OS 버전 | 24.10.40 |
coredump_available | BOOLEAN | 코어덤프 존재 여부 | true |
Genie Code 프롬프트
데이터 생성 후 검증
모든 테이블 생성이 완료되면, Genie Code에 다음 프롬프트를 입력하여 데이터를 검증합니다:💡 팁: 각 테이블을 하나씩 생성할 때마다, 아래처럼 간단히 확인할 수 있습니다:17개 모두 만든 뒤 아래 종합 검증 프롬프트를 실행하세요.
검증 프롬프트
기대 결과
| 테이블 | 건수 | 주요 검증 포인트 |
|---|---|---|
| devices | 10,000 | region 분포, product_line 분포 |
| system_boot_events | 50,000 | POWER_ON/OFF 쌍 정합성 |
| resource_utilization | 200,000 | cpu/mem 값 범위, 상관관계 |
| firmware_updates | 15,000 | OTA 이벤트 시퀀스 정합성 |
| viewing_logs | 500,000 | 시간대별 분포, 장르 분포 |
| app_launch_events | 300,000 | launch/close 쌍, duration 합리성 |
| input_switch_events | 80,000 | HDMI 포트와 device_type 매핑 |
| wifi_connection_events | 100,000 | WiFi 디바이스만 포함 여부 |
| streaming_buffer_events | 150,000 | bitrate와 resolution 상관관계 |
| media_playback_events | 200,000 | codec/HDR과 디바이스 스펙 매핑 |
| acr_events | 300,000 | ACR opt-in 디바이스만 포함 |
| ad_impressions | 200,000 | VAST 퍼널 드롭율 |
| thinq_device_events | 50,000 | thinq_connected 디바이스만 |
| voice_command_events | 80,000 | voice_assistant 디바이스만 |
| app_lifecycle_events | 100,000 | install_result 분포 |
| panel_diagnostics | 30,000 | OLED 전용 이벤트 필터링 |
| error_crash_events | 40,000 | 구형 FW 에러율 비교 |
| 합계 | ~2,405,000 |
다음 단계
데이터 생성이 완료되면 다음 모듈로 이동합니다:- 03. SDP 파이프라인 — 데이터 품질과 Medallion Architecture — Bronze→Silver→Gold 변환 + 증분 처리 자동화
- 04. 대시보드 & Genie Space — AI/BI 대시보드 + Genie Space + 정확도 고도화