용도
dimension_group: field_name { ... }
}
계층 구조
dimension_group |
결제 가능
Looker 식별자(측정기준 그룹에서 만든 각 측정기준의 이름의 첫 번째 역할을 함)특수 규칙
|
정의
dimension_group
매개변수는 시간 기반 측정기준 또는 기간 기반 측정기준 집합을 한 번에 만드는 데 사용됩니다. 측정기준 그룹을 정의하면 측정기준 그룹에 서로 다른 간격 또는 기간에 따른 개별 측정기준 집합이 생성됩니다. 예를 들어 타임스탬프 열을 기반으로 type: time
측정기준 그룹을 지정할 수 있으며, 측정기준 그룹에서 시간, 날짜, 주, 시간, 분기, 연도로 데이터를 표현하는 해당 측정기준을 만듭니다.
측정기준 그룹의 형식과 기능은 측정기준 그룹의 type
값에 따라 다릅니다.
기간 유형
type: duration
는 dimension_group
와 함께 사용되어 간격 기반 기간 측정기준 집합을 계산합니다.
type: duration
측정기준 그룹의 형식은 다음과 같습니다.
dimension_group: dimension_group_name {
type: duration
sql_start: SQL expression ;; # often this is a single database column
sql_end: SQL expression ;; # often this is a single database column
intervals: [interval, interval, …] # valid intervals described below
}
type: duration
의 측정기준 그룹:
sql_start
및sql_end
매개변수는 해당 기간의 시작 시간과 종료 시간을 정의하는 SQL 표현식을 제공합니다. 자세한 내용은 이 페이지의 기간의 시작과 끝 정의 섹션을 참고하세요.intervals
매개변수는 시차를 측정하는 데 사용해야 하는 간격 단위를 하나 이상 지정합니다. 가능한 옵션은 이 페이지의 간격 옵션 섹션에 나열되어 있습니다.기간 값은 가장 가까운 정수로 버려집니다.
datatype
매개변수는 선택사항입니다. 측정기준 그룹이 날짜/시간을 기반으로 하지 않는 경우 에포크, 타임스탬프, 날짜 또는 yyyymmdd 형식을 대신 지정할 수 있습니다.type: duration
측정기준 그룹의 경우datatype
매개변수가sql_start
및sql_end
매개변수에 모두 적용되므로sql_start
및sql_end
가 모두 지정된 데이터 유형이어야 합니다.datatype
매개변수는 이 페이지의 데이터베이스datatype
지정 섹션에 자세히 설명되어 있습니다.
여기에 나와 있지 않지만 다수의 필드 수준 매개변수를 측정기준 그룹과 함께 사용할 수 있습니다.
예를 들어 enrollment_date
및 graduation_date
열이 있으면 기간 측정기준 그룹을 만들어 학생들이 학교에서 보낸 시간을 확인하고 주 및 연도 간격으로 계산할 수 있습니다.
dimension_group: enrolled {
type: duration
intervals: [week, year]
sql_start: ${TABLE}.enrollment_date ;;
sql_end: ${TABLE}.graduation_date ;;
}
탐색 UI에서 등록된 기간이라는 측정기준 그룹이 생성되고 등록된 주 및 등록된 연도라는 개별 측정기준이 포함됩니다.
인터벌 옵션
intervals
매개변수는 측정기준에 sql_start
시간과 sql_end
시간 사이의 시차를 측정하는 데 사용해야 하는 간격 단위를 알려줍니다. intervals
매개변수는 type: duration
의 측정기준 그룹에만 지원됩니다.
intervals
가 포함되지 않으면 측정기준 그룹에 가능한 모든 간격이 포함됩니다.
intervals
매개변수의 옵션은 다음과 같습니다.
기간 | 설명 | 출력 예시 |
---|---|---|
day |
일 단위의 시차를 계산합니다. | 9 days |
hour |
시차를 계산합니다. | 171 hours |
minute |
분 단위의 시차를 계산합니다. | 10305 minutes |
month |
월 단위의 시차를 계산합니다. | 3 months |
quarter |
해당 연도의 분기별 시차를 계산합니다. | 2 quarters |
second |
시차를 초 단위로 계산합니다. | 606770 seconds |
week |
시차를 계산합니다. | 6 weeks |
year |
시차를 연 단위로 계산합니다. | 2 years |
기간의 시작 및 끝 정의
type: duration
측정기준 그룹의 sql_start
및 sql_end
매개변수는 시차를 계산하는 데 사용되는 시작 및 종료 정보를 제공합니다. 이 필드는 타임스탬프, 날짜/시간, 날짜, 에포크 또는 yyyymmdd 형식의 데이터가 포함된 유효한 SQL 표현식을 사용할 수 있습니다. sql_start
및 sql_end
필드는 다음 중 하나일 수 있습니다.
type: time
의 기존 측정기준 그룹에서raw
기간에 대한 참조type: date_raw
차원에 대한 참조- 타임스탬프인 SQL 표현식(예: 타임스탬프인 SQL 열에 대한 참조)
- 방언에 적절한 표현식을 사용하여 데이터베이스에서 시간을 가져오는 SQL 표현식
::datetime
또는::date
필드 유형 참조를 사용하는 LookML 필드 참조
예를 들어 다음과 같은 날짜/시간 정보가 포함된 faa_event_date_raw
라는 측정기준이 있다고 가정해 보겠습니다.
dimension: faa_event_date_raw {
type: date_raw
sql: ${TABLE}.event_date ;;
}
FAA 이벤트 날짜 이후 경과한 시간을 계산하는 type: duration
측정기준 그룹을 만들 수 있습니다. 이렇게 하려면 faa_event_date_raw
측정기준을 계산 시작 시간으로 사용하고 계산 종료 시간에는 현재 언어의 방언 SQL 표현식을 사용하면 됩니다. 다음은 MySQL 데이터베이스의 예입니다.
dimension_group: since_event {
type: duration
intervals: [hour, day]
sql_start: ${faa_event_date_raw} ;;
sql_end: CURRENT_TIMESTAMP();;
}
탐색 UI에서 이벤트 이후 기간이라는 측정기준 그룹이 생성되고, 개별 측정기준이 이벤트 이후 경과된 시간 및 이벤트 이후 경과 일수라는 이름으로 생성됩니다.
다른 LookML 필드의 간격 참조
type: duration
의 dimension_group
에서 interval
값을 참조하려면 interval
값의 복수형을 사용하여 ${interval_fieldname}
문법을 사용합니다. 예를 들어 다음 LookML 예에서 average_days_since_event
측정값은 ${days_since_event}
를 사용하여 since_event
측정기준 그룹의 day
간격을 참조합니다.
dimension_group: since_event {
type: duration
intervals: [hour, day, week, month, quarter, year]
sql_start: ${faa_event_date_raw} ;;
sql_end: CURRENT_TIMESTAMP();;
}
measure: average_days_since_event {
type: average
sql: ${days_since_event} ;;
}
기간 필드에 LookML 필드 유형 참조 사용
맞춤 기간 필드를 만들려면 type: duration
측정기준 그룹의 sql_start
및 sql_end
매개변수에서 참조되는 측정기준에 ::date
또는 ::datetime
참조 유형을 지정하면 됩니다. SQL 통합 및 LookML 객체 참조 문서 페이지에 설명된 view_name.field_name::type
문법을 사용하면 이러한 측정기준에 대한 참조를 문자열로 변환하지 않고도 ::date
또는 ::datetime
버전의 필드를 만들 수 있습니다.
예를 들어, created
측정기준 그룹이 type: time
이고 기간이 time
, date
, week
, month
및 raw
이고 다음과 같이 정의되어 있다고 가정합니다.
dimension_group: created {
type: time
timeframes: [time, date, week, month, raw]
sql: ${TABLE}.created_at ;;
}
측정기준 created_month
및 created_time
를 사용하여 created_date
필드의 날짜와 해당 월의 첫 번째 날 사이의 시간(주, 일, 시간으로 측정됨)을 계산하는 type: duration
의 측정기준 그룹을 만들 수 있습니다.
dimension_group: since_first_of_month {
type: duration
intervals: [week, day, hour]
sql_start: ${created_month::datetime} ;;
sql_end: ${created_time::datetime} ;;
}
탐색 UI에서 첫 번째 날 이후 기간이라는 측정기준 그룹이 만들어지며, 각 측정기준은 매월 첫 주 이후 경과 일수, 매월 첫날 이후 경과 일수, 첫 달 이후 경과된 시간 등의 측정기준이 포함됩니다. sql_start
및 sql_end
매개변수에 참조된 필드에 ::datetime
참조 유형을 지정하면 created_month
및 created_time
측정기준이 생성된 SQL에서 타임스탬프로 처리될 수 있습니다.
예를 들어 사용자가 필드 선택 도구에서 생성일 및 첫 달 이후 경과 일수 측정기준을 선택했다고 가정해 보겠습니다. 생성된 날짜에 반환된 값 중 하나가 2019-03-10이면 매월 첫날 이후 경과 일수는 9일이 됩니다.
시간 유형
type: time
는 dimension_group
및 timeframes
매개변수와 함께 시간 기반 측정기준 집합을 만드는 데 사용됩니다. 예를 들어 단일 타임스탬프 열을 기준으로 날짜, 주, 월 측정기준을 쉽게 만들 수 있습니다.
type: time
측정기준 그룹의 형식은 다음과 같습니다.
dimension_group: dimension_group_name {
type: time
timeframes: [timeframe, timeframe, …] # valid timeframes described below
sql: SQL expression ;; # often this is a single database column
datatype: epoch| timestamp | datetime | date | yyyymmdd # defaults to datetime
convert_tz: yes | no # defaults to yes
}
type: time
의 측정기준 그룹:
timeframes
매개변수는 선택사항이지만 건너뛰는 경우는 거의 없습니다. 측정기준 그룹에서 생성해야 하는 기간을 하나 이상 지정합니다.timeframes
가 포함되어 있지 않으면 모든 기간 옵션이 측정기준 그룹에 추가됩니다. 가능한 선택사항은 이 페이지의 기간 옵션 섹션에 나와 있습니다.type: time
측정기준 그룹의sql
매개변수는 타임스탬프, 날짜/시간, 날짜, 에포크 또는 yyyymmdd 형식의 데이터가 포함된 유효한 SQL 표현식을 사용할 수 있습니다.datatype
매개변수는 선택사항입니다. 측정기준 그룹이 날짜/시간을 기반으로 하지 않는 경우 에포크, 타임스탬프, 날짜 또는 yyyymmdd 형식을 대신 지정할 수 있습니다. 이 페이지의 데이터베이스datatype
지정 섹션에 자세히 설명되어 있습니다.convert_tz
매개변수는 선택사항이며 시간대 자동 변환을 방지할 수 있습니다. 이 페이지의 시간대 전환 및convert_tz
섹션에 자세히 설명되어 있습니다.
여기에 나와 있지 않지만 다수의 필드 수준 매개변수를 측정기준 그룹과 함께 사용할 수 있습니다.
예를 들어 datetime 정보가 포함된 created_at
라는 열이 있다고 가정해 보겠습니다. 이 날짜/시간을 기반으로 날짜, 주, 월 측정기준을 만들려고 합니다. 다음을 사용할 수 있습니다.
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
이렇게 하면 탐색 UI에서 생성일, 생성된 주, 생성된 월이라는 3개의 측정기준이 생성됩니다. dimension_group
이름을 기간과 결합하여 측정기준 이름을 생성하는 방법에 유의하세요.
기간 옵션
timeframes
매개변수는 type: time
의 측정기준 그룹에만 지원됩니다. type: duration
의 측정기준 그룹에는 intervals
매개변수를 대신 사용하세요.
timeframes
매개변수는 측정기준 그룹에 생성해야 하는 측정기준을 알려줍니다. 옵션은 다음과 같습니다.
특별 기간
기간
기간 | 설명 | 출력 예시 |
---|---|---|
time |
기본 필드의 일시 | 2014-09-03 17:15:00 |
time_of_day |
시간 | 17:15 |
hour |
가장 가까운 시간으로 잘린 날짜 | 2014-09-03 17 |
hour_of_day |
기본 필드의 시간(정수) | 17 |
hourX |
각 요일을 지정된 시간 간격으로 나눕니다. 자세한 내용은 아래를 참고하세요. | 아래 참고 |
minute |
일시가 1분 단위로 잘림 | 2014-09-03 17:15 |
minuteX |
각 시간 단위를 지정된 시간(분)으로 분할합니다. 자세한 내용은 아래를 참고하세요. | 아래 참고 |
second |
잘린 시간(초 단위) | 2014-09-03 17:15:00 |
millisecond |
Datetime이 가장 가까운 밀리초로 잘립니다 (언어 지원에 대한 자세한 내용은 이 페이지의 밀리초 및 마이크로초에 대한 방언 지원 섹션 참고). | 2014-09-03 17:15:00.000 |
millisecondX |
각 초를 지정된 밀리초 수의 간격으로 분할합니다 (언어 지원에 대한 자세한 내용은 이 페이지의 밀리초 및 마이크로초에 대한 방언 지원 섹션 참조). 자세한 내용은 아래를 참고하세요. | 아래 참고 |
microsecond |
DateTime은 가장 가까운 마이크로초로 잘립니다 (언어 지원에 대한 자세한 내용은 이 페이지의 밀리초 및 마이크로초에 대한 방언 지원 섹션 참고). | 2014-09-03 17:15:00.000000 |
기간 | 설명 | 출력 예시 |
---|---|---|
date |
기본 필드의 날짜 | 2017-09-03 |
주 단위
기간 | 설명 | 출력 예시 |
---|---|---|
week |
기본 날짜/시간의 월요일부터 시작하는 요일 | 2017-09-01 |
day_of_week |
요일만 | Wednesday |
day_of_week_index |
요일 색인 (0 = 월요일, 6 = 일요일) | 2 |
기간
기간 | 설명 | 출력 예시 |
---|---|---|
month |
기본 날짜/년의 연도와 월 | 2014-09 |
month_num |
기본 날짜/시간에 해당하는 월의 정수입니다. | 9 |
fiscal_month_num |
기본 날짜/시간의 회계 월의 정수입니다. | 6 |
month_name |
월 이름 | September |
day_of_month |
날짜 | 3 |
fiscal_month_num
기간을 사용하려면 모델에 fiscal_month_offset
매개변수를 설정해야 합니다.
분기 기간
기간 | 설명 | 출력 예시 |
---|---|---|
quarter |
기본 날짜/년의 연도와 분기 | 2017-Q3 |
fiscal_quarter |
회계 연도의 기본 날짜/시간 | 2017-Q3 |
quarter_of_year |
연중 분기에 'Q' 표시 | Q3 |
fiscal_quarter_of_year |
'Q' 앞에 오는 회계 분기 | Q3 |
fiscal_quarter
및 fiscal_quarter_of_year
기간을 사용하려면 모델에 fiscal_month_offset
매개변수를 설정해야 합니다.
연도
기간 | 설명 | 출력 예시 |
---|---|---|
year |
기본 날짜/시간의 정수 연도 | 2017 |
fiscal_year |
기본 날짜/시간의 회계연도 정수입니다. | FY2017 |
day_of_year |
날짜 | 143 |
week_of_year |
숫자로 표시된 주(1년 기준) | 17 |
fiscal_year
기간을 사용하려면 모델에 fiscal_month_offset
매개변수를 설정해야 합니다.
hourX
에서 X
가 2, 3, 4, 6, 8 또는 12로 대체됩니다.
이렇게 하면 각 요일이 지정된 시간 간격으로 나누어집니다. 예를 들어 hour6
는 매일 6시간 세그먼트로 분할되며 다음과 같이 표시됩니다.
2014-09-01 00:00:00
2014-09-01 06:00:00
2014-09-01 12:00:00
2014-09-01 18:00:00
예를 들어 time
이 2014-09-01 08:03:17
인 행에는 hour6
의 2014-09-01 06:00:00
가 있습니다.
minuteX
에서 X
가 2, 3, 4, 5, 6, 10, 12, 15, 20, 30으로 대체됩니다.
이렇게 하면 매 시간에서 지정된 시간(분)으로 분할됩니다. 예를 들어 minute15
는 매시간 15분 세그먼트로 분할되며 다음과 같이 표시됩니다.
2014-09-01 01:00:00
2014-09-01 01:15:00
2014-09-01 01:30:00
2014-09-01 01:45:00
예를 들어 time
이 2014-09-01 01:17:35
인 행에는 minute15
의 2014-09-01 01:15:00
가 있습니다.
millisecondX
에서 X
가 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250, 500으로 대체됩니다.
이렇게 하면 각 초를 지정된 밀리초 수의 간격으로 분할합니다. 예를 들어 millisecond250
는 1초마다 250밀리초 세그먼트로 분할되며 다음과 같이 표시됩니다.
2014-09-01 01:00:00.000
2014-09-01 01:00:00.250
2014-09-01 01:00:00.500
2014-09-01 01:00:00.750
예를 들어 time
이 2014-09-01 01:00:00.333
인 행에는 millisecond250
의 2014-09-01 01:00:00.250
가 있습니다.
시간대 전환 및 convert_tz
일반적으로 시간 계산 (차이, 기간 등)은 모두 동일한 시간대로 변환된 시간 값에서 작업하는 경우에만 올바르게 작동하므로 LookML을 작성할 때 시간대를 염두에 두어야 합니다.
Looker에는 다양한 시간대 간에 시간 기반 데이터를 변환하는 다양한 시간대 설정이 있습니다. Looker는 기본적으로 시간대 변환을 수행합니다. convert_tz
매개변수는 type: time
의 측정기준 그룹에 지원됩니다. Looker에서 특정 측정기준 또는 측정기준 그룹에 대해 시간대 변환을 실행하지 않도록 하려면 convert_tz
매개변수 문서 페이지에 설명된 convert_tz
매개변수를 사용하면 됩니다.
밀리초 및 마이크로초를 위한 언어 지원
Looker는 시간대 정밀도에서 마이크로초까지 지원되지만 일부 데이터베이스는 초 단위까지 정밀도를 지원합니다. 데이터베이스에서 지원할 수 있는 시간보다 정확한 기간이 발견되면 초 단위로 반올림됩니다.
Looker 최신 출시 버전에서는 다음 언어가 밀리초를 지원합니다.
Looker 최신 출시 버전에서 다음 언어가 마이크로초를 지원합니다.
datatype
데이터베이스 지정
datatype
매개변수를 사용하면 측정기준 그룹에 제공하고 있는 데이터베이스 표의 시간 데이터 유형을 지정할 수 있어 쿼리 성능을 높일 수 있습니다.
type: time
의 측정기준 그룹에서 datatype
매개변수는 측정기준 그룹의 sql
매개변수에 적용됩니다.
type: duration
의 측정기준 그룹에서 datatype
매개변수는 sql_start
및 sql_end
매개변수에 모두 적용되므로 sql_start
및 sql_end
이 모두 지정된 데이터 유형이어야 합니다.
datatype
매개변수는 다음 값을 허용합니다.
epoch
: SQL 에포크 필드입니다. 즉, Unix 에포크에서 초를 나타내는 정수입니다.date
: SQL 날짜 필드입니다 (즉, 시간 정보가 없는 필드).datetime
: SQL 날짜/시간 필드입니다.timestamp
: SQL 타임스탬프 필드입니다.yyyymmdd
: YYYYMMDD 형식의 날짜를 나타내는 정수가 포함된 SQL 필드입니다.
datatype
의 기본값은 timestamp
입니다.
Examples
날짜/시간 정보가 포함된 created_at
라는 열이 있다고 가정하겠습니다. 이 날짜/시간을 기반으로 날짜, 주, 월 측정기준을 만들려고 합니다. 다음을 사용할 수 있습니다.
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
-
이렇게 하면 탐색 UI에서 생성일, 생성된 주, 생성된 월이라는 3개의 측정기준이 생성됩니다. dimension_group
이름을 기간과 결합하여 측정기준 이름을 생성하는 방법에 유의하세요.
고려사항
측정기준 그룹은 개별 측정기준으로 참조해야 합니다.
측정기준 그룹은 측정기준 그룹을 나타내므로 측정기준 하나만 사용하는 것이 아니라 LookML에서 직접 참조할 수 없습니다. 대신 생성된 측정기준을 참조해야 합니다.
예를 들어 이 측정기준 그룹을 살펴보겠습니다.
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
-
다른 LookML 필드에서 이러한 측정기준 중 하나를 참조하려면 ${created_date}
, ${created_week}
, {$created_month}
참조를 사용하세요. ${created}
만 사용하려고 하면 Looker에서 참조하는 기간을 알 수 없어 오류가 발생합니다.
따라서 timeframe
을 두 개 이상 지정하는 경우 측정기준 그룹에 primary_key
매개변수를 사용해서는 안 됩니다.
채팅 팀 팁:
dimension_group
이(가)timeframe
이상인 경우primary_key
를 사용할 때 발생하는 유효성 검사 오류에 대해 자주 묻는 질문입니다. 자세한 내용은 이 커뮤니티 주제를 참조하세요.
시간대 정보가 포함된 타임스탬프 데이터
일부 데이터베이스 언어에는 시간대 정보가 포함된 타임스탬프 옵션이 있습니다. 이를 통해 시간대를 여러 개일 수 있는 단일 필드에 타임스탬프 데이터를 저장할 수 있습니다. 하나의 데이터 행은 UTC로, 다른 행은 동부 표준시로 저장될 수 있습니다. 예를 들어 Snowflake 언어 타임스탬프 옵션에 관한 자세한 내용은 Snowflake TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ
타임스탬프 문서를 참고하세요.
이 경우 Looker에서 시간대 변환을 수행하면 오류가 발생할 수 있습니다. 이를 방지하려면 측정기준의 sql
매개변수에서 타임스탬프 데이터를 시간대 변환을 실행하지 않는 타임스탬프 유형으로 명시적으로 변환해야 합니다. 예를 들어 Snowflake 언어에서는 TO_TIMESTAMP
함수를 사용하여 타임스탬프 데이터를 전송할 수 있습니다.
개별 시간 또는 기간 측정기준을 만들 수 있습니다.
단일 dimension_group
에서 모두 생성하는 대신 포함할 개별 기간 또는 기간에 대해 하나의 측정기준을 만들 수 있습니다. 일반적으로 Looker의 기간 이름 지정 규칙을 변경하거나 데이터베이스에 미리 계산된 시간 열이 없는 경우 개별 측정기준을 만들지 않을 수 있습니다. 자세한 내용은 측정기준, 필터, 매개변수 유형 문서 페이지를 참고하세요.
한 주의 시작 요일을 변경할 수 있습니다.
기본적으로 Looker의 주는 월요일에 시작됩니다. 모델 수준에서 week_start_day
매개변수를 사용하여 이를 변경할 수 있습니다.
week_start_day
는 week_of_year
기간을 지원하지 않습니다. 이 기간은 월요일을 사용하는 ISO 표준을 기반으로 하기 때문입니다.
맞춤 필터와 맞춤 필드는 일부 기간을 지원하지 않습니다.
현재 기간 day_of_week
, fiscal_quarter_of_year
, millisecond
, millisecondX
, microsecond
, month_name
, quarter_of_year
, time_of_day
는 맞춤 필터 또는 맞춤 입력란에서 지원되지 않습니다.
월, 분기, 연도 간격은 완료 기간만 계산합니다.
duration
측정기준 그룹의 month
간격은 종료일이 시작일보다 크거나 같을 때만 1개월이 지난 것으로 간주합니다.
예를 들면 다음과 같습니다.
- 같은 해의 9월 26일과 10월 25일 사이의 월차는 0입니다.
- 같은 해의 9월 26일과 10월 26일 사이의 개월 차이는 1입니다.
quarter
및 year
간격은 동일한 로직을 따릅니다.