カスタム日付ディメンションを管理する
カスタム日付ディメンションを使用すると、GoodData ワークスペースで独自の会計年度ディメンションを使用してデータをロードおよび更新できます。 たとえば、ワークスペースの会計年度が 4 月 1 日に開始する場合は、4 月のカスタム日付ディメンションを使用します。
GoodData の用語、ワークスペースとプロジェクトは同一のエンティティーを示します。 例えば、プロジェクト ID はワークスペース ID と同一です。 ワークスペース ID を検索を参照してください。
カスタム日付ディメンションについて
カスタム日付ディメンションは、日付データセットによってワークスペースデータ論理モデル(LDM)で表されます(論理データモデル内の日付を参照)。これは、urn:custom_v2:date
日付ディメンションテンプレートが基になっています。 初期設定では、このテンプレートはグレゴリオ暦で 01/01/1900 から 12/31/2050 までのデータを含みます。
ワークスペースで 1 つまたは複数の日付ディメンションが必要かどうか(たとえば、購入日と納入日を区別する場合)に応じて、カスタム日付ディメンションを持つ 1 つまたは複数の日付データセットを作成できます。 いつでもワークスペースに別のカスタム日付ディメンションを追加して、すぐに使用を開始できます。
カスタム日付ディメンションを使用時には、以下のオプションが使用できます:
- カスタム日付ディメンションをそのまま(初期設定のグレゴリオ暦で 01/01/1900 から 12/31/2050 まで)使用する。
- カスタム日付ディメンションをカスタマイズ:
- 任意の月に会計年度が始まるように(例えば会計年度の始まる 4 月)カレンダーをアップロード
- 自分のカレンダーをアップロード
必要に応じて、別の予定表をアップロードし、ワークスペース内の既存のカスタム日付ディメンションをカスタマイズできます。 メトリックまたはレポートでこの日付ディメンションを使用している場合、自動的にアップデートされます。
アップロードしたいカスタムカレンダーと現在のカレンダーは、時間間隔が一致しなければなりません。 一致しないと、不均一なカレンダーをアップロードすることにより、以前ロードされたデータやデータフィルターを誤って解釈する結果になる場合があります。
例えば、異なるカレンダーがアップロードされ、以下のメトリックは:
SELECT Amount where Quarter=Q1/2017
このメトリックになります:
SELECT Amount where Quarter=Q4/FY2016
こうした状況を回避するために、日付フィルターでフローティング間隔を使用します(例、SELECT Amount where Quarter=THIS
)。
拡張日付ディメンション
既定では、urn:custom_v2:date
日付ディメンションテンプレートには、グレゴリオ暦カレンダーのデータ 01/01/1900 から 12/31/2050 が含まれています。 カスタムカレンダーの日付ディメンションは、デフォルトの範囲を超えて、01/01/1900 から 12/31/2100 まで拡張できます。 ただし、定義範囲が広い場合はパフォーマンスが低くなることがあります。 カスタム日付ディメンションを使用する際のパフォーマンスを改善するには、データや分析ユースケースの範囲を必要最低限に収めてください。 例えば、2010 から 2030 のみ分析が必要な場合、カスタムディメンションはその日付にしておきます。
日付を最大 12/31/2100 までカバーする必要があるが、潜在的なパフォーマンスの問題を回避するには、urn_custom_v2_date_2100.csv.zipをダウンロードしてください。 この日付ディメンションテンプレートには、01/01/1950 から 12/31/2100 までの日付が含まれています。
過去の日付ディメンション
以下の日付ディメンションは使用できますが、新規導入では推奨していません:
urn:custom:date
: この日付ディメンションはurn:custom_v2:date
日付ディメンションに似ており、Analytical Designer と KPI ダッシュボードの日付フィルターで前年の同期間の週と比較するオプションをサポートしない以外はurn:custom_v2:date
のすべての機能を提供します。urn:gooddata:date
: この日付ディメンションは初期設定のグレゴリオ暦カレンダーの 01/01/1900 から 12/31/2050 までを含み、カスタム財務カレンダー用にカスタマイズできません。
過去の日付ディメンションを使用していて、urn:custom_v2:date
日付ディメンションに移行したい場合、過去の日付ディメンションから urn:custom_v2:date へ移行を参照してください。
カスタム日付ディメンションをワークスペースに追加する
ワークスペースにカスタム日付ディメンションを追加するには、ワークスペースの論理データモデル(LDM)に日付データセットを追加します。
ワークスペースにカスタム日付ディメンションを含めても、ワークスペースに既に存在する他の日付ディメンションには影響しません。
手順:
ワークスペースで、データタブに切り替えます。
最上部のモデルをクリックします。 論理データモデルが表示されます。
編集をクリックします。
左側パネルから日付をドラッグし、キャンバスエリアにドロップします。
urn:custom_v2:date
日付ディメンションをベースにした日付データセットが追加されました。 初期設定では、「日付」という名前になります。LDM を公開する前に新規作成した日付データセットを変更するには、編集をクリックして手動で日付ディメンションを編集します。 ただし、これは推奨しておらず、初期設定の日付ディメンション、
urn:custom_v2:date
の使用をお勧めします。LDM を公開後は、日付ディメンションを変更できません。
データセットの名前を入力します。
日付ごとに分析したい日付データセットと他のデータセットの間でリレーションを作成します。
- 日付データセットを選択します。
- 日付データセット右側の青色の点をクリックし、矢印をドラッグして、日付データセットと他のデータセットを接続します。 リレーションが作成されました。
LDM を公開する(実行する手順については論理データモデルを公開を参照)。 パブリッシュするときは、データを保持モードを使用して、ワークスペースにロードされたデータが削除されないようにします。
グレゴリオ暦データ(GoodData のデフォルトカレンダー)を含むurn:custom_v2:date
日付ディメンションがワークスペースに追加されました。
- デフォルトカレンダーを使用する場合は、すぐにワークスペースで使用を開始できます。 他にすることはありません。
- 異なるカレンダーをアップロードする場合、urn:custom_v2:date をカスタムカレンダーでアップデートに進みます。
MAQL DDL スクリプトを使用してカスタム日付ディメンションを含める
API を使用して、カスタム日付ディメンションをワークスペースに追加できます。
API で、 MAQL DDL スクリプトを実行する以下のリクエストを使用します:
{ "manage": { "maql": "INCLUDE TEMPLATE \"urn:custom_v2:date\"" } }
この API は、デフォルトのグレゴリオ暦データを含むurn:custom_v2:date
日付ディメンションをワークスペースに追加します。
カスタムカレンダーで urn:custom_v2:date をアップデートする
初期設定では、urn:custom_v2:date
は初期設定カレンダー(グレゴリオ暦カレンダーの 01/01/1900 から 12/31/2050 まで)を含みます。 初期設定のカレンダーを使用しない場合、カスタムカレンダーでカスタム日付ディメンションをアップデートします。
カレンダー必要条件を使って CSV ファイルを準備
財務年度のカレンダー を任意の月で始まるようにするか、または独自のカレンダーを作成して使用するかを選択できます。
以前アップロードした他のカレンダーから初期設定カレンダー(グレゴリオ暦カレンダーの 01/01/1900 から 12/31/2050 まで)に戻ることも可能です。
ディメンション全体のみアップロードできます。 部分的にアップロードすることはできません。
任意の月を財務年度開始に指定してカレンダーを使用
財務年度がどの月から開始するかを元に、日付ディメンションの CSV をダウンロードします:
独自のカレンダーを使用
カスタム財務カレンダー必要条件を含む CSV ファイルを作成します。 初期設定カレンダー(urn_custom_v2_date.csv.zip)で CSV ファイルをダウンロードし、ニーズに合うようにアップデートします。
あなたの CSV ファイルは以下の必要条件を満たすようにしてください:
- ファイルは事前定義の順番で並んでいる列(下の表にあるように正確に)と値の例を含みます。
- 最大 50 文字までの列。
- 列ヘッダーは、
displayForm
(属性ラベル)の属性識別子を表します。 - 行は
date.day.yyyy_mm_dd
で並べ替えられる。 - 以下の制約はいくらかの列で満たされます(下の表を参照):
- 増加するシーケンス(日付列): 2つの真に後続するレコードの差は、正確に1になる必要があります。
- 非減少の繰り返しシーケンス(月内の日、曜日など): 以下の二つの厳正な記録で、
a
およびb
は以下の条件の一つを満たしていなければいけません:b=a
b=a+1
b
はシーケンスで最小値と等しい(例えば、シーケンス(5,5,6,6,7,7,1,2,3,3,3,3,1,2,3,4,5)
は有効)。
- 非減少の繰り返しシーケンス(月内の日、曜日など): 以下の二つの厳正な記録で、
a
およびb
は以下の条件の一つを満たしていなければいけません:b=a
b=a+1
財務ディメンションをアップロードすると、空の値を示す初期設定の記録を追加します。 これらの値を変更することはできません。
ラベルの識別子 | 値のパターン | 例 | 制約 |
---|---|---|---|
date.day.yyyy_mm_dd | yyyy-MM-dd | 1900-12-31 | 増加するシーケンス |
date.day.uk.dd_mm_yyyy | 31/12/1900 | ||
date.day.us.mm_dd_yyyy | 12/31/1900 | ||
date.day.eu.dd_mm_yyyy | 01-01-1900 | ||
date.day.us.long | Mon, Jan 1, 1900 | ||
date.day.us.m_d_yy | 1/1/00 | ||
day.in.euweek.short | 月 | ||
day.in.euweek.number | [a-zA-Z_ ]*[0-9] | 1 | 繰り返しシーケンス |
day.in.euweek.long | 月曜日 | ||
day.in.year.default | [a-zA-Z_ ]*[0-9] | D1 | 繰り返しシーケンス |
quarter.in.year.default | [a-zA-Z_ ]*[0-9] | Q1 | 繰り返しシーケンス |
month.in.quarter.number | [a-zA-Z_ ]*[0-9] | M1 | 繰り返しシーケンス |
month.in.year.short | 1月 | ||
month.in.year.m_q | M1/Q1 | ||
month.in.year.number | [a-zA-Z_ ]*[0-9] | M1 | 繰り返しシーケンス |
month.in.year.long | 1月 | ||
week.wk_qtr_year | W1/Q1/1900 | ||
week.from_to | Dec 31, 1899 - Jan 6, 1900 | ||
week.starting | Wk. of Sun 12/31/1899 | ||
week.wk_year_cont | W53/1899 - W1/1900 | ||
week.wk_year | W1/1900 | 非減少のシーケンス | |
week.wk_qtr_year_cont | W14/Q4/1899 - W1/Q1/1900 | ||
euweek.wk_qtr_year | W1/Q1/1900 | ||
euweek.from_to | Jan 1, 1900 - Jan 7, 1900 | ||
euweek.starting | Wk. of Mon 01/01/1900 | ||
euweek.wk_year_cont | W1/1900 | ||
euweek.wk_year | W1/1900 | 非減少のシーケンス | |
euweek.wk_qtr_year_cont | W1/Q1/1900 | ||
week.in.year.number_us | [a-zA-Z_ ]*[0-9] | W1 | 繰り返しシーケンス |
day.in.week.short | 月 | ||
day.in.week.number | [a-zA-Z_ ]*[0-9] | 2 | 繰り返しシーケンス |
day.in.week.long | 月曜日 | ||
week.in.quarter.number_us | [a-zA-Z_ ]*[0-9] | W1 | 繰り返しシーケンス |
euweek.in.quarter.number_eu | [a-zA-Z_ ]*[0-9] | W1 | 繰り返しシーケンス |
day.in.quarter.default | [a-zA-Z_ ]*[0-9] | D1 | 繰り返しシーケンス |
month.short | Jan 1900 | ||
month.number | 1/1900 | 非減少のシーケンス | |
month.long | January 1900 | ||
day.in.month.default | [a-zA-Z_ ]*[0-9] | D1 | 繰り返しシーケンス |
year.default | 1900 | 非減少のシーケンス | |
euweek.in.year.number_eu | [a-zA-Z_ ]*[0-9] | W1 | 繰り返しシーケンス |
quarter.short_us | Q1/1900 | 非減少のシーケンス | |
year.for.week.number | 1900 | 非減少のシーケンス | |
year.for.euweek.number | 1900 | 非減少のシーケンス | |
quarter.for.week.number | Q1/1900 | 非減少のシーケンス | |
quarter.for.euweek.number | Q1/1900 | 非減少のシーケンス |
初期設定のカレンダーを使用
カレンダーを初期設定に戻したい場合、 urn_custom_v2_date.csv.zipをダウンロードします。 この日付ディメンションは、urn:custom_v2:date
日付ディメンション(グレゴリオ暦 01/01/1900 から 12/31/2050)の初期設定カレンダーに一致します。
CSV ファイルをユーザー指定のストレージに移動
手順:
- CSV ファイルをジップします。 アーカイブファイルには、zip 拡張子を持たない zip ファイルと同じ名前を持つファイルを少なくとも一つ含まなければいけません。 例えば、アーカイブファイル
urn_fcnov1_v2_date.csv.zip
はurn_fcnov1_v2_date.csv
を含みます。 - アーカイブファイルをデータストレージ(ユーザー固有のデータストレージを参照)に保存。
ロードタスクを実行
次の手順は、https://secure.gooddata.com/ でワークスペースにアクセスすることを前提としています。 ホワイトラベルカスタマーの場合は、secure.gooddata.com
を手順ステップでホワイトラベルドメインに変更します。
GoodData の用語、ワークスペースとプロジェクトは同一のエンティティーを示します。 例えば、プロジェクト ID はワークスペース ID と同一です。 ワークスペース ID を検索を参照してください。
手順:
API リソース:
https://secure.gooddata.com/gdc/md/{workspace_id}/datedimension/pull
メソッド:
ポスト
リクエスト本体:
{ "dateIntegration": { "file": "/path/to/archive/file.zip", "datasets": [ "{date_dataset_identifier}" ] } }
/uploads
セクションをファイルパスに含めないでください。 例えば、ファイル名がurn_fcapr1_v2_date.csv.zip
で、/uploads/
に保存されている場合、/urn_fcapr1_v2_date.csv.zip
というパスを入力します。{date_dataset_identifier}
は、CSV ファイルをアップロードしたい日付データセットを特定します。 例えば、date1.dataset.dt
。
ヘッダーをリクエスト:
Content-Type:application/json Accept:application/json
タスクが実行され、タスクステータスを引き出すリンクが返されます。
OK タスクステータスが返されるまでステータスを引き続けます。 カスタム日付ディメンションは選択されたカレンダーでアップデートされます。
アップロードされた CSV ファイルは保管されず、GoodData プラットフォームで復元できません。
API を使用する代わりに、グレイページを使ってカスタム日付ディメンションをアップデートできます:
https://secure.gooddata.com/gdc/md/{workspace_id}/datedimension/pull
ライフサイクル管理(LCM)とカスタム日付ディメンション
ライフサイクル管理(ライフサイクル管理によるワークスペースの管理を参照)はカスタム日付ディメンションをサポートします。
- マスターワークプレースにカスタム日付ディメンションが含まれる場合、このマスターワークプレースから作成されたクライアントワークスペースはこのカスタムディメンションを継承します。ただし、マスターワークペースの日付ディメンションにあるカレンダーに関わらず、初期設定のグレゴリオ暦カレンダーが含まれます。 必要に応じて、クライアントのワークスペースにあるカスタム日付ディメンションに異なるカレンダーをアップロードできます。 このカレンダーは同期時に上書きされません。
- 同セグメント内の異なるクライアントワークスペースにあるカスタム日付ディメンションで、異なるカレンダーを利用できます。 マスタースペースとクライアントワークスペースにあるカスタム日付ディメンションのカレンダーを統一化する必要がある場合、各ワークプレースのカスタムディメンションに個別にターゲットカレンダーをアップロードしてください。
過去の日付ディメンションから urn:custom_v2:date へ移行
urn:custom_v2:date に移行する理由
Analytical Designer と KPI ダッシュボードを使用している場合、 urn:custom_v2:date
日付ディメンションに切り替えることをお勧めします。 urn:custom_v2:date
日付ディメンションを使用すると、日付フィルターで前年の同期間のデータと比較するオプションを使用することができます(例えば、2018 年第 25 週と 2017 年の第 25 週のデータを比較)。 データを前年の同期間と比較した場合、週は別の日付になる場合があります。 一週間が二年、または二つの四半期にまたがる場合(前年/前四半期に開始、今年/今四半期に終了)、この週がどの年/四半期に所属するか定義する基準を確定する必要があります。 urn:custom_v2:date
日付ディメンションはこれらの例で使用できます。
Analytical Designer と KPI ダッシュボードの日付フィルターの詳細については、Analytical Designer のフィルター および ダッシュボード内の日付フィルターを参照してください。
urn:custom_v2:date
日付ディメンションに移行することにより、GoodData プラットフォームの日付フィルターで前年の同期間のデータを比較するレポートを適切に計算できるようになります。 週によるフィルタリングを完全に使用するには、他の手順も完了する必要があります。 詳細については、日付フィルターで週を有効化を参照してください。
urn:custom_v2:date に移行した場合のデータへの影響
urn:custom_v2:date にあるその他の列
過去の日付ディメンションと比較すると、urn:custom_v2:date
には追加の列が 4 つ含まれます:
year.for.week.number
year.for.euweek.number
quarter.for.week.number
quarter.for.euweek.number
これらの列は、週日付フィルターで前年の同期間のデータを比較するオプションを有効にします。 これらの列は Analytical Designer や KPI ダッシュボードの UI では非表示で、Extensible Analytics Engine(XAE)でのみレポート計算時に使用されます。
一週間が二年、または二つの四半期にまたがる場合(前年/前四半期に開始、今年/今四半期に終了)、この週がどの年/四半期に所属するかは以下のように確定します:
year.for.week.number
およびquarter.for.week.number
: 週は、土曜日が含まれる年に所属する。year.for.euweek.number
およびquarter.for.euweek.number
: 週は、木曜日が含まれる年/四半期に所属する。
urn:custom_v2:date
に移行後、以下が予想されます:
euweek.in.year.number_eu
は ISO 8601(つまり、週は木曜日が含まれる年に所属するということ);一年には 52 週(「週ベース年」で閏年では 53 週)あるという考えに準じて計算されます。week.in.year.number_us
は日曜日に始まり、週の最後の日が含まれる年に所属します。euweek.in.quarter.number_eu
はeuweek.in.year.number_eu
と一致します:- 一年の最初の週は、四半期の最初の週です。
- 各四半期には 13 週(「週ベース年」で閏年では最終四半期は 14 週)。
week.in.quarter.number_us
はweek.in.year.number_us
と一致し、ヨーロッパの週と同じルールに従いながら、US データを使用します。
異なる属性ラベルの識別子
urn:gooddata:date
日付ディメンションから切り替えた場合にのみ適用されます。
urn:gooddata:date
日付ディメンションと比較すると、urn:custom_v2:date
は異なる属性ラベルの識別子(displayForm
)を含みます。
- API を使用して GoodData プラットフォームにデータをロードすると(REST API 経由でデータを読み込むを参照)、SLI マニフェストが新しい識別子でアップデートされます。
- CloudConnect グラフ経由で GoodData プラットフォームにデータをロードする場合、グラフ内の GD Dataset Writer コンポーネントでフィールドマッピングを確認してください。
1900 年の第一週目は削除
urn:gooddata:date
日付ディメンションから切り替えた場合にのみ適用されます。
urn:gooddata:date
日付ディメンションと比較すると、urn:custom_v2:date
日付ディメンションは 1900(1900-01-01 – 1900-01-07)の第一週を含んでいません。
異なる日付集計の計算方法
urn:gooddata:date
日付ディメンションから切り替えた場合にのみ適用されます。
urn:gooddata:date
の日付ディメンションと比較すると、 urn:custom_v2:date
の日付ディメンションでは異なる日付集計方法が使用されます。
たとえば、最新の年を返すメトリック(SELECT MAX(Year)
)は、実際の年ではなく、年に対応する属性値の ID を返します(例:121
を返し、 2020
を返さない)。
実際の年を表示する必要がある場合は、メトリックを更新します:
- 年の属性値の ID と等しい数値を減算します。 これを行うには、右側のメニューで
属性値
から対応する年を選択します。 カスタムメトリックエディターでメトリックを編集する方法については、MAQL を使ってメトリックを書き始めるを参照してください。 - 年に等しい数値を追加します。
例えば 2020 年では、更新されたメトリックは次のようになります。
過去の日付ディメンションから urn:custom_v2:date へ移行
urn:gooddata:date
または urn:custom:date
日付ディメンションからurn:custom_v2:date
日付ディメンションにワークスペースの日付データセットを移行するには、日付データセットをカスタム日付ディメンションに移行するための API を使用します。 日付データセットをすべて一度に、または少数のみ移行できます。
データセットを移行する時には、他のタスク(特にデータのロード)を同時に行うと、データの不整合の原因になる場合があります。
LCM を使用してマスターワークスペース内の日付データセットを urn:custom_v2:date
に移行する場合、次回の同期時以降にこのマスターワークスペースから作成されたクライアントワークスペースでは、このカスタムディメンションが継承されます。
urn:custom:date 用の任意の月に始まる財務年度カレンダー
urn:custom:date
日付ディメンションを使用して、カスタムカレンダーに適用する必要がある場合、財務会計年度が何月に始まるかにより CSV ファイルを選択します。