2011-05-01から1ヶ月間の記事一覧

SCD Type2にて既存行より有効開始日が古いデータが到着した場合の取り扱い

SCD Type2にて既存行より有効開始日が古い(または同じ日付の)データが到着した場合の取り扱いを考えてみました。 前提:この方式を採用 ■Design Tip #107 Using the SQL MERGE Statement for Slowly Changing Dimension Processing http://www.kimballgrou…

SCD Type2 設計の観点のメモ

SCD Type2 設計の観点のメモです。 ・変化する時間の粒度 ディメンションデータの「変化する時間の粒度」は、ファクトと一致するはず。例えば、ファクト行を特徴付ける時間列がdate型(例:伝票日付)なら、ディメンションの有効範囲もdate型で日単位のはず…

SCD Type2の効率的な実装方式

SSISかT-SQLでSCD Type2を大量に実装する必要があって、効率的な実装方式を考えたり探したりした結果のメモです。SSISの既定のSCDコンポーネントに少し不満があって、SSISのデータフローコンポーネントで組み上げるか、T-SQLのMEARGEで...効率的なのはどちら…

DATE_CORRELATION_OPTIMIZATION オプションっていうものがありましたね

過去に作成した資料を読んでいて DATE_CORRELATION_OPTIMIZATION オプションを思い出したのでまた忘れたりしないようにメモしておきます(たぶん忘れます)。 ■相関した datetime 列にアクセスするクエリの最適化 http://msdn.microsoft.com/ja-jp/library/m…

金額規模ディメンションとリードタイムメジャーの実装

まず、金額規模ディメンションの実装方式のアイデア ・ディメンション属性の離散化プロパティで実装(再評価の必要なし) ・データソースビューの名前付きクエリでCASE句などで実装(メジャーグループの処理で再評価される)、これが良さそう(性能を考慮す…

サロゲートキーのルックアップの実装

以下の方式はある種の前提におけるものですが、基本的な実装方式としてお勧めできます。 記憶から書き出していますので記述漏れがあるかもしれませんが大部分はカバーできていると思います。 ・ファクトテーブル−ディメンションテーブル間では参照整合性制約…

計算メジャーでの Empty の考慮

計算メジャーの設定で、ゼロ除算だけ避けて単純に Iif([Measures].[分母] = 0, "n/a", [Measures][分子]/[Measures].[分母]) ("n/a" のところを "" 空文字 にしたり...) としたところ、[分子]や[分母]にそもそも値が無いセルに "n/a" が表示されてしまって…

DimensionAttribute の KeyColumns のカラムに NOT NUL 制約が付いていない場合の対応

DimensionAttribute の KeyColumns として設定したカラムに NOT NUL 制約が付いていない場合、 (かつ、データ型が文字型である場合) (かつ、NullProcessing プロパティが既定値の Automatic である場合) 値として空文字とNULL値が存在する(可能性がある…