ビジネスインテリジェンスマークアップ言語

ビムル
デザイン:スコット・カリー[ 1 ]
開発者変異[ 1 ]
初登場2008年[ 1 ]
安定版リリース
3.0 / 2012年11月1日 (2012年11月1日
OSマイクロソフトウィンドウズ
ファイル名拡張子.biml
Webサイトwww.bimlscript.com
主要な実装
Mist IDE、BIDSヘルパー[ 2 ]

ビジネス・インテリジェンス・マークアップ言語(BIML)は、ビジネス・インテリジェンス(BI)資産を定義するためのドメイン固有のXML方言です。BIMLで作成されたBI資産は現在、 Microsoft SQL Server Business Intelligence Development Studio(BIDS)のBIDS Helperアドオンと、 Varigence Mist(現在はBimlStudio)統合開発環境で使用できます。どちらのツールも、BimlメタデータをMicrosoft SQL Serverプラットフォーム用のSQL Server Integration Services(SSIS)およびSQL Server Analysis Services(SSAS)資産に変換します。また、任意のBIプラットフォーム向けにBimlをコンパイルするためのエミッターを作成することもできます。

Bimlの宣言的な設計はBIアセットの作成には十分ですが、BimlScriptは言語を拡張し、作成者がC#またはVB.NETコードをBiml内に埋め込むことを可能にします。これは、 ASP.NETが静的HTMLマークアップ内に.NETコードを埋め込む方法に似ています。[ 3 ] BimlScriptは、既存のBimlアセットへの変更のマージ、Bimlコードの自動生成、コンパイル時に複数のBimlファイルへの変更の適用に使用されます。

歴史

ミスト

Mistは、BIMLコードの作成とBIアセットの構築のためのIDEです。Mistは、ビジュアルデザイン機能とデバッグ機能を活用して、リレーショナルテーブル、SSISパッケージ、キューブなどのビジネスインテリジェンスモデル全体を同時に編集できます。[ 1 ] Mistには、構文強調表示機能付きのテキストエディター、Intellipromptとクイック情報表示、ソース管理統合、マルチモニターサポート など、最新のプログラミングIDE機能も組み込まれています。

BIDSヘルパー

Bimlの人気が高まるにつれ、動的パッケージ生成を含むBimlエンジンの主要部分がCodePlexでホストされているBIDS Helperオープンソースプロジェクトに寄贈されました。[ 2 ] [ 4 ]

BimlScriptコミュニティ

BimlScript.comは、BIの問題に対するBimlソリューションの開発と共有、そして他のユーザーと共有するためのBimlコンテンツの投稿のためのコミュニティウェブサイトです。チュートリアル、ウォークスルー、ビデオに加え、オンラインBimlエディタも提供しています。[ 5 ]

構文

BIMLは、すべてのXML言語に共通の構文を持っています。タグはそれぞれ<と>で始まり、>で終わります。さらに、タグには属性やネストされた要素を持つことができます。

ビムル

宣言

BIML文書は共通の宣言で始まる

<Biml xmlns= "http://schemas.varigence.com/biml.xsd" >

ルートタイプ

Biml には、作成できるさまざまな種類の BI アセットを示す、明確に定義されたルート タイプのセットがあります。

  • 接続
  • データベース
  • スキーマ
  • テーブル
  • 寸法
  • 事実
  • パッケージ
  • ファイル形式
  • スクリプトプロジェクト
  • キューブ
  • 校長

これは、Biml で作成された AdventureWorks DimCurrency テーブルの例です。

<Biml xmlns= "http://schemas.varigence.com/biml.xsd" > <Dimensions> <Dimension Name= "DimCurrency" SchemaName= "Target.dbo" AttributeAllMemberName= "すべてのソース通貨" DimensionType= "通貨" FriendlyName= "通貨" > <列> <列名= "通貨キー" /> <列名= "通貨代替キー" DataType= "文字列固定長"長さ= "3" /> <列名= "通貨名" DataType= "文字列"長さ= "50" /> </列> <キー> <Identity名= "IK_DimCurrency" > <列> <列ColumnName= "通貨キー" /> < /列> </Identity> < UniqueKey名= "AK_DimCurrency_CurrencyAlternateKey" > <列> <列ColumnName= "通貨代替キー" /> </列> </UniqueKey> </Keys> <インデックス></インデックス> <属性> <Attribute Name= "Source Currency" EstimationCount= "101" OrderBy= "Name" AttributeType= "CurrencySource" GroupingBehavior= "DiscourageGrouping" > <InstanceSelection> DropDown </InstanceSelection> <KeyColumns> <KeyColumn ColumnName= "CurrencyName" NullProcessing= "Error" /> </KeyColumns> </Attribute> <Attribute Name= "Source Currency Code" EstimationCount= "105" OrderBy= "Name" AttributeType= "CurrencyIsoCode" Usage= "Key" GroupingBehavior= "DiscourageGrouping" > <InstanceSelection> DropDown </InstanceSelection> <KeyColumns> <KeyColumn ColumnName= "CurrencyKey" NullProcessing= "Error" /> </KeyColumns> <NameColumn ColumnName= "CurrencyAlternateKey" /> <ai=118></Attribute> </Attributes> <リレーションシップ> <リレーションシップ名= "ソース通貨" ParentAttributeName="ソース通貨コード" ChildAttributeName= "ソース通貨" Type= "Rigid" /> </Relationships> </Dimension> </Dimensions> </Biml>

Bimlスクリプト

すべてのBimlScriptタグは、それぞれ<#と#>区切り文字で始まり、終わります。特殊なタイプのBimlScriptタグでは、これらの区切り文字の拡張バージョンを使用して、特定の用途を示します。

指令

Bimlファイル(BimlScriptを含む)は、少なくとも1つのディレクティブで始まります。ディレクティブは、BimlScriptの処理方法とBimlの生成方法に関する指示をBimlエンジンに提供します。ディレクティブは<#@で始まる単一のタグです。各ディレクティブは単一の用語で始まり、その後に必要な値を提供する属性が続きます。

最も一般的な 2 つのディレクティブは template と import です。

テンプレート

このディレクティブは、ファイルの BimlScript が C# プログラミング言語を使用することを示します。

< #@テンプレート言語="C#" #> 
輸入

このディレクティブは、ファイルにインポートする.NET名前空間を指定します。これは、C#のusingステートメントまたはVB.NETのImportsステートメントと機能的に同等です。

< #@インポート名前空間="Varigence.Languages.Biml.Connection" #> 

区切り文字

BimlScript を作成する際に、追加の区切り文字を使用できます。これらの区切り文字は、T4 テンプレートの区切り文字の動作と一致します。

デリミタ説明
<#.NET コードで、Biml ファイル内の制御フローを提供するステートメントを定義します。
<#=.NET コードを評価し、それを文字列に変換して、Biml ファイルに埋め込みます。
<#+Biml ファイルから除外されるが、他の BimlScript コード ナゲットからアクセスできるプロパティ、メソッド、およびファイルを定義します。

このBimlScriptの例では、別のファイル「AdventureWorksLT」で宣言された接続を介してデータベースのアセットをインポートします。インポートされたデータベースの各スキーマとテーブルは、それぞれSchemasコレクションとTablesコレクションに直接埋め込まれます。

< #@ template language="C#" hostspecific="True" tier="2" #> < #@ import namespace="Varigence.Languages.Biml.Connection" #> < #@ import namespace="Varigence.Hadron.Extensions" #> < #@ import namespace="Varigence.Hadron.Extensions.SchemaManagement" #> < #@ import namespace="Varigence.Hadron.CoreLowerer.SchemaManagement" #> < #+パブリックImportResults結果 {取得{戻り値((AstOleDbConnectionNode)RootNode.Connections["AdventureWorksLT"]).ImportDB(); } } #> <Biml xmlns= "http://schemas.varigence.com/biml.xsd" > <データベース> <データベース名= "MyDatabase"接続名= "AdventureWorksLT" /> </データベース> <スキーマ> < #=Results.SchemaNodes.GetBiml()#> < /スキーマ> <テーブル> < #=Results.TableNodes.GetBiml()#> < /テーブル> </Biml>

この例では、開発者が Biml と BimlScript を使用して次のことを行う方法を示します。

  1. スキーマとテーブルをデータベースから直接インポートし、手動で構造をコピーすることなく使用できます。
  2. このコードを次回実行するときに、アセットへの変更が自動的に反映されます。
  3. たった 2 行の簡単なコードを使用して、アセットをインポートし、Biml に変換します。

参考文献

  1. ^ a b c d Leonard, Andy; Masson, Matt; Mitchell, Tim; Moss, Jessica; Ufford, Michelle (2012). 「第17章: ビジネスインテリジェンスマークアップ言語」. SQL Server 2012 Integration Services デザインパターン. APress. p. 456. ISBN 978-1430237716
  2. ^ a bトック、ウィヒョン;パリダ、ラケシュ。マッソン、マット。丁、暁寧。シヴァシャンムガム、カールティク(2012)。Microsoft SQL Server 2012 統合サービス。オライリー・メディア社、p. 511.ISBN 978-0735665859
  3. ^ Chenn, Ronen (2011年5月16日). 「BIDSヘルパーの新機能(2011年4月)」 .ビジネスインテリジェンス、テクノロジー、思考、思考. 2012年10月1日閲覧
  4. ^ Welch, John (2011年6月7日). 「Biml Package Generator」 . BIDS Helper . 2011年9月30日閲覧
  5. ^ 「Welcome to BimlScript.com」 . BimlScript.com . 2012年10月4日閲覧