レッスン 3-2 - 顧客ディメンションの変更
適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
キューブのディメンションの使いやすさと機能性を向上させる方法は数多くあります。 このトピックの実習では、Customer ディメンションを変更します。
属性名の変更
属性名は、ディメンション デザイナーの [ディメンション構造] タブで変更できます。
属性名を変更するには
SQL Server Data Toolsの Customer ディメンションのディメンション Designerに切り替えます。 これを行うには、ソリューション エクスプローラーの [ディメンション] ノードで [Customer] ディメンションをダブルクリックします。
[属性] ペインで [English Country Region Name]を右クリックし、 [名前の変更]をクリックします。 この属性の名前を「 Country-Region」に変更します。
同様に、次の属性の名前も変更します。
English Education 属性 - Education への変更
英語の職業属性 - 職業に変更
State Province Name 属性 - State-Province に変更
[ファイル] メニューの [すべてを保存] をクリックします。
階層の作成
新しい階層は、属性を [属性] ペインから [階層] ペインにドラッグすることで作成できます。
階層を作成するには
[属性] ペインの [Country-Region] 属性を [階層] ペインにドラッグします。
State-Province 属性を [属性] ペインから [階層] ペインの <[Country-Region] レベルの下にある新しいレベル> のセルにドラッグします。
[属性] ペインから [City] 属性を <[階層] ペインの [State-Province] レベルの下にある新しいレベル> のセルにドラッグします。
[ディメンション構造] タブの [階層] ペインで、 [Hierarchy] 階層のタイトル バーを右クリックし、 [名前の変更]を選択して「 Customer Geography」と入力します。
この階層の名前が Customer Geographyになりました。
[ファイル] メニューの [すべてを保存] をクリックします。
名前付き計算の追加
名前付き計算 (計算列として表される SQL 式) をデータ ソース ビューに追加できます。 この式は、テーブルの列として表示され、動作します。 名前付き計算により、基になるデータ ソースのテーブルを変更せずに、データ ソース ビューの既存のテーブルのリレーショナル スキーマを拡張できます。 詳細については、「データ ソース ビューでの名前付き計算の定義 (Analysis Services)」を参照してください。
名前付き計算を追加するには
Adventure Works DW 2019 データ ソース ビューを開くには、ソリューション エクスプローラーの [データ ソース ビュー] フォルダーでダブルクリックします。
左側の [テーブル] ペインで Customerを右クリックし、 [新しい名前付き計算]をクリックします。
[名前付き計算の作成] ダイアログ ボックスの [列名] ボックスに「 FullName 」と入力します。次に、 [式] ボックスに次の CASE ステートメントを入力するか、またはコピーして貼り付けます。
CASE WHEN MiddleName IS NULL THEN FirstName + ' ' + LastName ELSE FirstName + ' ' + MiddleName + ' ' + LastName END
この CASE ステートメントは、 FirstName列、 MiddleName列、および LastName 列を連結して 1 つの列に表示します。この列に表示される名前が Customer 属性の表示名となります。
[OK]をクリックします。次に、 [テーブル] ペインで Customer を展開します。
FullName 名前付き計算が Customer テーブルの列の一覧に表示されます。そのアイコンは、FullName が名前付き計算であることを示しています。
[ファイル] メニューの [すべてを保存] をクリックします。
[テーブル] ペインで [Customer]を右クリックし、 [データの探索]をクリックします。
[Customer テーブルの探索] ビューで、最後の列を確認します。
データ ソース ビューに [FullName] 列が表示されています。元のデータ ソースは変更されずに、データ ソースから取得された複数の列のデータが適切に連結されています。
[Customer テーブルの探索] タブを閉じます。
メンバー名に対応する名前付き計算の使用
データ ソース ビューで名前付き計算を作成したら、その名前付き計算を属性のプロパティとして使用できます。
メンバー名に対応する名前付き計算を使用するには
Customer ディメンションのディメンション デザイナーに切り替えます。
[ディメンション構造] タブの [属性] ペインで、 [Customer Key] 属性をクリックします。
[プロパティ] ウィンドウを開いて、タイトル バーにある [自動的に隠す] ボタンをクリックします。これにより、[プロパティ] ウィンドウが開いたままになります。
[Name] プロパティ フィールドに「 Full Name」と入力します。
下部にある NameColumn プロパティ フィールドをクリックし、参照ボタン (...) をクリックして [ 名前列 ] ダイアログ ボックスを開きます。
[基になる列] ボックスの一覧の下部にある [FullName] を選択し、 [OK]をクリックします。
[ディメンション構造] タブで、[属性] ペインの [完全な名前] 属性を [階層] ウィンドウ<の [市区町村] レベルの下にある新しいレベル> のセルにドラッグします。
[ファイル] メニューの [すべてを保存] をクリックします。
表示フォルダーの定義
表示フォルダーを使用してユーザー階層と属性階層をフォルダー構造内にグループ化することで、使いやすさを向上させることができます。
表示フォルダーを定義するには
Customer ディメンションの [ディメンション構造] タブを開きます。
[属性] ペインで、Ctrl キーを押しながら次の各属性をクリックして選択します。
City (市)
Country-Region
Postal Code
State-Province
[プロパティ] ウィンドウで、上部の [AttributeHierarchyDisplayFolder] プロパティ フィールド (ポイントしないと名前全体が表示されない場合があります) をクリックし、「 Location」と入力します。
[階層] ペインで、 [Customer Geography]をクリックします。次に、右側の [プロパティ] ウィンドウで、 DisplayFolder プロパティの値として [Location] をクリックします。
[属性] ペインで、Ctrl キーを押しながら次の各属性をクリックして選択します。
Commute Distance
Education
Gender
House Owner Flag
結婚状態
Number Cars Owned
自宅で子供を数え
Occupation
Total Children
Yearly Income
[プロパティ] ウィンドウで、上部の [AttributeHierarchyDisplayFolder] プロパティ フィールドをクリックして「 Demographic」と入力します。
[属性] ペインで、Ctrl キーを押しながら次の各属性をクリックして選択します。
メール アドレス
電話
[プロパティ] ウィンドウで、 [AttributeHierarchyDisplayFolder] プロパティ フィールドをクリックして「 Contacts」と入力します。
[ファイル] メニューの [すべてを保存] をクリックします。
複合 KeyColumns の定義
KeyColumns プロパティは、属性のキーを表す 1 つ以上の列を示します。 このレッスンでは、 City 属性と State-Province 属性の複合キーを作成します。 複合キーは、属性を一意に識別する必要がある場合に役立ちます。 たとえば、このチュートリアルで後ほど属性リレーションシップを定義する際に、 City 属性は State-Province 属性を一意に識別する必要があります。 ただし、異なる州に同じ名前の都市が存在する可能性もあります。 そのため、 City 属性に対しては StateProvinceName 列と City 列で構成される複合キーを作成します。 詳細については、「 属性の KeyColumn プロパティの変更」を参照してください。
City 属性の複合 KeyColumns を定義するには
Customer ディメンションの [ディメンション構造] タブを開きます。
[属性] ペインで、 [City] 属性をクリックします。
[プロパティ] ウィンドウで、下部付近の [KeyColumns] フィールドをクリックし、参照ボタン ([...]) をクリックします。
[キー列] ダイアログ ボックスの [使用できる列] ボックスの一覧で [StateProvinceName] 列を選択し、[]> をクリックします。
[City] 列と [StateProvinceName] 列が [キー列] ボックスの一覧に表示されるようになりました。
[OK] をクリックします。
City 属性の NameColumn プロパティを設定するには、[プロパティ] ウィンドウで [NameColumn] フィールドをクリックし、参照ボタン ([...]) をクリックします。
[名前列] ダイアログ ボックスの [基になる列] ボックスの一覧で [City]を選択し、 [OK]をクリックします。
[ファイル] メニューの [すべてを保存] をクリックします。
State-Province 属性の複合 KeyColumns を定義するには
Customer ディメンションの [ディメンション構造] タブが開いていることを確認します。
[属性] ペインで、 [State-Province] 属性をクリックします。
[プロパティ] ウィンドウで [KeyColumns] フィールドをクリックし、参照ボタン ([...]) をクリックします。
[キー列] ダイアログ ボックスの [使用できる列] ボックスの一覧で [EnglishCountryRegionName] 列を選択し、[]> をクリックします。
[EnglishCountryRegionName] 列と [StateProvinceName] 列が [キー列] ボックスの一覧に表示されるようになりました。
[OK] をクリックします。
State-Province 属性の NameColumn プロパティを設定するには、[プロパティ] ウィンドウで [NameColumn] フィールドをクリックし、参照ボタン ([...]) をクリックします。
[名前列] ダイアログ ボックスの [基になる列] ボックスの一覧で [StateProvinceName]を選択し、 [OK]をクリックします。
[ファイル] メニューの [すべてを保存] をクリックします。
属性リレーションシップの定義
基になるデータで属性リレーションシップがサポートされる場合、属性間の属性リレーションシップを定義する必要があります。 属性リレーションシップを定義すると、ディメンション、パーティション、およびクエリの処理速度が上がります。 詳細については、「 属性リレーションシップの定義 」および「 属性リレーションシップ」を参照してください。
属性リレーションシップを定義するには
Customer ディメンションのディメンション Designerで、[属性リレーションシップ] タブをクリックします。待つ必要がある場合があります。
ダイアグラムで、 [City] 属性を右クリックし、 [新しい属性リレーションシップ]をクリックします。
[属性リレーションシップの作成] ダイアログ ボックスで、 [基になる属性] に [City]を指定します。 [関連属性] を [State-Province]に設定します。
[リレーションシップの種類] ボックスの一覧で、リレーションシップの種類を [固定]に設定します。
リレーションシップの種類を [固定] に設定するのは、時間が経過してもメンバー間のリレーションシップが変化しないためです。 たとえば、ある都市が別の都道府県の一部となることは通常ありません。
[OK] をクリックします。
ダイアグラムで、 [State-Province] 属性を右クリックし、 [新しい属性リレーションシップ]をクリックします。
[属性リレーションシップの作成] ダイアログ ボックスで、 [基になる属性] に [State-Province]を指定します。 [関連属性] を [Country-Region]に設定します。
[リレーションシップの種類] ボックスの一覧で、リレーションシップの種類を [固定]に設定します。
[OK] をクリックします。
[ファイル] メニューの [すべてを保存] をクリックします。
オブジェクトの配置、変更、処理、および変更内容の表示
属性と階層を変更したら、変更を表示する前に変更を配置し、関連するオブジェクトを再処理する必要があります。
変更の配置、オブジェクトの処理、および変更の表示を行うには
SQL Server Data Toolsの [ビルド] メニューの [Analysis Services チュートリアルの配置] をクリックします。
" 配置が正常に完了しました " というメッセージが表示されたら、Customer ディメンションのディメンション デザイナーの [ブラウザー] タブをクリックし、ディメンション デザイナーのツール バーの左側にある [再接続] ボタンをクリックします。
[階層] ボックスで、 [Customer Geography] が選択されていることを確認します。次に、ブラウザー ペインで、 [All]、 [Australia]、 [New South Wales]、 [Coffs Harbour]の順に展開します。
この都市の顧客がブラウザーに表示されます。
SQL Server Analysis Services Tutorial キューブのキューブ Designerに切り替えます。 これを行うには、ソリューション エクスプローラーの [キューブ] ノードで Analysis Services チュートリアルキューブをダブルクリックします。
[ブラウザー] タブをクリックし、キューブ デザイナーのツール バーにある [再接続] ボタンをクリックします。
[メジャー グループ] ペインで [Customer]を展開します。
[Customer] の下には、属性が展開されて表示される代わりに、表示フォルダーが表示されています。表示フォルダー値が割り当てられていない属性はそのまま表示されます。
[ファイル] メニューの [すべてを保存] をクリックします。
このレッスンの次の作業
参照
ディメンションの属性のプロパティの参照
ディメンションからの属性の削除
属性名を変更する
データ ソース ビューでの名前付き計算の定義 (Analysis Services)