home ユーザーガイド 基本情報 ヘルプセンター ドキュメンテーション コミュニティ トレーニング 認証
menu
close
settings
Looker keyboard_arrow_down
language keyboard_arrow_down
English
Français
Deutsch
日本語
search
print
ディメンション、フィルタ、パラメーターのタイプ

このページでは、ディメンションまたはフィルタに含まれるtypeパラメーターについて言及しています。

typeは、メジャータイプのドキュメンテーションページで説明されているように、メジャーの一部として使用することもできます。

typeは、dimension_groupパラメーターのページで説明されているように、ディメンショングループの一部として使用することもできます。

使用方法

view: view_name {
  dimension: field_name {
    type: field_type
  }
}

階層

type

使用可能なフィールドタイプ

ディメンション、フィルタ、パラメーター

デフォルト値

string

許容値

ディメンション、フィルタ、パラメーターのタイプ

このページには、dimensionfilterparameterに割り当て可能な各種タイプに関する追加の詳細が含まれます。ディメンション、フィルタ、パラメーターに使用できるタイプは1つのみであり、タイプが指定されない場合はデフォルトでstringになります。

一部のタイプには補助パラメーターがあります。補助パラメーターについては、該当するセクションで説明しています。

タイプ定義

d = ディメンション
dg = ディメンショングループ
f = フィルタ
p = パラメーター
タイプ 説明 有効なフィールドタイプ
date 日付を含むフィールドに使用します。 d f p
date_time 日時を含むフィールドに使用します。 d f p
distance 2つのtype: locationディメンション間の最短パス(「直線距離」)の距離を計算するフィールドの場合 d
duration 追加事項6.0 dimension_groupとともに使用して、単一のテーブル列から複数の期間ベースのディメンションを作成します。ディメンショングループについては、dimension_groupパラメーターのページを参照してください。 dg
location 緯度と経度に基づき、ビジュアリゼーションで使用されるフィールドに使用します。 d
number 数値を含むフィールドに使用します。 d f p
string 文字や特殊文字を含むフィールドに使用します。 d f p
tier 数値を複数の範囲にグループ化するフィールドに使用します。 d
time dimension_groupとともに使用して、単一のテーブル列から複数の時間ベースのディメンションを作成します。ディメンショングループについては、dimension_groupパラメーターのページを参照してください。 dg
unquoted parameterフィールドに使用します。その値はSQLに直接挿入されるため、type: stringの場合のように引用符で囲まないでください。 p
yesno 何かが真であるか偽であるかを示すフィールドに使用します。 d f p
zipcode 郵便番号を含み、ビジュアリゼーションで使用されるフィールドに使用します。 d
個別の時刻タイプおよび日付タイプ 単一の時間ベースのディメンションを作成するために、type: timeの代わりにまれに使用されます。 d f
個別の期間タイプ 追加事項6.0 時間差を計算する単一の時間ベースのディメンションを作成するために、type: durationの代わりにまれに使用されます。 d
int 削除事項5.4 type: numberに置き換わりました。 d

distance

type: distanceは、2つのtype: locationディメンション間の最短パス(「直線距離」)の距離を計算するために使用されます。

type: distanceディメンションのsqlパラメーターは除外されます。代わりに、start_location_fieldパラメーターとend_location_fieldパラメーターにtype: locationディメンションへの参照を指定します。

使用方法は次のとおりです。

view: view_name {
  dimension: field_name {
    type: distance
    start_location_field: field_name_1
    end_location_field: field_name_2
    units: kilometers
  }
}

距離の単位は、unitsパラメーターで指定します。指定可能な値は次のとおりです。

例えば、顧客がレンタル品をピックアップする際に移動する距離を計算するには、次のようにします。

dimension: distance_to_pickup { type: distance start_location_field: customer.home_location end_location_field: rental.pickup_location units: miles }

注:計算される距離は2点間の最短パス(「直線距離」)であり、必ずしも道のりではありません。

start_location_fieldパラメーターとend_location_fieldパラメーターでは${view_name.field_name}構文を使用しないように注意してください。代わりに、view_name.field_nameのように、ビュー名とフィールド名をそのまま使用します。

duration

type: durationは、ディメンション間またはSQL式間の計算された時間差セットを作成するために、dimension_groupとともに使用されます。

type: durationdimension_groupでのみ機能し、通常のdimensionでは機能しません。ただし、後述のセクションで説明するように、個別の期間ベースのディメンションを指定できます。

type: durationのディメンショングループについては、dimension_groupパラメーターのページを参照してください。

location

type: locationは、マップまたは静的マップ(ポイント)ビジュアリゼーションにプロットする座標を作成したり(静的マップ(領域)には州または国フィールドを使用します)、type: distanceの計算で使用する座標を作成したりするために、sql_latitudeおよびsql_longitudeパラメーターとともに使用されます。

使用パターンは次のとおりです。

view: view_name {
  dimension: field_name {
    type: location
    sql_latitude:${field_name_1};;
    sql_longitude:${field_name_2};;
  }
}

type: locationディメンションのsqlパラメーターは除外されます。代わりに、sql_latitudeパラメーターとsql_longitudeパラメーターに、結果が小数の緯度/経度になる有効なSQL式を指定します。これらは通常、緯度または経度情報を含むLookMLフィールドへの参照になりますが、本社の場所などを指定したい場合は静的値にすることができます。

例えば、store_locationディメンションを作成するには、次のようにします。

dimension: store_location { type: location sql_latitude: ${store_latitude} ;; sql_longitude: ${store_longitude} ;; }

場所をプロットしたり距離を計算したりしない場合は、より単純なタイプ(type: numberなど)を使用できます。テーブル内の場所を表示すると、データベース内の値が表示され、さらにGoogleマップのその場所へのリンクが自動的に生成されます。

locationでサポートされているデータベースダイアレクト

LookerがあなたのLookerプロジェクトのtype: locationをサポートできるようにするには、あなたのデータベースダイアレクトもそれをサポートしていなければなりません。次の表は、Looker 21.12でどのダイアレクトがtype: locationをサポートしているかを示しています。

number

type: numberは、数値または整数とともに使用されます。

type: numberディメンションのsqlパラメーターには、結果が数値または整数になる有効なSQL式を指定できます。

type: numberフィールドは、value_formatパラメーターまたはvalue_format_nameパラメーターを使用して書式設定できます。

例えば、次のLookMLでは、revenueおよびcostフィールドに基づいてprofitというフィールドが作成され、これが金額書式($1,234.56)で表示されます。

dimension: profit { type: number sql: ${revenue} - ${cost} ;; value_format_name: usd }

ディメンションは、他のディメンションに対してのみ演算を実行でき、メジャーに対しては実行できません。さらに、type: numberディメンションは、これを使用してID番号を表示している場合であっても、ユーザーに対して提案を示すことはありません。

string

type: stringは、通常、文字や特殊文字を含むフィールドとともに使用されます。このディメンションは数値フィールドでも使用できますが、数値の処理については代わりにtype: numberを使用する方が適切です。

type: stringディメンションのsqlパラメーターには、有効なSQL式を指定できます。

例えば、次のLookMLでは、first_nameおよびlast_nameというフィールドを組み合わせてfull_nameというフィールドが作成されます。

dimension: full_name { type: string sql: CONCAT(${first_name}, ' ', ${last_name}) ;; }

この例では、stringtypeのデフォルト値であるためtype: stringを省略してもかまいません。

tier

type: tierは、数値ディメンションを数値範囲のセットに分けるために、tiersパラメーターとともに使用されます。例えば、年齢ディメンションを複数の異なる年齢範囲に階層化できます。Looker UIでの階層の表示方法は、styleパラメーターを使用して変更できます。

使用パターンは次のとおりです。

view: view_name {
  dimension: field_name {
    type: tier
    tiers: [numeric_value, numeric_value, … ]
    style:interval
    sql: ${my_field_name};;
  }
}

type: tierディメンションのsqlパラメーターには、結果が数値または整数になる有効なSQL式を指定できます。

上記の年齢の例は次のようになります。

dimension: age_tier { type: tier tiers: [0, 10, 20, 30, 40, 50, 60, 70, 80] style: classic # the default value, could be excluded sql: ${age} ;; }

これをLooker UIに表示する方法については、次のstyleセクションで説明します。

type: tierディメンションをカスタムフィルタで使用することはできません。

style

styleパラメーターを使用して、Looker UIでの階層の表示方法を変更できます。下の例には示されていませんが、データに負の数値が含まれている場合は、負の無限大から0(0を含まない)までのすべての数値が先頭階層に含まれることになります。指定可能な値は次の4つです。

classic

デフォルト値のstyle: classicを使用すると、次のように表示されます。

interval

style: intervalstyle: classicと似ていますが、先頭にTXXラベルがありません。次のように表示されます。

integer

style: integerは、離散整数値(年齢など)とともに使用する必要があります。整数以外を使用して階層を定義しようとすると、エラーを受け取ります。このスタイルを使用すると、次のように表示されます。

relational

style: relationalは、連続する数値(ドルなど)とともに使用するのに最適です。次のように表示されます。

階層のスタイルは、value_formatでも設定できます。次に例を示します。

dimension: amount_tier { type: tier tiers: [0, 10, 20, 30, 40, 50, 60, 70, 80] style: integer sql: ${amount} ;; value_format: "$#,##0" }

この例では、階層ラベルは$10 to $19$20 to $29(これ以降も同様)のように表示されます。

考慮事項

tierディメンションフィルと組み合わせて使用すると、予期しない階層バケットが発生することがあります。

例えば、type: tierディメンションの年齢階層は、ディメンションフィルが有効になっている場合に0未満および0~9の階層バケットを表示しますが、データにはこれらのバケットの年齢値が含まれません。

年齢階層のディメンションフィルが無効になっている場合、バケットにはデータで使用可能な年齢の値がより正確に反映されます。

ディメンションフィルを有効または無効にするには、Exploreでディメンション名にカーソルを合わせ、フィールドレベルの歯車アイコンをクリックし、[Remove Filled in Tier Values]を選択して無効にするか、[Remove Filled in Tier Values]を選択して有効にします。

time

type: timeは、時間ベースのディメンションのセットを作成するために、dimension_groupおよびtimeframesパラメーターとともに使用されます。例えば、単一のタイムスタンプ列に基づいて日付、週、月のディメンションを簡単に作成できます。

type: timedimension_groupでのみ機能し、通常のdimensionでは機能しません。ただし、後述のセクションで説明するように、個別の時間ベースのディメンションを指定できます。

ディメンショングループについては、dimension_groupパラメーターのページを参照してください。このページには、timeframesconvert_tzdatatypeの各パラメーターに関する情報、および時刻に基づくデータを使用する際の共通の課題と注意事項も含まれます。

unquoted

type: unquotedは、parameterフィールドでのみ使用されます。unquotedタイプは、parameterの値を引用せずに{% parameter %} Liquid変数に挿入するという点を除いて、type: stringと似ています。これは、列名やテーブル名など、正しく機能させるためには引用符で囲むことができない値をSQLに挿入する場合に役立ちます。

引用符で囲まれていない値をSQLに直接挿入すると、不要なSQLアクションが発生する可能性があります。これに対処する目的で、type: unquotedのパラメーター値はA〜Zおよび0〜9の文字に限定されています(スペースやその他の特殊文字は使用できません)。

例えば、次のLookMLでは、引用符で囲まれていない値を生成するtable_nameというparameterが作成されます。

parameter: table_name { type: unquoted }

yesno

type: yesnoでは、何かが真であるか偽であるかを示すフィールドが作成されます。値はExplore UIでは[はい]および[いいえ]として表示されます。

type: yesnoディメンションのsqlパラメーターには、TRUEまたはFALSEとして評価される有効なSQL式を指定します。条件がTRUEとして評価される場合は、ユーザーに対して[はい]が表示され、そうでない場合は[いいえ]が表示されます。

type: yesnoディメンションのSQL式には集計を含めることができません。つまり、SQL集計、またはLookMLメジャーの参照を含めることはできません。SQL集計やLookMLメジャーの参照を含むyesnoフィールドを作成する場合は、ディメンションではなく、メジャーtype: yesnoで使用します。

例えば、次のLookMLでは、statusフィールドに基づいて注文の支払いが終了しているかどうかを示すフィールドが作成されます。

dimension: is_order_paid { type: yesno sql: ${status} = 'paid' ;; }

type: yesnoフィールドを別のフィールドで参照する場合は、type: yesnoフィールドをBooleanとして(つまり、真または偽の値がすでに含まれているかのように)扱う必要があります。次に例を示します。

dimension: is_big_order { type: yesno sql: ${order_size} = 'big' ;; } # This is correct measure: total_boxes_needed { type: number sql: SUM(CASE WHEN ${is_big_order} THEN 2 ELSE 1 END) ;; } # This is NOT correct measure: total_boxes_needed { type: number sql: SUM(CASE WHEN ${is_big_order} = 'Yes' THEN 2 ELSE 1 END) ;; }

type: yesnoを時間ベースのデータとともに使用した場合、ディメンションは日時の値があればyesを返し、そうでなければnoを返します。

zipcode

type: zipcodeは、静的マップ(ポイント)ビジュアリゼーションにプロットする郵便番号ディメンションとともに使用されます(静的マップ(領域)には州または国フィールドを使用します)。type: zipcodeのディメンションには、us_zipcode_tabulation_areasmap_layer_nameが自動的に指定されます。郵便番号をプロットしない場合は、より単純なタイプ(type: numberなど)を使用できます。

type: zipcodeディメンションのsqlパラメーターには、結果が5桁の米国郵便番号になる有効なSQL式を指定できます。

郵便番号ディメンションでフィルタリングできるように、一部のデータベースダイアレクトでは、このディメンションで参照されるデータベースフィールドが、整数タイプフィールドではなくvarchar(ストリング)タイプフィールドであることが必要です。

次に例を示します。

dimension: zip { type: zipcode sql: ${TABLE}.zipcode ;; }

個別の時刻タイプおよび日付タイプ

通常、日付は、type: timeを使用するdimension_groupとして処理されます。

ただし、すべてを単一のdimension_groupで作成する代わりに、含めたい個別のタイムフレームごとに1つのdimensionまたはfilterフィールドを作成することが可能です。一般的に、この方法は、データベースに計算済みの時間列が存在するか、Lookerのタイムフレームの命名規則を変更する必要がある場合(created_dateの代わりにcreated_date_of_purchaseという名前のフィールドを使用する場合など)を除いて使用を避けます。

このような状況のために、個別の時刻ベースおよび日付ベースのタイプが各種用意されています(後述のリストを参照)。

例として、次のdimension_group定義について考えます。

dimension_group: created { type: time timeframes: [week, month, year] sql: ${TABLE}.created_at ;; }

次の記述は上記と論理的に等価です。

dimension: created_week { type: date_week sql: ${TABLE}.created_at ;; } dimension: created_month { type: date_month sql: ${TABLE}.created_at ;; } dimension: created_year { type: date_year sql: ${TABLE}.created_at ;; }

使用可能な時間ベースのタイプ

個別のディメンションのtypeパラメーターでは、次のタイプを使用して時刻ベースまたは日付ベースのフィールドを作成できます。これらのタイプを、dimension_groupドキュメンテーションページで説明されているtimeframeパラメーターでは使用しないでください

すべての個別の時刻タイプおよび日付タイプで、データベースからのインプットとしてタイムスタンプが必要になります。

特別なタイプ

タイプ 説明 出力例
date_raw データベース内の生の値(キャストもタイムゾーンの変換も行っていないもの)は、Exploreページに表示されません(通常、結合または時間比較以外では不要です)。 2014-09-03 17:15:00 +0000

時刻タイプ

タイプ 説明 出力例
date_time 基礎となるフィールドの日時(SQLダイアレクトに応じて、値がデータベース内のデータと同じ精度で示される場合と秒までしか示されない場合があります) 2014-09-03 17:15:00
date_time_of_day 時刻 17:15
date_hour 直近の時間まで切り捨てた日時 2014-09-03 17
date_hour_of_day 基礎となるフィールドの時間を表す整数 17
date_hourX 各日を指定の時間数の間隔で分割します。詳細については、後述の説明を参照してください。 後述の説明を参照
date_minute 直近の分まで切り捨てた日時 2014-09-03 17:15
date_minuteX 各時間を指定の分数の間隔で分割します。詳細については、後述の説明を参照してください。 後述の説明を参照
date_second 直近の秒まで切り捨てた日時 2014-09-03 17:15:00
date_millisecond 直近のミリ秒まで切り捨てた日時(ダイアレクトサポートに関する情報は、ダイアレクトにおけるミリ秒およびマイクロ秒のサポートセクションをご覧ください) 2014-09-03 17:15:00.000
date_millisecondX 各秒を指定のミリ間隔で分割(ダイアレクトサポートに関する情報は、ダイアレクトにおけるミリ秒およびマイクロ秒のサポートセクションをご覧ください) 2014-09-01 01:00:00.250
date_microsecond 直近のマイクロ秒まで切り捨てた日時(ダイアレクトサポートに関する情報は、ダイアレクトにおけるミリ秒およびマイクロ秒のサポートセクションをご覧ください) 2014-09-03 17:15:00.000000

日付タイプ

タイプ 説明 出力例
date 基礎となるフィールドの日付 2017-09-03
date_date 削除事項4.6 dateに置き換わりました。

週タイプ

タイプ 説明 出力例
date_week 基礎となる日時の、月曜日から始まる週の日付 2017-09-01
date_day_of_week 曜日のみ Wednesday
date_day_of_week_index 曜日インデックス(0 = 月曜日、6 = 日曜日) 2

date_weekdate_day_of_weekdate_day_of_week_indexの各タイプはweek_start_dayの値(デフォルト値は月曜日)によって変わることに留意してください。

月タイプ

タイプ 説明 出力例
date_month 基礎となる日時の年と月 2017-09
date_month_num 基礎となる日時の月を表す整数 9
date_month_name 月の名前 September
date_day_of_month 月の日 3
date_fiscal_month_num 基礎となる日時の月を表す整数 9

date_fiscal_month_numタイプを使用するには、モデルでfiscal_month_offsetパラメーターが設定されている必要があります。

四半期タイプ

タイプ 説明 出力例
date_quarter 基礎となる日時の年と四半期 2017-Q3
date_quarter_of_year 先頭に「Q」が付いた、年の四半期 Q3
date_fiscal_quarter 基礎となる日時の会計年度と四半期 2017-Q3
date_fiscal_quarter_of_year 先頭に「Q」が付いた、年の会計四半期 Q3

date_fiscal_quarterおよびdate_fiscal_quarter_of_yearタイプを使用するには、モデルでfiscal_month_offsetパラメーターが設定されている必要があります。

年タイプ

タイプ 説明 出力例
date_year 基礎となる日時の年を表す整数 2017
date_day_of_year 通日 143
date_week_of_year 年の週番号 17
date_fiscal_year 基礎となる日時の会計年度を表す整数 2017

date_fiscal_yearタイプを使用するには、モデルでfiscal_month_offsetパラメーターが設定されている必要があります。

date_hourXの使用

date_hourXXは2、3、4、6、8、12のいずれかに置き換えられます。

これにより、各日が指定の時間数の間隔で分割されます。例えば、date_hour6では、各日が次のように6時間のセグメントに分割されます。

例を挙げると、time2014-09-01 08:03:17の行は、date_hour6では2014-09-01 06:00:00になります。

date_minuteXの使用

date_minuteXXは2、3、5、10、15、30のいずれかに置き換えられます。

これにより、各時間が指定の分数の間隔で分割されます。例えば、date_minute15では、各時間が次のように15分のセグメントに分割されます。

例を挙げると、time2014-09-01 01:17:35の行は、date_minute15では2014-09-01 01:15:00になります。

タイムゾーンとconvert_tz

一般的に、時間の計算(差、期間など)を正しく行うには、対象となるすべての時間値を同じタイムゾーンに変換する必要があります。したがって、LookMLを記述する際には、タイムゾーンに留意することが重要です。

Lookerには、時間ベースのデータを異なるタイムゾーン間で変換するための各種タイムゾーン設定が用意されています。デフォルトでは、タイムゾーンは自動的に変換されます。特定のディメンションまたはディメンショングループでタイムゾーンの自動変換をしたくない場合は、convert_tzパラメーターのページで説明されているconvert_tzパラメーターを使用します。

ダイアレクトにおけるミリ秒およびマイクロ秒のサポート

Lookerはマイクロ秒単位の精度に対応していますが、データベースによっては秒単位の精度しかサポートしていないものもあります。このようなデータベースに、対応する時間タイプよりも精度の高い時間タイプが入力された場合、時間は秒単位に切り上げとなります。

Looker 21.12では、次のダイアレクトがミリ秒をサポートしています。

Looker 21.12では、次のダイアレクトがマイクロ秒をサポートしています。

個別の期間タイプ

通常、期間は、type: durationを使用するdimension_groupとして処理されます。

ただし、すべてを単一のdimension_groupで作成する代わりに、含めたい個別期間ごとに1つのdimensionを作成することが可能です。一般的に、この方法は、Lookerのタイムフレームの命名規則を変更する必要がある場合([Duration to Delivery]の代わりに[Number of Days to Delivery]という名前のフィールドを使用する場合など)を除いて使用を避けます。

このような状況のために、個別の期間タイプが各種用意されています(後述のリストを参照)。

ディメンションに期間タイプを使用する場合は、sql_startおよびsql_endパラメーターを使用して、時間差を計算する対象となる開始時刻と終了時刻を指定する必要もあります。

sql_startおよびsql_endパラメーターには、タイムスタンプ、日時、日付、エポック、またはyyyymmdd形式のデータを含む有効なSQL式を指定できます。sql_startおよびsql_endフィールドには、次のいずれかを使用できます。

例として、次のdimension_group定義について考えます。

dimension_group: to_delivery { type: duration intervals: [day, hour] sql_start: ${created_raw} ;; sql_end: ${delivered_raw};; }

次のdimensionパラメーターは上記と論理的に等価です。

dimension: number_of_days_to_delivery { type: duration_day sql_start: ${created_raw} ;; sql_end: ${delivered_raw};; } dimension: number_of_hours_to_delivery { type: duration_hour sql_start: ${created_raw} ;; sql_end: ${delivered_raw};; }

Explore UIでは、[Number of Days to Delivery]および[Number of Hours to Delivery]というディメンションが作成されます。

使用可能な期間タイプ

個別のディメンションのtypeパラメーターでは、次のタイプを使用して期間ベースのフィールドを作成できます。これらのタイプを、dimension_groupドキュメンテーションページで説明されているintervalsパラメーターでは使用しないでください

すべての個別の期間タイプで、データベースからのインプットとしてタイムスタンプが必要になります。

タイプ 説明 出力例
duration_day 時間差を日単位で計算します。 9 days
duration_hour 時間差を時間単位で計算します。 171 hours
duration_minute 時間差を分単位で計算します。 10,305 minutes
duration_month 時間差を月単位で計算します。 3 months
duration_quarter 時間差を四半期単位で計算します。 2 quarters
duration_second 時間差を秒単位で計算します。 606,770 seconds
duration_week 時間差を週単位で計算します。 6 weeks
duration_year 時間差を年単位で計算します。 2 years

Top