사용
view: view_name {
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, …] # see following explanation for valid intervals
}
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 언어에 맞는 표현식을 사용하여 데이터베이스에서 시간을 가져오는 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 버전을 만들 수 있습니다.
예를 들어 time, date, week, month, raw 기간이 있는 type: time의 created 측정기준 그룹이 다음과 같이 정의되어 있다고 가정해 보겠습니다.
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에서는 이로 인해 월 1일 이후 기간이라는 측정기준 그룹이 생성되고, 개별 측정기준은 월 1일 이후 주, 월 1일 이후 일, 월 1일 이후 시간이 됩니다. sql_start 및 sql_end 매개변수에서 참조되는 필드에 대해 ::datetime 참조 유형을 지정하면 생성된 SQL에서 created_month 및 created_time 차원을 타임스탬프로 처리할 수 있습니다.
예를 들어 사용자가 필드 선택 도구에서 생성일 및 월의 첫날부터 경과한 일수 측정기준을 선택한다고 가정해 보겠습니다. 생성일에 대해 반환된 값 중 하나가 2019-03-10인 경우 월 초 이후 일수에 대해 반환된 값은 9일입니다.
시간 유형 측정기준 그룹
type: time은 dimension_group 및 timeframes 파라미터와 함께 사용되어 시간 기반 측정기준 집합을 만듭니다. 예를 들어 단일 타임스탬프 열을 기반으로 날짜, 주, 월 측정기준을 만들 수 있습니다.
type: time의 측정기준 그룹 형식은 다음과 같습니다.
dimension_group: dimension_group_name {
type: time
timeframes: [timeframe, timeframe, …] # see following explanation for valid timeframes
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매개변수는 타임스탬프, datetime, date, epoch 또는 yyyymmdd 형식의 데이터를 포함하는 유효한 SQL 표현식을 사용할 수 있습니다.datatype매개변수는 선택사항입니다. 측정기준 그룹이 날짜/시간을 기반으로 하지 않는 경우 대신 에포크, 타임스탬프, 날짜 또는 yyyymmdd 형식을 지정할 수 있습니다. 자세한 내용은 다음에서 확인할 수 있습니다.데이터베이스 지정datatype이 페이지의 섹션입니다.convert_tz매개변수는 선택사항이며 자동 시간대 변환을 방지할 수 있습니다. 이 페이지의 시간대 변환 및convert_tz섹션에 자세히 설명되어 있습니다.
여기에 나열되지는 않았지만 많은 필드 수준 매개변수를 측정기준 그룹과 함께 사용할 수도 있습니다.
예를 들어 일시 정보가 포함된 created_at라는 열이 있다고 가정해 보겠습니다. 이 날짜/시간을 기반으로 날짜, 주, 월 측정기준을 만들려고 합니다. 다음과 같은 방법을 사용할 수 있습니다.
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
탐색 UI에서는 이로 인해 생성일, 생성주, 생성월이라는 이름의 세 가지 차원이 생성됩니다. dimension_group이라는 이름이 시간 범위와 결합되어 차원 이름을 생성하는 방식을 주목하십시오.
기간 옵션
그만큼timeframes 이 매개변수는 차원 그룹에 대해서만 지원됩니다.type: time . type: duration의 측정기준 그룹의 경우 intervals 매개변수를 대신 사용하세요.
timeframes 매개변수는 측정기준 그룹이 생성해야 하는 측정기준을 지정하며 다음 옵션을 포함합니다.
차원 그룹 type: time에 대해 timeframes 매개변수를 사용하지 않거나 timeframes 매개변수를 비워두면 (timeframes: []), Explore에는 해당 측정기준 그룹에 대한 기본 시간 범위 세트가 포함됩니다.
dateday_of_monthday_of_weekday_of_week_indexday_of_yearhourhour_of_dayminutemonthmonth_namemonth_numquarterquarter_of_yeartimetime_of_dayweekweek_of_yearyear
특별 기간
시간 범위
| 기간 | 설명 | 출력 예시 |
|---|---|---|
time |
기본 필드의 날짜 및 시간 (일부 SQL 언어는 데이터베이스에 포함된 만큼의 정밀도를 표시하는 반면, 다른 언어는 초까지만 표시함) | 2014-09-03 17:15:00 |
time_of_day |
시간 | 17:15 |
hour |
가장 가까운 시간으로 잘린 datetime | 2014-09-03 17 |
hour_of_day |
기본 필드의 정수 시간 | 17 |
hourX |
각 날짜를 지정된 시간 수의 간격으로 분할합니다. | hourX 사용을 참고하세요. |
minute |
가장 가까운 분으로 잘린 datetime | 2014-09-03 17:15 |
minuteX |
각 시간을 지정된 분 수의 간격으로 나눕니다. | minuteX 사용을 참고하세요. |
second |
가장 가까운 초로 잘린 날짜 및 시간 | 2014-09-03 17:15:00 |
millisecond |
가장 가까운 밀리초로 잘린 datetime입니다 (방언 지원에 관한 자세한 내용은 이 페이지의 밀리초 및 마이크로초에 대한 방언 지원 섹션 참고). | 2014-09-03 17:15:00.000 |
millisecondX |
각 초를 지정된 밀리초 수의 간격으로 분할합니다 (방언 지원에 대한 자세한 내용은 이 페이지의 밀리초 및 마이크로초에 대한 방언 지원 섹션 참고). | millisecondX 사용을 참고하세요. |
microsecond |
날짜 및 시간은 가장 가까운 마이크로초 단위로 잘립니다 (방언 지원에 대한 정보는 이 페이지의 밀리초 및 마이크로초에 대한 방언 지원 섹션을 참조하십시오). | 2014-09-03 17:15:00.000000 |
기간(날짜 및 시간)
| 기간 | 설명 | 출력 예시 |
|---|---|---|
date |
기본 필드의 날짜 | 2017-09-03 |
주 기간
| 기간 | 설명 | 출력 예시 |
|---|---|---|
week |
기본 datetime의 월요일에 시작하는 주의 날짜 | 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 |
기본 datetime의 연도 및 분기 | 2017-Q3 |
fiscal_quarter |
기본 datetime의 회계 연도 및 분기 | 2017-Q3 |
quarter_of_year |
연도의 분기(앞에 'Q'가 붙음) | Q3 |
fiscal_quarter_of_year |
연도의 회계 분기(앞에 'Q'가 붙음) | Q3 |
사용하려면fiscal_quarter 그리고fiscal_quarter_of_year 시간 범위, fiscal_month_offset 해당 매개변수는 모델에 설정되어야 합니다.
연도별 기간
| 기간 | 설명 | 출력 예시 |
|---|---|---|
year |
기본 datetime의 정수 연도 | 2017 |
fiscal_year |
기본 datetime의 정수 회계 연도 | FY2017 |
day_of_year |
연중 날짜 | 143 |
week_of_year |
연중 주를 숫자로 표시 | 17 |
fiscal_year 기간을 사용하려면 모델에서 fiscal_month_offset 매개변수를 설정해야 합니다.
hourX 사용
hourX에서 X이 2, 3, 4, 6, 8 또는 12로 대체됩니다.
이렇게 하면 각 날짜가 지정된 시간 수의 간격으로 분할됩니다. 예를 들어, hour6은 하루를 6시간 단위로 나누며, 그 결과는 다음과 같습니다.
2014-09-01 00:00:002014-09-01 06:00:002014-09-01 12:00:002014-09-01 18:00:00
예를 들어 time이 2014-09-01 08:03:17인 행의 hour6은 2014-09-01 06:00:00입니다.
minuteX 사용
minuteX에서 X은 2, 3, 4, 5, 6, 10, 12, 15, 20 또는 30으로 대체됩니다.
이렇게 하면 각 시간이 지정된 분 단위의 간격으로 분할됩니다. 예를 들어, minute15은 매 시간을 15분 단위로 나누며, 그 결과는 다음과 같습니다.
2014-09-01 01:00:002014-09-01 01:15:002014-09-01 01:30:002014-09-01 01:45:00
예를 들어 time이 2014-09-01 01:17:35인 행의 minute15은 2014-09-01 01:15:00입니다.
millisecondX 사용
millisecondX에서 X은 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250 또는 500으로 대체됩니다.
이렇게 하면 각 초가 지정된 밀리초 수의 간격으로 분할됩니다. 예를 들어 millisecond250는 각 초를 250밀리초 세그먼트로 분할하며 다음과 같이 표시됩니다.
2014-09-01 01:00:00.0002014-09-01 01:00:00.2502014-09-01 01:00:00.5002014-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에서는 다음 언어가 밀리초를 지원합니다.
| 언어 | 지원 여부 |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud AlloyDB for PostgreSQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MongoSQL | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
최신 버전의 Looker에서는 다음 언어가 마이크로초를 지원합니다.
| 언어 | 지원 여부 |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud AlloyDB for PostgreSQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MongoSQL | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
데이터베이스 datatype 지정
datatype 매개변수를 사용하면 데이터베이스 테이블에서 측정기준 그룹에 제공하는 시간 데이터의 유형을 지정할 수 있어 쿼리 성능이 향상될 수 있습니다.
차원 그룹의 경우type: time, 그datatype 매개변수는 적용됩니다sql 차원 그룹의 매개변수.
type: duration의 측정기준 그룹의 경우 datatype 매개변수가 sql_start 및 sql_end 매개변수에 모두 적용되므로 sql_start 및 sql_end이 모두 지정된 데이터 유형인지 확인하세요.
datatype 매개변수는 다음 값을 허용합니다.
epoch: SQL 에포크 필드 (즉, Unix 에포크에서 경과된 시간을 초 단위로 나타내는 정수)입니다.date: SQL 날짜 필드 (즉, 하루 중 시간 정보가 포함되지 않음)datetimeSQL의 날짜/시간 필드입니다.timestamp: SQL 타임스탬프 필드입니다.yyyymmdd: YYYYMMDD 형식의 날짜를 나타내는 정수가 포함된 SQL 필드입니다.
datatype의 기본값은 timestamp입니다.
맞춤 캘린더 유형 측정기준 그룹
LookML 프로젝트에 맞춤 캘린더를 구현한 경우 dimension_group 매개변수와 함께 type: custom_calendar를 사용하여 데이터베이스에 정의한 맞춤 캘린더 테이블을 기반으로 시간 기반 측정기준 집합을 만들 수 있습니다. LookML 프로젝트에서 맞춤 캘린더를 설정하는 방법에 대한 자세한 내용은 Looker에서 맞춤 캘린더 사용 문서 페이지를 참고하세요.
type: custom_calendar의 측정기준 그룹 형식은 다음과 같습니다.
dimension_group: dimension_group_name {
type: custom_calendar
custom_timeframes: [custom_timeframe, custom_timeframe, …] # see the following section for valid custom timeframes
sql: SQL expression ;; # often this refers to a single database column
based_on_calendar: custom_calendar_view
}
type: custom_calendar의 측정기준 그룹:
custom_timeframes파라미터는 선택사항입니다. 측정기준 그룹에서 생성해야 하는 하나 이상의 맞춤 기간을 지정합니다.custom_timeframes이 지정되지 않은 경우, 측정기준 그룹은 모든 사용자 지정 기간을 생성합니다. 가능한 맞춤 기간은 이 페이지의custom_timeframes섹션에 나열되어 있습니다.type: custom_calendar측정기준 그룹의sql매개변수는 타임스탬프, datetime, date, epoch 또는 yyyymmdd 형식의 데이터를 포함하는 유효한 SQL 표현식을 사용할 수 있습니다.based_on_calendar매개변수는 LookML에서 모델링한 맞춤 캘린더의 뷰 이름을 지정합니다.convert_tz매개변수는 선택 사항이며 자동 시간대 변환을 방지할 수 있습니다. 이 페이지의 시간대 변환 및convert_tz섹션에 자세히 설명되어 있습니다.datatype파라미터는 선택사항입니다. 측정기준 그룹이 날짜/시간을 기반으로 하지 않는 경우 대신 에포크, 타임스탬프, 날짜 또는 yyyymmdd 형식을 지정할 수 있습니다. 자세한 내용은 이 페이지의 데이터베이스 데이터 유형 지정 섹션을 참고하세요.
여기에 나열되지는 않았지만 많은 필드 수준 매개변수를 측정기준 그룹과 함께 사용할 수도 있습니다.
다음은 orders.view LookML 파일에서 사용자 지정 캘린더 측정기준 그룹의 예입니다.
view: orders
include: "/views/retail_custom_calendar.view"
dimension_group: created {
type: custom_calendar
sql: ${TABLE}.created_at ;;
custom_timeframes: [custom_year, custom_quarter]
based_on_calendar: retail_custom_calendar
}
이 사용자 지정 캘린더 차원 그룹에서 다음 요소를 확인하십시오.
type: custom_calendar- 측정기준 그룹이 맞춤 캘린더 유형으로 정의됩니다.sql: ${TABLE}.created_at ;;- 측정기준 그룹은 데이터베이스의orders.created_at열에서 날짜/시간 정보를 사용합니다.custom_timeframes: [custom_year, custom_quarter]- 측정기준 그룹의 라벨은 Created Custom Calendar이며 Fiscal Year 및 Fiscal Quarter 라벨이 지정된 기간이 포함됩니다. 자세한 내용은 맞춤 캘린더 측정기준 그룹의 라벨을 참고하세요.based_on_calendar: retail_custom_calendar- 측정기준 그룹은 LookML 프로젝트의retail_custom_calendar뷰에 정의된 맞춤 캘린더의 데이터를 해당 데이터베이스의orders.created_at열에 있는 데이터와 조인하여 맞춤 캘린더를 사용하는 쿼리 결과를 제공합니다. 맞춤 캘린더 정의에 대한 자세한 내용은 Looker에서 맞춤 캘린더 사용 문서 페이지를 참고하세요.
custom_timeframes
type: custom_calendar으로 정의된 측정기준 그룹의 경우, 측정기준 그룹에 가능한 모든 사용자 지정 기간을 포함하지 않으려면 custom_timeframes 매개변수를 사용하여 측정기준 그룹에 포함할 기간을 지정할 수 있습니다. 다음 맞춤 기간이 지원됩니다.
| 기간 | 설명 | 가정 (_num 유형의 경우) |
|---|---|---|
|
캘린더 뷰의 특정 날짜입니다. | |
|
캘린더 뷰의 숫자 요일입니다. | 최대 371일로 가정 |
|
캘린더 내의 일반 기간입니다 (예: 4-4-5 캘린더). | |
|
맞춤 기간의 숫자 값입니다. | 연간 12개 기간을 가정합니다. |
|
캘린더 뷰의 분기입니다. | |
|
연중 분기를 나타내는 숫자. | 연간 4분기로 가정합니다. |
|
맞춤형 계절 기간. | |
|
맞춤 시즌의 숫자 값입니다. | 연간 2개 시즌을 가정합니다. |
|
캘린더 뷰의 주입니다. | |
|
연도의 숫자 주입니다. | 연간 최대 53주를 기준으로 합니다. |
|
캘린더 뷰의 연도입니다. | |
|
맞춤 연도의 숫자 값입니다. |
based_on_calendar
type: custom_calendar로 정의된 측정기준 그룹의 경우 based_on_calendar 매개변수는 LookML에서 모델링한 맞춤 캘린더의 뷰 이름을 지정합니다.
맞춤 캘린더 측정기준 그룹의 라벨
Looker는 type: custom_calendar 측정기준 그룹에서 label 또는 group_label 파라미터가 사용되는지에 따라 Explore 필드 선택 도구에서 측정기준 필드 라벨과 그룹 라벨을 생성합니다.
- 기본값 (
label도group_label도 지정되지 않음):- Looker는 측정기준 그룹 시간 프레임을 기본 측정기준 그룹 라벨 아래에 그룹화합니다. 이 라벨은 측정기준 그룹 이름에 Custom Calendar을 연결한 것입니다 (예: Created Custom Calendar).
- Looker는 각 기간 이름 앞에 회계를 추가합니다 (예: 회계 날짜, 회계 주, 회계 연도).
group_label만 해당:- Looker는 지정된
group_label값 아래에 측정기준 그룹 기간을 그룹화합니다. - Looker는 각 기간 이름 앞에 측정기준 그룹 이름과 회계를 추가합니다 (예: 생성 회계일, 생성 회계 주, 생성 회계 연도).
- Looker는 지정된
label만 해당:- Looker는 맞춤 캘린더가 추가된
label값 아래에 측정기준 그룹 기간을 그룹화합니다 (예:label: "My Label"로 정의된 측정기준 그룹의 경우 기간이 내 라벨 맞춤 캘린더 아래에 그룹화됨). - Looker는 각 기간 이름 앞에 회계를 추가합니다 (예: 회계 날짜, 회계 주, 회계 연도).
- Looker는 맞춤 캘린더가 추가된
group_label과label모두 지정되었습니다:- Looker는 지정된
group_label값 아래에 측정기준 그룹 기간을 그룹화합니다. - Looker는 각 기간 앞에
label값을 추가합니다 (예를 들어label: "My Label"로 정의된 측정기준 그룹의 경우 기간 이름은 내 라벨 날짜, 내 라벨 주, 내 라벨 연도가 됩니다).
- Looker는 지정된
측정기준 그룹 현지화
모델 현지화를 사용하여 측정기준 그룹에서 생성된 기간, 간격 또는 맞춤 기간의 이름을 맞춤설정하고 번역할 수 있습니다. 자세한 내용은 차원 그룹 현지화을 참조하세요.
고려사항
측정기준 그룹이 개별 측정기준으로 참조되어야 합니다.
측정기준 그룹은 하나의 측정기준이 아닌 측정기준 그룹을 나타내므로 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 매개변수를 측정기준 그룹에 사용해서는 안 됩니다.
채팅팀 팁:
primary_key를dimension_group에 둘 이상의timeframe와 함께 사용하는 경우 발생할 수 있는 유효성 검사 오류에 대해 자주 질문을 받습니다. 자세한 내용은 Looker의 시간 프레임 및 차원 그룹 커뮤니티 게시물을 참조하세요.
시간대 정보가 포함된 타임스탬프 데이터
일부 데이터베이스 다이얼렉트에는 시간대 정보가 포함된 타임스탬프 옵션이 있습니다. 이렇게 하면 시간대가 여러 개 있을 수 있는 단일 필드에 타임스탬프 데이터를 저장할 수 있습니다. 한 행의 데이터는 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 표준을 기준으로 하기 때문인데, ISO 표준은 월요일을 기준으로 주를 정합니다.
맞춤 필터 및 사용자 지정 필드는 모든 기간을 지원하지 않습니다.
맞춤 필터 또는 맞춤 필드에서는 기간 day_of_week, fiscal_quarter_of_year, millisecond, millisecondX, microsecond, month_name, quarter_of_year, time_of_day이 지원되지 않습니다.
월, 분기 및 연도별 기간은 완전한 기간만 계산합니다.
duration 측정기준 그룹의 month 간격은 종료일이 시작일보다 크거나 같을 경우에만 한 달이 지난 것으로 간주합니다.
예를 들면 다음과 같습니다.
- 같은 해 9월 26일과 10월 25일의 개월 수 차이는 0개월입니다.
- 같은 해 9월 26일과 10월 26일의 차이는 1개월입니다.
quarter 및 year 간격은 동일한 논리를 따릅니다.