ITエンジニアとして経験・学習したこと

ITエンジニアとして経験したり学習したことを忘れないよう、書いていきたいと思います。少しでも皆様のお役に立てれば幸いです。

SSAS(SQL Server Analysis Services)プロジェクトにコマンドでディメンションやキューブ等を追加してみた(2)

今回も引き続き、SSAS(SQL Server Analysis Services)プロジェクトにディメンション、キューブ等を追加する手順について述べる。今回は、スクリプトファイルの作成手順について述べる。

 

前提条件

SQL Server Analysis Serverに、ディメンション、キューブを含むSSAS(SQL Server Analysis Services)プロジェクトをデプロイ済であること。Analysis Servicesに接続すると下図のようになっていること。

f:id:purin_it:20190422233333p:plain

 

やってみたこと

  1. データソースビューを作成するスクリプトファイルの作成
  2. ディメンションを作成するスクリプトファイルの作成
  3. キューブを作成するスクリプトファイルの作成
  4. SSASプロジェクトのプロセス処理を行うスクリプトファイルの作成

 

データソースビューを作成するスクリプトファイルの作成

データソースビューを作成するスクリプトファイルは、以下の手順で作成できる。

 

1) 下図のように、データソースビューを選択し右クリックし、「データソースビューのスクリプトファイル作成(Script Data Source View as)」→「作成(Create To)」を順次選択後、「ファイル(File)」メニューを選択

f:id:purin_it:make_ssas_dsource_view_1

 

2) ファイル名を指定し、「保存(Save)」ボタンを押下

f:id:purin_it:make_ssas_dsource_view_2

 

3) 下記が、作成されたスクリプトファイルの例

f:id:purin_it:make_ssas_dsource_view_3

 

また、作成されたデータソースビュー生成用のスクリプトファイル(create_TestSSASDataSourceView.xmla)の内容は、以下の通り。

<Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
        <DatabaseID>TestSSASProject</DatabaseID>
    </ParentObject>
    <ObjectDefinition>
        <DataSourceView xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
            <ID>TestSSASDataSourceView</ID>
            <Name>TestSSASDataSourceView</Name>
            <Annotations>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:ShowFriendlyNames</Name>
                    <Value>true</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:CurrentLayout</Name>
                    <Value>_ALL_TABLES_</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:SchemaRestriction</Name>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:RetrieveRelationships</Name>
                    <Value>true</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:Layouts</Name>
                    <Value>
                        <Layouts xmlns="">
                            <Diagram>
                                <Name>_ALL_TABLES_</Name>
                                <DiagramLayout>
                                    <dds>
                                        <diagram fontclsid="{0BE35203-8F91-11CE-9DE3-00AA004BB851}" mouseiconclsid="{0BE35204-8F91-11CE-9DE3-00AA004BB851}" defaultlayout="MSDDS.Rectilinear" defaultlineroute="MSDDS.Rectilinear" version="7" nextobject="2" scale="100" pagebreakanchorx="0" pagebreakanchory="0" pagebreaksizex="0" pagebreaksizey="0" scrollleft="-14982" scrolltop="-7713" gridx="150" gridy="150" marginx="5000" marginy="5000" zoom="100" x="33020" y="18150" backcolor="16777215" defaultpersistence="2" PrintPageNumbersMode="3" PrintMarginTop="0" PrintMarginBottom="635" PrintMarginLeft="0" PrintMarginRight="0" marqueeselectionmode="0" mousepointer="0" snaptogrid="0" autotypeannotation="1" showscrollbars="0" viewpagebreaks="0" donotforceconnectorsbehindshapes="1" backpictureclsid="{00000000-0000-0000-0000-000000000000}">
                                            <font>
                                                <ddsxmlobjectstreamwrapper binary="01000000900144420100065461686f6d61" />
                                            </font>
                                            <mouseicon>
                                                <ddsxmlobjectstreamwrapper binary="6c74000000000000" />
                                            </mouseicon>
                                        </diagram>
                                        <layoutmanager>
                                            <ddsxmlobj />
                                        </layoutmanager>
                                        <ddscontrol controlprogid="DdsShapes.DdsObjectManagedBridge" tooltip="sales" left="20" top="0" logicalid="1" controlid="1" masterid="0" hint1="0" hint2="0" width="3016" height="2725" noresize="0" nomove="0" nodefaultattachpoints="0" autodrag="1" usedefaultiddshape="1" selectable="1" showselectionhandles="1" allownudging="1" isannotation="0" dontautolayout="0" groupcollapsed="0" tabstop="1" visible="1" snaptogrid="0">
                                            <control>
                                                <ddsxmlobjectstreaminitwrapper binary="000e0000c80b0000a50a0000" />
                                            </control>
                                            <layoutobject>
                                                <ddsxmlobj>
                                                    <property name="LogicalObject" value="dbo_sales" vartype="8" />
                                                </ddsxmlobj>
                                            </layoutobject>
                                            <shape groupshapeid="0" groupnode="0" />
                                        </ddscontrol>
                                    </dds>
                                </DiagramLayout>
                                <ShowRelationshipNames>False</ShowRelationshipNames>
                                <UseDiagramDefaultLayout>True</UseDiagramDefaultLayout>
                                <DiagramViewPortLeft>-14982</DiagramViewPortLeft>
                                <DiagramViewPortTop>-7713</DiagramViewPortTop>
                                <DiagramBoundingLeft>0</DiagramBoundingLeft>
                                <DiagramBoundingTop>0</DiagramBoundingTop>
                                <DiagramZoom>100</DiagramZoom>
                            </Diagram>
                        </Layouts>
                    </Value>
                </Annotation>
            </Annotations>
            <DataSourceID>TestSSASDataSource</DataSourceID>
            <Schema>
                <xs:schema id="TestSSASDataSourceView" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop">
                    <xs:element name="TestSSASDataSourceView" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                        <xs:complexType>
                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element name="dbo_sales" msprop:IsLogical="True" msprop:FriendlyName="sales" msprop:DbTableName="sales" msprop:TableType="View" msprop:QueryDefinition="SELECT        sale_date, product_name, place_name, sales_amount, ROW_NUMBER() over (ORDER BY sale_date) as rn&#xD;&#xA;FROM            sales" msprop:QueryBuilder="SpecificQueryBuilder">
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:element name="sale_date" msprop:DbColumnName="sale_date" msprop:FriendlyName="sale_date" type="xs:dateTime" minOccurs="0" />
                                            <xs:element name="product_name" msprop:DbColumnName="product_name" msprop:FriendlyName="product_name" minOccurs="0">
                                                <xs:simpleType>
                                                    <xs:restriction base="xs:string">
                                                        <xs:maxLength value="50" />
                                                    </xs:restriction>
                                                </xs:simpleType>
                                            </xs:element>
                                            <xs:element name="place_name" msprop:DbColumnName="place_name" msprop:FriendlyName="place_name" minOccurs="0">
                                                <xs:simpleType>
                                                    <xs:restriction base="xs:string">
                                                        <xs:maxLength value="12" />
                                                    </xs:restriction>
                                                </xs:simpleType>
                                            </xs:element>
                                            <xs:element name="sales_amount" msprop:DbColumnName="sales_amount" msprop:FriendlyName="sales_amount" type="xs:int" minOccurs="0" />
                                            <xs:element name="rn" msprop:DbColumnName="rn" type="xs:long" minOccurs="0" />
                                        </xs:sequence>
                                    </xs:complexType>
                                </xs:element>
                            </xs:choice>
                        </xs:complexType>
                    </xs:element>
                </xs:schema>
                <TestSSASDataSourceView xmlns="" />
            </Schema>
        </DataSourceView>
    </ObjectDefinition>
</Create>


ディメンションを作成するスクリプトファイルの作成

ディメンションを作成するスクリプトファイルは、下図のように、ディメンションを選択し右クリックし、「ディメンションのスクリプトファイル作成(Script Dimension as)」→「作成(Create To)」を順次選択後、「ファイル(File)」メニューを選択

f:id:purin_it:make_ssas_dimension_1

 

その後のスクリプトファイル作成手順は、データソースビューの場合と同じ。作成されたディメンション生成用のスクリプトファイル(create_TestSSASDimension.xmla)の内容は、以下の通り。

<Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
        <DatabaseID>TestSSASProject</DatabaseID>
    </ParentObject>
    <ObjectDefinition>
        <Dimension xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
            <ID>TestSSASDimension</ID>
            <Name>TestSSASDimension</Name>
            <Annotations>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramLayout</Name>
                    <Value>
                        <dds xmlns="">
                            <diagram fontclsid="{0BE35203-8F91-11CE-9DE3-00AA004BB851}" mouseiconclsid="{0BE35204-8F91-11CE-9DE3-00AA004BB851}" defaultlayout="MSDDS.Rectilinear" defaultlineroute="MSDDS.Rectilinear" version="7" nextobject="2" scale="100" pagebreakanchorx="0" pagebreakanchory="0" pagebreaksizex="0" pagebreaksizey="0" scrollleft="-4107" scrolltop="-6840" gridx="150" gridy="150" marginx="5000" marginy="5000" zoom="100" x="11271" y="16828" backcolor="16777215" defaultpersistence="2" PrintPageNumbersMode="3" PrintMarginTop="0" PrintMarginBottom="635" PrintMarginLeft="0" PrintMarginRight="0" marqueeselectionmode="0" mousepointer="0" snaptogrid="0" autotypeannotation="1" showscrollbars="0" viewpagebreaks="0" donotforceconnectorsbehindshapes="1" backpictureclsid="{00000000-0000-0000-0000-000000000000}">
                                <font>
                                    <ddsxmlobjectstreamwrapper binary="01000000900144420100065461686f6d61" />
                                </font>
                                <mouseicon>
                                    <ddsxmlobjectstreamwrapper binary="6c74000000000000" />
                                </mouseicon>
                            </diagram>
                            <layoutmanager>
                                <ddsxmlobj />
                            </layoutmanager>
                            <ddscontrol controlprogid="DdsShapes.DdsObjectManagedBridge" tooltip="sales" left="20" top="0" logicalid="1" controlid="1" masterid="0" hint1="0" hint2="0" width="3016" height="3149" noresize="0" nomove="0" nodefaultattachpoints="0" autodrag="1" usedefaultiddshape="1" selectable="1" showselectionhandles="1" allownudging="1" isannotation="0" dontautolayout="0" groupcollapsed="0" tabstop="1" visible="1" snaptogrid="0">
                                <control>
                                    <ddsxmlobjectstreaminitwrapper binary="000e0000c80b00004d0c0000" />
                                </control>
                                <layoutobject>
                                    <ddsxmlobj>
                                        <property name="LogicalObject" value="dbo_sales" vartype="8" />
                                    </ddsxmlobj>
                                </layoutobject>
                                <shape groupshapeid="0" groupnode="0" />
                            </ddscontrol>
                        </dds>
                    </Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:ShowFriendlyNames</Name>
                    <Value>true</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:ShowRelationshipNames</Name>
                    <Value>false</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:UseDiagramDefaultLayout</Name>
                    <Value>true</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramViewPortLeft</Name>
                    <Value>-4107</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramViewPortTop</Name>
                    <Value>-6840</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramBoundingLeft</Name>
                    <Value>20</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramBoundingTop</Name>
                    <Value>0</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramZoom</Name>
                    <Value>100</Value>
                </Annotation>
            </Annotations>
            <Source xsi:type="DataSourceViewBinding">
                <DataSourceViewID>TestSSASDataSourceView</DataSourceViewID>
            </Source>
            <ErrorConfiguration>
                <KeyNotFound>ReportAndStop</KeyNotFound>
                <KeyDuplicate>ReportAndStop</KeyDuplicate>
                <NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
            </ErrorConfiguration>
            <Language>1033</Language>
            <Collation>Latin1_General_CI_AS</Collation>
            <UnknownMemberName>Unknown</UnknownMemberName>
            <Attributes>
                <Attribute>
                    <ID>Rn</ID>
                    <Name>Rn</Name>
                    <Usage>Key</Usage>
                    <KeyColumns>
                        <KeyColumn>
                            <DataType>BigInt</DataType>
                            <Source xsi:type="ColumnBinding">
                                <TableID>dbo_sales</TableID>
                                <ColumnID>rn</ColumnID>
                            </Source>
                        </KeyColumn>
                    </KeyColumns>
                    <NameColumn>
                        <DataType>WChar</DataType>
                        <Source xsi:type="ColumnBinding">
                            <TableID>dbo_sales</TableID>
                            <ColumnID>rn</ColumnID>
                        </Source>
                    </NameColumn>
                    <AttributeRelationships>
                        <AttributeRelationship>
                            <AttributeID>Product Name</AttributeID>
                            <Name>Product Name</Name>
                        </AttributeRelationship>
                        <AttributeRelationship>
                            <AttributeID>Place Name</AttributeID>
                            <Name>Place Name</Name>
                        </AttributeRelationship>
                    </AttributeRelationships>
                    <OrderBy>Key</OrderBy>
                </Attribute>
                <Attribute>
                    <ID>Product Name</ID>
                    <Name>Product Name</Name>
                    <KeyColumns>
                        <KeyColumn>
                            <DataType>WChar</DataType>
                            <DataSize>50</DataSize>
                            <Source xsi:type="ColumnBinding">
                                <TableID>dbo_sales</TableID>
                                <ColumnID>product_name</ColumnID>
                            </Source>
                        </KeyColumn>
                    </KeyColumns>
                    <NameColumn>
                        <DataType>WChar</DataType>
                        <DataSize>50</DataSize>
                        <Source xsi:type="ColumnBinding">
                            <TableID>dbo_sales</TableID>
                            <ColumnID>product_name</ColumnID>
                        </Source>
                    </NameColumn>
                    <OrderBy>Key</OrderBy>
                </Attribute>
                <Attribute>
                    <ID>Place Name</ID>
                    <Name>Place Name</Name>
                    <KeyColumns>
                        <KeyColumn>
                            <DataType>WChar</DataType>
                            <DataSize>12</DataSize>
                            <Source xsi:type="ColumnBinding">
                                <TableID>dbo_sales</TableID>
                                <ColumnID>place_name</ColumnID>
                            </Source>
                        </KeyColumn>
                    </KeyColumns>
                    <NameColumn>
                        <DataType>WChar</DataType>
                        <DataSize>12</DataSize>
                        <Source xsi:type="ColumnBinding">
                            <TableID>dbo_sales</TableID>
                            <ColumnID>place_name</ColumnID>
                        </Source>
                    </NameColumn>
                    <OrderBy>Key</OrderBy>
                </Attribute>
            </Attributes>
            <ProactiveCaching>
                <SilenceInterval>-PT1S</SilenceInterval>
                <Latency>-PT1S</Latency>
                <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                <Source xsi:type="ProactiveCachingInheritedBinding" />
            </ProactiveCaching>
        </Dimension>
    </ObjectDefinition>
</Create>

 

キューブを作成するスクリプトファイルの作成

キューブを作成するスクリプトファイルは、下図のように、キューブを選択し右クリックし、「キューブのスクリプトファイル作成(Script Cube as)」→「作成(Create To)」を順次選択後、「ファイル(File)」メニューを選択

f:id:purin_it:make_ssas_cube_1

 

その後のスクリプトファイル作成手順は、データソースビューの場合と同じ。作成されたキューブ生成用のスクリプトファイル(create_TestSSASCube.xmla)の内容は、以下の通り。

<Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
        <DatabaseID>TestSSASProject</DatabaseID>
    </ParentObject>
    <ObjectDefinition>
        <Cube xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
            <ID>TestSSASCube</ID>
            <Name>TestSSASCube</Name>
            <Annotations>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramLayout</Name>
                    <Value>
                        <dds xmlns="">
                            <diagram fontclsid="{0BE35203-8F91-11CE-9DE3-00AA004BB851}" mouseiconclsid="{0BE35204-8F91-11CE-9DE3-00AA004BB851}" defaultlayout="MSDDS.Rectilinear" defaultlineroute="MSDDS.Rectilinear" version="7" nextobject="2" scale="100" pagebreakanchorx="0" pagebreakanchory="0" pagebreaksizex="0" pagebreaksizey="0" scrollleft="-14717" scrolltop="-6840" gridx="150" gridy="150" marginx="5000" marginy="5000" zoom="100" x="32491" y="11589" backcolor="16777215" defaultpersistence="2" PrintPageNumbersMode="3" PrintMarginTop="0" PrintMarginBottom="635" PrintMarginLeft="0" PrintMarginRight="0" marqueeselectionmode="0" mousepointer="0" snaptogrid="0" autotypeannotation="1" showscrollbars="0" viewpagebreaks="0" donotforceconnectorsbehindshapes="1" backpictureclsid="{00000000-0000-0000-0000-000000000000}">
                                <font>
                                    <ddsxmlobjectstreamwrapper binary="01000000900144420100065461686f6d61" />
                                </font>
                                <mouseicon>
                                    <ddsxmlobjectstreamwrapper binary="6c74000000000000" />
                                </mouseicon>
                            </diagram>
                            <layoutmanager>
                                <ddsxmlobj />
                            </layoutmanager>
                            <ddscontrol controlprogid="DdsShapes.DdsObjectManagedBridge" tooltip="sales" left="20" top="0" logicalid="1" controlid="1" masterid="0" hint1="0" hint2="0" width="3016" height="3149" noresize="0" nomove="0" nodefaultattachpoints="0" autodrag="1" usedefaultiddshape="1" selectable="1" showselectionhandles="1" allownudging="1" isannotation="0" dontautolayout="0" groupcollapsed="0" tabstop="1" visible="1" snaptogrid="0">
                                <control>
                                    <ddsxmlobjectstreaminitwrapper binary="000e0000c80b00004d0c0000" />
                                </control>
                                <layoutobject>
                                    <ddsxmlobj>
                                        <property name="LogicalObject" value="dbo_sales" vartype="8" />
                                    </ddsxmlobj>
                                </layoutobject>
                                <shape groupshapeid="0" groupnode="0" />
                            </ddscontrol>
                        </dds>
                    </Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:ShowFriendlyNames</Name>
                    <Value>true</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:ShowRelationshipNames</Name>
                    <Value>false</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:UseDiagramDefaultLayout</Name>
                    <Value>true</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramViewPortLeft</Name>
                    <Value>-14717</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramViewPortTop</Name>
                    <Value>-6840</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramBoundingLeft</Name>
                    <Value>20</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramBoundingTop</Name>
                    <Value>0</Value>
                </Annotation>
                <Annotation>
                    <Name>http://schemas.microsoft.com/DataWarehouse/Designer/1.0:DiagramZoom</Name>
                    <Value>100</Value>
                </Annotation>
            </Annotations>
            <Language>1033</Language>
            <Collation>Latin1_General_CI_AS</Collation>
            <Dimensions>
                <Dimension>
                    <ID>TestSSASDimension</ID>
                    <Name>TestSSASDimension</Name>
                    <DimensionID>TestSSASDimension</DimensionID>
                    <Attributes>
                        <Attribute>
                            <AttributeID>Rn</AttributeID>
                        </Attribute>
                        <Attribute>
                            <AttributeID>Product Name</AttributeID>
                        </Attribute>
                        <Attribute>
                            <AttributeID>Place Name</AttributeID>
                        </Attribute>
                    </Attributes>
                </Dimension>
            </Dimensions>
            <MeasureGroups>
                <MeasureGroup>
                    <ID>Sales</ID>
                    <Name>Sales</Name>
                    <Measures>
                        <Measure>
                            <ID>Sales Amount</ID>
                            <Name>Sales Amount</Name>
                            <DataType>Integer</DataType>
                            <Source>
                                <DataType>Integer</DataType>
                                <Source xsi:type="ColumnBinding">
                                    <TableID>dbo_sales</TableID>
                                    <ColumnID>sales_amount</ColumnID>
                                </Source>
                            </Source>
                        </Measure>
                    </Measures>
                    <StorageMode>Molap</StorageMode>
                    <ProcessingMode>Regular</ProcessingMode>
                    <Dimensions>
                        <Dimension xsi:type="RegularMeasureGroupDimension">
                            <CubeDimensionID>TestSSASDimension</CubeDimensionID>
                            <Cardinality>One</Cardinality>
                            <Attributes>
                                <Attribute>
                                    <AttributeID>Rn</AttributeID>
                                    <KeyColumns>
                                        <KeyColumn>
                                            <DataType>BigInt</DataType>
                                            <Source xsi:type="ColumnBinding">
                                                <TableID>dbo_sales</TableID>
                                                <ColumnID>rn</ColumnID>
                                            </Source>
                                        </KeyColumn>
                                    </KeyColumns>
                                    <Type>Granularity</Type>
                                </Attribute>
                                <Attribute>
                                    <AttributeID>Product Name</AttributeID>
                                    <KeyColumns>
                                        <KeyColumn>
                                            <DataType>WChar</DataType>
                                            <DataSize>50</DataSize>
                                            <Source xsi:type="ColumnBinding">
                                                <TableID>dbo_sales</TableID>
                                                <ColumnID>product_name</ColumnID>
                                            </Source>
                                        </KeyColumn>
                                    </KeyColumns>
                                </Attribute>
                                <Attribute>
                                    <AttributeID>Place Name</AttributeID>
                                    <KeyColumns>
                                        <KeyColumn>
                                            <DataType>WChar</DataType>
                                            <DataSize>12</DataSize>
                                            <Source xsi:type="ColumnBinding">
                                                <TableID>dbo_sales</TableID>
                                                <ColumnID>place_name</ColumnID>
                                            </Source>
                                        </KeyColumn>
                                    </KeyColumns>
                                </Attribute>
                            </Attributes>
                        </Dimension>
                    </Dimensions>
                    <Partitions>
                        <Partition>
                            <ID>Sales</ID>
                            <Name>Sales</Name>
                            <Source xsi:type="DsvTableBinding">
                                <DataSourceViewID>TestSSASDataSourceView</DataSourceViewID>
                                <TableID>dbo_sales</TableID>
                            </Source>
                            <StorageMode>Molap</StorageMode>
                            <ProcessingMode>Regular</ProcessingMode>
                            <ProactiveCaching>
                                <SilenceInterval>-PT1S</SilenceInterval>
                                <Latency>-PT1S</Latency>
                                <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                                <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                                <Source xsi:type="ProactiveCachingInheritedBinding" />
                            </ProactiveCaching>
                        </Partition>
                    </Partitions>
                    <ProactiveCaching>
                        <SilenceInterval>-PT1S</SilenceInterval>
                        <Latency>-PT1S</Latency>
                        <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                        <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                        <Source xsi:type="ProactiveCachingInheritedBinding" />
                    </ProactiveCaching>
                </MeasureGroup>
            </MeasureGroups>
            <Source>
                <DataSourceViewID>TestSSASDataSourceView</DataSourceViewID>
            </Source>
            <ProactiveCaching>
                <SilenceInterval>-PT1S</SilenceInterval>
                <Latency>-PT1S</Latency>
                <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                <Source xsi:type="ProactiveCachingInheritedBinding" />
            </ProactiveCaching>
        </Cube>
    </ObjectDefinition>
</Create>

 

SSASプロジェクトのプロセス処理を行うスクリプトファイルの作成

作成したディメンション、キューブを使えるようにするためのプロセス処理(Processing)を作成するスクリプトファイルは、以下の手順で作成できる。

 

1) 下図のように、SSASプロジェクトを選択し右クリックし、「プロセス(Process)」メニューを選択

f:id:purin_it:make_ssas_process_1

 

2) スクリプトメニューから「スクリプト処理をファイルに出力(Script Action to File)」を選択

f:id:purin_it:make_ssas_process_2

 

3) ファイル名を指定し「保存(Save)」ボタンを押下

f:id:purin_it:make_ssas_process_3

 

4) 下図が、作成されたスクリプトファイルの例

f:id:purin_it:make_ssas_process_4

 

また、作成されたプロセス処理生成用のスクリプトファイル(process_TestSSASProject.xmla)の内容は、以下の通り。

<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Parallel>
    <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
      <Object>
        <DatabaseID>TestSSASProject</DatabaseID>
      </Object>
      <Type>ProcessFull</Type>
      <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
    </Process>
  </Parallel>
</Batch>

 

なお、それぞれのスクリプトファイルを直接更新すれば、SSDT(SQL Server Data Tools)ツールを使わなくても、コマンド操作により、SSASプロジェクトの内容を更新することができる。