用途
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パラメータでは、時間差を測定するために使用する 1 つ以上の間隔単位を指定します。選択肢については、このページの「インターバルのオプション」のセクションをご覧ください。期間の値は最も近い整数に丸められます。
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 ;;
}
Explore 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();;
}
Explore UI では、これにより Duration Since Event というディメンション グループが生成され、その中に Hours Since Event と Days Since Event という個別のディメンションが生成されます。
別の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 参照タイプを指定できます。view_name.field_name::type構文は、SQL の組み込みと LookML オブジェクトの参照ドキュメントページで説明されており、ディメンションへの参照を文字列にキャストせずに、フィールドの::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} ;;
}
Explore UI では、月初からの週数、月初からの日数、月初からの時間数という個別のディメンションを持つ、月初からの期間という名前のディメンション グループが作成されます。sql_start および sql_end パラメーターで参照されるフィールドに ::datetime 参照タイプを指定すると、生成される SQL で created_month および created_time ディメンションがタイムスタンプとして扱われます。
たとえば、ユーザーがフィールド ピッカーで [作成日] ディメンションと [月初からの日数] ディメンションを選択したとします。[作成日] で返された値の 1 つが 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パラメータは省略可能ですが、省略されることはほとんどありません。このパラメーターでは、ディメンショングループによって生成される 1 つ以上のタイムフレームを指定します。timeframesが含まれていない場合、すべてのタイムフレーム オプションがディメンショングループに追加されます。可能な選択肢のリストについては、このページのタイムフレーム オプションのセクションを参照してください。type: timeディメンショングループのsqlパラメータには、タイムスタンプ、日時、日付、エポック、または yyyymmdd 形式のデータを含む有効な SQL 式を指定できます。datatypeパラメータは省略可能です。ディメンショングループが日時に基づいていない場合は、代わりにエポック、タイムスタンプ、日付、または yyyymmdd 形式を指定できます。詳細については、このページのデータベースdatatypeを指定するをご覧ください。convert_tzパラメータは省略可能で、タイムゾーンの自動変換を防止できます。それについては、このページのタイムゾーンの変換とconvert_tzのセクションにあるさらに詳細な説明を参照してください。
ここには示されていませんが、フィールドレベル パラメータの多くは、ディメンショングループでも使用できます。
たとえば、日時情報を含む created_at という名前の列があるとします。この日時に基づいて日、週、月のディメンションを作成します。次のように指定できます。
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
Explore UI では、作成日、作成週、作成月という名前の 3 つのディメンションが生成されます。ディメンション名を生成するために、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 |
直近の時間まで切り捨てた日時 | 2014-09-03 17 |
hour_of_day |
基礎となるフィールドの時間を表す整数 | 17 |
hourX |
各日を指定した時間数で分割します。 | hourX の使用をご覧ください。 |
minute |
直近の分まで切り捨てた日時 | 2014-09-03 17:15 |
minuteX |
各時間を指定した分数で分割します。 | minuteX の使用をご覧ください。 |
second |
直近の秒まで切り捨てた日時 | 2014-09-03 17:15:00 |
millisecond |
直近のミリ秒まで切り捨てた日時(ダイアレクトのサポートについては、このページのダイアレクトにおけるミリ秒およびマイクロ秒のサポートをご覧ください)。 | 2014-09-03 17:15:00.000 |
millisecondX |
各秒を指定のミリ秒数の間隔で分割します(ダイアレクトのサポートについては、このページのダイアレクトにおけるミリ秒およびマイクロ秒のサポートをご覧ください)。 | millisecondX の使用をご覧ください。 |
microsecond |
直近のマイクロ秒まで切り捨てた日時(ダイアレクトのサポートについては、このページのダイアレクトにおけるミリ秒およびマイクロ秒のサポートをご覧ください)。 | 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 |
年の週番号 | 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 日付フィールド(つまり、時刻情報を含まないフィールド)。datetime: SQL の日時フィールド。timestamp: SQL タイムスタンプフィールド。yyyymmdd: YYYYMMDD 形式の日付を表す整数を含む SQL フィールド。
datatype のデフォルト値は timestamp です。
カスタム カレンダー タイプ ディメンション グループ
LookML プロジェクトでカスタム カレンダーを実装している場合は、type: custom_calendar を dimension_group パラメータと組み合わせて使用して、データベースで定義したカスタム カレンダー テーブルに基づいて一連の時間ベースのディメンションを作成できます。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パラメータは省略可能です。このパラメーターでは、ディメンショングループによって生成される 1 つ以上のカスタム タイムフレームを指定します。custom_timeframesが指定されていない場合、ディメンション グループはすべてのカスタム期間を作成します。使用可能なカスタム期間については、このページのcustom_timeframesセクションをご覧ください。type: custom_calendarディメンショングループのsqlパラメータには、タイムスタンプ、日時、日付、エポック、または 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 は、Explore のフィールド ピッカーで、type: custom_calendar ディメンション グループで label パラメータまたは group_label パラメータが使用されているかどうかに基づいて、ディメンション フィールド ラベルとグループ ラベルを生成します。
- デフォルト(
labelもgroup_labelも指定されていない):- Looker は、ディメンション グループのタイムフレームをデフォルトのディメンション グループ ラベル(ディメンション グループ名と Custom Calendar を連結した名前。たとえば Created Custom Calendar)の下にグループ化します。
- Looker では、各タイムフレーム名の先頭に「Fiscal」が追加されます(例: Fiscal Date、Fiscal Week、Fiscal Year)。
group_labelのみ:- Looker は、指定された
group_label値でディメンション グループのタイムフレームをグループ化します。 - Looker は、各期間名の前にディメンション グループ名と Fiscal を追加します (例: Created Fiscal Date、Created Fiscal Week、Created Fiscal Year)。
- Looker は、指定された
labelのみ:- Looker は、ディメンション グループの期間を
label値に Custom Calendar を付加した値の下にグループ化します (たとえば、label: "My Label"で定義されたディメンション グループの場合、期間は My Label Custom Calendar の下にグループ化されます)。 - Looker では、各タイムフレーム名の先頭に「Fiscal」が追加されます(例: Fiscal Date、Fiscal Week、Fiscal Year)。
- Looker は、ディメンション グループの期間を
group_labelとlabelの両方が指定されています:- Looker では、ディメンション グループのタイムフレームが指定された
group_label値の下にグループ化されます。 - Looker では、各タイムフレームの先頭に
label値が追加されます(たとえば、label: "My Label"で定義されたディメンション グループの場合、タイムフレームの名前は「My Label Date」、「My Label Week」、「My Label Year」になります)。
- Looker では、ディメンション グループのタイムフレームが指定された
ディメンション グループのローカライズ
モデルのローカライズを使用すると、ディメンション グループによって生成される期間、間隔、カスタム期間の名前をカスタマイズして翻訳できます。詳しくは、ディメンション グループのローカライズをご覧ください。
注意点
ディメンショングループは個別のディメンションによって参照される必要があります。
ディメンショングループは、1 つのディメンションではなくディメンションのグループを表すため、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 パラメーターを使用しないでください。
チャットチームに関するヒント: 複数の
timeframeを含むdimension_groupでprimary_keyを使用した場合に発生する検証エラーについてよく質問されます。詳しくは、Looker の期間とディメンション グループ に関するコミュニティ投稿をご覧ください。
タイムゾーン情報を含むタイムスタンプデータ
一部のデータベース ダイアレクトには、タイムゾーン情報を含むタイムスタンプ オプションがあります。これにより、タイムゾーンが複数ある単一フィールドにタイムスタンプデータを保管できます。あるデータ行は UTC で保存され、別の行は東部時間で保存されます。たとえば、Snowflake ダイアレクトのタイムスタンプ オプションについては、Snowflake TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ タイムスタンプのドキュメントをご覧ください。
この場合、Looker でタイムゾーン変換を実行するとエラーが発生することがあります。これを回避するには、ディメンションの sql パラメーターで、タイムスタンプデータをタイムゾーン変換を行わないタイムスタンプ型に明示的にキャストする必要があります。例えば、Snowflake 方言では、TO_TIMESTAMP 関数 を使用してタイムスタンプデータをキャストできます。
個別の時間または期間ディメンションを作成可能
すべての期間または期間を 1 つの dimension_group で生成するのではなく、含める期間または期間ごとに 1 つのディメンションを作成できます。一般的に、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 の区間も同じ論理に従います。