0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RDB経験者がIBM Planning Analytics(TM1)でつまずく7つのポイント

0
Last updated at Posted at 2026-10-09

IBM Planning Analytics(TM1)の案件に入ると、IPA未経験のメンバーが最初の数週間で頭を抱える、という場面をよく見ます。しかも、RDBに詳しい人ほど苦労することが多いです。

TM1/Cognos Express時代から10年以上TM1の開発に携わってきた中で、RDB経験者がつまずきやすいと感じたポイントを7つにまとめました。

IBM非公式の個人による記事です。各項目の詳しい解説は、記事末尾のリンク先(note)にまとめています。

1. テーブルではなく、キューブとディメンションで考える

TM1の用語 ざっくり言うと
キューブ 数値を入れておく箱(売上、人件費など、テーマごとに作る)
ディメンション 箱の軸(月、部門、科目など)
要素 軸の上の項目(「営業部」「2026-09」など)
階層 要素の親子関係=集計の道筋(営業1課+営業2課=営業部)

RDBでは売上は「月・部門・科目・金額」という列を持つ1行ですが、TM1では「2026-09 × 営業部 × 売上」という座標のセルに入った1つの値になります。

2. データは「追加する」のではなく「枠に書き込む」

キューブは、ディメンションの組み合わせで最初から枠(セル)が決まっています。データを入れるとは、その枠の値を書き換えることです。SQLで言えば、INSERTではなくUPDATEの発想です。

ここから、RDB経験者がハマりやすい2つの現象が生まれます。

  • 新しい部門のデータが入らない → 部門ディメンションに要素がないので、書き込む枠がない
  • 同じデータを2回流したら合計が倍になった → 加算で書き込む処理だった。重複行と違って、値が静かに増えるだけなので気づきにくい

3. キューブの分け方は、正規化の考え方を一度捨てる

TM1ではキューブ同士をその場でJOINする使い方は基本的にしないので、正規化の物差しがそのままでは使えません。代わりに考えるのは次の4つです。

  • 粒度:日次・顧客別まで持つのか、月次・部門別で十分か
  • 使い方:入力用と分析用で、同じキューブを使うか分けるか
  • パフォーマンス:ディメンションが増えるほど組み合わせが膨らむ
  • キューブ間の連携:ルールで参照するか、TIでコピーするか

「全部1つのキューブに入れたら重くなった」「細かく分けすぎて連携が複雑になった」は、どちらもよく見る失敗です。

4. データの取り出し方・更新の仕方がSQLと違う

  • 取り出す:SELECTにあたるのはビュー。表示する要素の一覧はサブセットで決め、条件で選ぶならMDXを使う
  • 更新する:画面からの入力(PAW/PAfE)、TIでの取込、ルールでの計算の3つが、同じキューブの上で共存する

MDXにもSELECT・FROM・WHEREがありますが、WHEREは「行を絞る」のではなく「行・列に置かなかった軸の座標を固定する」もので、意味が違います。

5. フィーダーは、説明する側も苦戦する

個人的に、いちばん理解が難しいのがフィーダー(FEEDERS)です。説明を受ける側はもちろん、説明する側も苦戦します。私は相手に合わせて、次のように説明を変えています。

  • 一言で:計算で出した値を、合計のときに見落とさないための目印
  • 利用者向け:明細は合っているのに合計が合わないとき、原因の候補になる設定
  • 開発者向け:SKIPCHECKで空セルを飛ばして集計するとき、ルールで値が入るセルを集計対象に含めるための指定。足りなければ合計が合わず、多すぎれば重くなる

6. データはメモリの上にある

TM1は起動時にキューブのデータをメモリに読み込み、メモリ上で計算・集計します。速い反面、次のようなことが起きます。

  • メモリ量が、扱えるデータ量の上限に直結する
  • 起動時にデータ読込とフィーダー計算が走るので、モデルが大きいほど起動が遅い
  • ディスクへの保存(SaveDataAllなど)は別のタイミング

「再起動すれば直るでしょ」と気軽に言えないのは、このためです。

7. 「サーバーに製品を入れて終わり」ではない

たとえばPlanning Analytics Local 2.0系では、TM1サーバーは従来どおりインストールし、PAWはDockerの上で動かします。v12ではKubernetesやOpenShiftの上で動かす構成になります。「どのコンポーネントがどこで動いているか」を最初に把握しておくと、「つながらない」と言われたときに見る場所を間違えません。

おわりに

RDBの経験は、TM1でも無駄になりません。データ品質への感覚や、件数・合計で裏を取る習慣は、そのまま強みになります。最初の切り替えさえ乗り越えれば、きっと面白くなってくるはずです。

各ポイントの詳しい解説(SQLとMDXの比較コード、キューブ設計の例など)と、新しくアサインされた人向けの「最初の1週間で読む順番」は、noteにまとめています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?