콘텐츠로 건너뛰기
Telemetry
문서 찾아보기
개념 및 SQL 패턴업데이트된 2026년 7월 27일Telemetry 편집 및 제품 팀의 검토3 최소 읽기

타임스탬프가 지정된 이벤트를 재사용 가능한 운영 보기로 전환

시간 인식 SQL을 실행하고, 결과를 검사하고, 팀이 다시 방문할 수 있는 대시보드에 분석 내용을 저장하세요.

이 페이지에서
  1. 타임스탬프를 일관되게 저장
  2. 시간 함수로 쿼리
  3. 1. 날짜 부분 추출
  4. 2. 시간 간격별로 그룹화
  5. 3. 시간 범위 비교
  6. 4. 시차 계산
  7. 다음 단계

타임스탬프 작업

Telemetry의 DataFusion SQL 엔진으로 일별 이벤트 수를 세고, 주별로 비교하거나 이벤트 사이의 시간 간격을 측정하세요. 아래 예제에서 각 계산 방법을 확인할 수 있습니다.

타임스탬프를 일관되게 저장

Telemetry는 모든 이벤트에 타임스탬프가 있는지 확인합니다. 페이로드에서 timestamp를 생략하면 로그 API에 현재 UTC 시간이 추가됩니다. 소스 이벤트 시간이 수집 시간과 다른 경우 시간대 규정 ISO 8601 값 또는 Unix 타임스탬프를 제공할 수도 있습니다. Telemetry는 SQL 작업에 최적화된 timestamp_utc 열을 노출합니다.

로그 항목 예:

{
  "event_id": "e12345",
  "event_type": "click",
  "user_id": "u67890",
  "timestamp": "2026-07-27T14:22:00.000Z",
  "metadata": {
    "browser": "Chrome",
    "device": "Mobile",
    "location": "New York"
  }
}

이 로그에서 소스는 자체 이벤트 시간을 제공합니다. 필드가 생략되면 수집 시간이 대신 사용됩니다.

시간 기반 데이터 쿼리

필터링, 버킷팅, 정렬 및 시간 산술에는 timestamp_utc를 사용하세요. 기본 UTC 타임스탬프 유형을 가지며 Telemetry 테이블 전체에서 일관된 쿼리 열입니다.

timestamp_utc 사용의 이점:

  • 특히 대규모 데이터 세트의 경우 더 빠른 쿼리 실행이 가능합니다.
  • 컴팩트한 타임스탬프 형식으로 인해 스토리지가 최적화되었습니다.
  • DATE_TRUNC, EXTRACT 등과 같은 시간 기반 작업을 위한 DataFusion의 SQL 엔진과 호환됩니다.

수집 시 생성된 이벤트에 대해서는 timestamp를 보낼 필요가 없습니다. 보내는 경우 현지 시간이 모호하지 않도록 시간대 한정 값을 사용하세요.

시간 함수로 쿼리

1. 날짜 부분 추출

EXTRACT()로 타임스탬프의 연도나 시간 같은 부분을 읽습니다. DATE_TRUNC()로 타임스탬프를 지정한 시간 구간의 시작점으로 내림합니다.

예시: 요일 추출

타임스탬프에서 요일을 추출하려면 다음을 사용할 수 있습니다.

SELECT 
    EXTRACT(DOW FROM timestamp_utc) AS day_of_week
FROM 
    event_log

이 쿼리는 각 이벤트에 대한 요일(0-6)을 반환합니다. 여기서 0은 일요일을 나타내고 6은 토요일을 나타냅니다.

2. 시간 간격별로 그룹화

시간 함수의 일반적인 사용 사례 중 하나는 일, 주, 월 등 특정 시간 간격으로 이벤트를 그룹화하여 각 기간 동안 발생한 이벤트 수를 확인하는 것입니다.

예: 일별 이벤트 그룹화

일별로 이벤트를 그룹화하고 일별 이벤트 수를 계산하려면 DATE_TRUNC()를 사용할 수 있습니다.

SELECT 
    DATE_TRUNC('day', timestamp_utc) AS day,
    COUNT(*) AS event_count 
FROM 
    event_log 
GROUP BY 
    DATE_TRUNC('day', timestamp_utc) 
ORDER BY 
    day

이 쿼리는 타임스탬프를 날짜 수준으로 자른 다음 잘린 날짜별로 이벤트를 그룹화합니다. 결과는 매일 발생한 이벤트의 개수입니다.

3. 시간 범위 비교

한 주에서 다음 주까지의 이벤트를 비교하는 등 다양한 시간 범위의 데이터를 비교할 수도 있습니다.

예: 주별 비교

여러 주 간의 이벤트 수를 비교하려면 다음을 사용할 수 있습니다.

SELECT 
    DATE_TRUNC('week', timestamp_utc) AS week,
    COUNT(*) AS event_count 
FROM 
    event_log 
GROUP BY 
    DATE_TRUNC('week', timestamp_utc) 
ORDER BY 
    week;

이 쿼리는 이벤트가 발생한 주별로 그룹화되므로 주간 추세를 분석할 수 있습니다.

4. 시차 계산

PostgreSQL은 타임스탬프 차이를 계산하는 AGE()를 지원합니다. DataFusion은 AGE()를 지원하지 않으므로 타임스탬프를 직접 빼세요.

예: 이벤트 간의 시간 차이 계산

LAG()로 이전 이벤트 시간을 가져온 뒤 현재 이벤트 시간에서 빼세요.

예를 들어 현재 이벤트와 이전 이벤트 간의 차이(초)를 계산하려면 다음을 수행하세요.

WITH ordered_events AS (
  SELECT
    event_id,
    timestamp_utc,
    LAG(timestamp_utc) OVER (ORDER BY timestamp_utc) AS previous_timestamp
  FROM event_log
)
SELECT
  event_id,
  timestamp_utc,
  previous_timestamp,
  date_part('epoch', timestamp_utc - previous_timestamp)
    AS seconds_since_previous_event
FROM ordered_events
ORDER BY timestamp_utc;

LAG는 이전 이벤트 시간을 검색하고 date_part('epoch', ...)는 타임스탬프 간격을 총 초로 변환합니다. 첫 번째 행에는 이전 타임스탬프가 없으므로 차이는 null입니다.

다음 단계

SQL의 시간 기능은 시간 기반 데이터를 분석하고 관리하는 데 필수적인 도구입니다. DataFusion에는 다른 SQL 엔진에 비해 특정 제한 사항이 있지만 지원되는 기능을 효과적으로 사용하여 다양한 시간 간격에 걸쳐 데이터를 그룹화, 잘라내기 및 분석할 수 있습니다. 일일 이벤트 추적, 주간 추세 비교, 이벤트 간의 시간 차이 계산 등 SQL는 시간 기반 데이터의 잠재력을 최대한 활용하는 데 필요한 기능을 제공합니다.

Telemetry 내에서 이러한 강력한 SQL 시간 기능을 활용하여 더 깊은 통찰력을 얻고 데이터를 기반으로 더 많은 정보에 입각한 결정을 내릴 수 있습니다.

관련 기능

안정적인 이벤트 이름, 타입이 지정된 필드, 개인 정보 보호 검토 컨텍스트를 캡처합니다.

페이지 작성자 및 참고 자료

이 설명은 Telemetry 편집팀의 소유입니다. 제품 팀은 동작, 예시, 경계를 검토합니다.

문서 검토 방법