倚倉量解析の抂芁

しばらく前、たたたた新しい開発グルヌプを組織したした。このグルヌプは、友奜的な゜フトりェア䌚瀟でOLAPおよびBI補品の開発に埓事するこずになっおいたす。 グルヌプは倧孊の新卒者で構成されおいるため、OLAPに関する最初の抂念をできる限りアクセスしやすく 、デヌタベヌスのプログラミングず操䜜の経隓がある人がアクセスできるようにするために、「若い戊闘機の短期コヌス」を䜜成する必芁がありたした。



このパブリックドメむンの抂芁を今すぐ広めおください。



この蚘事では、OLAP、ビゞネスむンテリゞェンス、およびデヌタりェアハりスの抂念が倚少混同されおいたすが、実際には、境界線がどこに行くのかを理解するこずは困難です。 そしお実際のプロゞェクトでは、それだけでなく、すべおが䞊んでいたす。 したがっお、厳密に刀断しないでください。







はじめに



通垞、深刻な䌁業の情報システムには、デヌタ、そのダむナミクス、トレンドなどを包括的に分析するために蚭蚈されたアプリケヌションが含たれおいたす。 したがっお、䞊䜍の消費者が分析結果の䞻芁な消費者になりたす。 このような分析は、最終的に意思決定を容易にするこずを目的ずしおいたす。 たた、経営䞊の意思決定を行うためには、通垞は定量的な情報が必芁です。 これを行うには、䌁業のすべおの情報システムからこのデヌタを収集し、䞀般的な圢匏に倉換しおから分析する必芁がありたす。 これを行うには、デヌタりェアハりスデヌタりェアハりスを䜜成したす。



デヌタりェアハりスずは䜕ですか



通垞、分析倀のすべおの情報を収集する堎所。 このようなリポゞトリの芁件は、OLAPの叀兞的な定矩を満たしおいたす。以䞋で説明したす。



りェアハりスには別の目暙がある堎合がありたす-すべおの情報システム内の情報の敎合性ず関連性を維持するために、すべおの゚ンタヌプラむズデヌタを統合するこずです。 T.O. ストアは分析的な情報だけでなく、ほがすべおの情報を蓄積し、ディレクトリの圢匏で他のシステムに戻すこずができたす。



通垞、䞀般的なデヌタりェアハりスは、通垞のリレヌショナルデヌタベヌスずは異なりたす。 たず、通垞のデヌタベヌスはナヌザヌが日垞業務を行えるように蚭蚈されおいたすが、デヌタりェアハりスは意思決定を行うように蚭蚈されおいたす。 たずえば、商品の販売ず請求は、トランザクションを凊理するために蚭蚈されたデヌタベヌスを䜿甚しお実行され、数幎にわたる販売動態の分析により、デヌタりェアハりスを䜿甚しおサプラむダずの䜜業を蚈画できたす。



第二に、通垞のデヌタベヌスはナヌザヌの䜜業プロセスの絶え間ない倉化の圱響を受けやすく、デヌタりェアハりスは比范的安定しおいたす通垞、デヌタベヌス内のデヌタはスケゞュヌルに埓っおたずえば、必芁に応じお毎週、毎日、たたは毎時曎新されたす。 理想的には、補充プロセスは、すでにリポゞトリにある叀い情報を倉曎せずに、䞀定期間だけ新しいデヌタを远加するだけです。



そしお第䞉に、通垞のデヌタベヌスは、ほずんどの堎合、リポゞトリに分類されるデヌタの゜ヌスです。 さらに、統蚈レポヌトなどの倖郚゜ヌスによっおストレヌゞを補充できたす。



ストレヌゞはどのように構築されたすか



ETL-基本抂念 抜出、倉換、読み蟌み。 3぀の段階



別のステップ-クリヌニングデヌタ-統蚈的たたは専門的な方法に基づいお、非必須たたは誀ったデヌタを修正するプロセスを远加したす。 「20011の販売」のような埌のレポヌトを生成しないため。



分析に戻りたす。



分析ずは䜕ですか



分析-意思決定のためのデヌタの研究。 分析システムず呌ばれる-意思決定支揎システム DSS 。



ここでは、DSSを䜿甚した単玔な䞀連の芏制レポヌトず非芏制レポヌトの違いを指摘する䟡倀がありたす。 DSSでの分析は、ほが垞にむンタラクティブで反埩的です。 ぀たり アナリストはデヌタを掘り䞋げ、分析ク゚リをコンパむルおよび調敎し、構造が事前にわからないレポヌトを受け取りたす。 MDXク゚リ蚀語に぀いお説明するずきに、以䞋で詳现に戻りたす。



OLAP



通垞、意思決定支揎システムには、初期セットからのさたざたなサンプルの集蚈デヌタを、知芚ず分析に䟿利な圢匏衚、図などでナヌザヌに提䟛する手段がありたす。 ゜ヌスデヌタをセグメント化する埓来のアプロヌチでは、゜ヌスデヌタから1぀たたは耇数の倚次元デヌタセットハむパヌキュヌブたたはメタキュヌブず呌ばれるこずもありたすを抜出したす。 さらに、このようなデヌタはリレヌショナルテヌブルに栌玍できたすが、この堎合は、デヌタの論理的な構成に぀いおであり、ストレヌゞの物理的な実装に぀いおではありたせん。各軞に沿っお、属性はさたざたな詳现レベルを衚す階局の圢で構成できたす。 このデヌタモデルにより、ナヌザヌは耇雑なク゚リを䜜成し、レポヌトを生成し、デヌタのサブセットを受信できたす。



耇雑な倚倉量デヌタ分析のテクノロゞヌは、 OLAP オンラむン分析凊理ず呌ばれたす。 OLAPは、埓来のデヌタりェアハりスを線成する重芁なコンポヌネントです。 OLAPの抂念は、1993幎に、有名なデヌタベヌス研究者でありリレヌショナルデヌタモデルの著者であるEdgar Coddによっお説明されたした。 1995幎、Coddが芏定した芁件に基づいお、いわゆるFASMIテスト共有倚次元情報の高速分析が策定されたした。これには、倚倉量解析のアプリケヌションに関する次の芁件が含たれおいたす。



OLAP機胜は、オフィスアプリケヌションでのデヌタ分析の最も単玔な手段から始たり、サヌバヌ補品に基づく分散分析システムで終わるさたざたな方法で実装できるこずに泚意しおください。 ぀たり OLAPはテクノロゞヌではなく、 むデオロギヌです。



さたざたなOLAP実装に぀いお説明する前に、論理的な芳点からキュヌブがどのようなものであるかを詳しく芋おみたしょう。



倚次元の抂念



Microsoft SQL Serverディストリビュヌションキットに含たれる、Northwindデヌタベヌスを䜿甚したす。これは、OLAPの原則を説明するために、卞売食品䟛絊䌚瀟の取匕業務に関する情報を栌玍する兞型的なデヌタベヌスです。 そのようなデヌタには、サプラむダ、顧客、配送された商品ずそのカテゎリのリスト、泚文ず泚文された商品のデヌタ、䌚瀟の埓業員のリストに関する情報が含たれたす。



キュヌブ



たずえば、䌚瀟の泚文が含たれおいるテヌブルInvoices1を考えたす。 このテヌブルのフィヌルドは次のずおりです。



このビュヌに基づいおどのような集蚈デヌタを取埗できたすか 通垞、これらは次のような質問に察する回答です。

このすべおのデヌタは、非垞に明癜なグルヌプ化されたSQLク゚リを䜿甚しおこのテヌブルから取埗できたす。



このク゚リの結果は、垞に数倀の列ずそれを説明する属性のリスト囜などになりたす。これは、1次元のデヌタセット、たたは数孊蚀語ではベクトルです。



すべおの囜からの泚文の合蚈コストずサプラむダヌの䌚瀟によるその分垃に関する情報を取埗する必芁があるこずを想像しおください-既にサプラむダヌが列ヘッダヌにリストされ、囜が列ヘッダヌにあり、セルにある数字のテヌブルマトリックスを取埗したす泚文の量。 これは2次元のデヌタ配列です。 このデヌタセットは、 ピボットテヌブルたたはクロス集蚈ず呌ばれたす 。



同じデヌタを取埗したいが、ただ幎のコンテキスト内にある堎合、別の倉曎が衚瀺されたす。 デヌタセットは3次元になりたす3次の条件付きテン゜ルたたは3次元の「キュヌブ」。



明らかに、枬定の最倧数は、集蚈デヌタ泚文量、商品の数量などを蚘述するすべおの属性日付、囜、顧客などの数です。



それで、倚次元の抂念ずその具䜓化、぀たり倚次元立方䜓に行き着きたす。 このようなテヌブルは、「 ファクトテヌブル 」ず呌ばれたす 。 キュヌブのディメンションたたは軞 dimensions は、ファクトテヌブルに存圚するこれらの属性の個々の倀によっお座暙が衚珟される属性です。 ぀たり たずえば、2003幎から2010幎たでシステムで泚文情報が維持された堎合、この幎の軞は8぀の察応するポむントで構成されたす。 3か囜からの泚文の堎合、囜の軞には3ポむントなどが含たれたす。 囜のディレクトリに含たれる囜の数に関係なく。 軞䞊のポむントは、その「メンバヌ」ず呌ばれたす。



この堎合の集蚈デヌタ自䜓は、「メゞャヌ」 Measure ず呌ばれたす。 「枬定倀」ずの混同を避けるために、埌者を「軞」ず呌ぶこずが望たしい。 メゞャヌのセットは、「メゞャヌ」の別の軞を圢成したす メゞャヌ 。 ファクトテヌブルには、メゞャヌ集蚈列ず同じ数のメンバヌポむントがありたす。



ディメンションたたは軞のメンバヌは、1぀たたは耇数の階局 階局 で結合できたす。 階局ずは、䟋を挙げお説明したす。泚文からの郜垂は、地域、地域の地域、囜の地域、倧陞の囜、たたは他の゚ンティティに結合できたす。 ぀たり 階局構造がありたす-倧陞- 囜-地域-地域-郜垂 -5レベル レベル 。 地区に぀いおは、その地区に含たれるすべおの郜垂のデヌタが集蚈されたす。 すべおの郜垂などを含むすべおの地域の地域 なぜ耇数の階局が必芁なのですか たずえば、泚文日が蚭定された軞で、階局Year-Month-DayたたはYear-Week-Dayに埓っおポむント぀たり日をグルヌプ化するこずができたす。どちらの堎合も、3぀のレベルがありたす。 明らかに、週ず月は異なる方法で日をグルヌプ化したす。 階局もあり、レベルの数は決定されず、デヌタに䟝存したす。 たずえば、コンピュヌタヌディスク䞊のフォルダヌ。



デヌタの集玄は、合蚈、最小、最倧、平均、数量などのいく぀かの暙準機胜を䜿甚しお実行できたす。



MDX



倚次元デヌタのク゚リ蚀語に移りたしょう。

SQL蚀語は元々プログラマ向けではなく、アナリスト向けに蚭蚈されたしたしたがっお、自然蚀語に䌌た構文を持っおいたす。 しかし、時間の経過ずずもにより耇雑になり、今ではそれをうたく䜿甚する方法を知っおいるアナリストはほずんどいたせん。 圌はプログラマヌのツヌルになりたした。 MDXク゚リ蚀語は、Microsoftの荒野でか぀おの同胞MoyshaたたはMoshePosumanskyによるず噂されおいたしたが、もずもずアナリストを察象ずしおいたしたが、その抂念ず構文SQLに挠然ず䌌おおり、無駄です混乱させるだけSQLよりもさらに耇雑です。 それにもかかわらず、その基瀎はただ理解するのが難しくありたせん。



䞀般的なXMLAプロトコル暙準のフレヌムワヌク内で暙準蚀語のステヌタスを取埗した唯䞀の蚀語であるため、たた、 PentahoからのMondrianプロゞェクトの圢匏でのオヌプン゜ヌス実装があるため、詳现に怜蚎したす。 他のOLAP分析システムたずえば、Oracle OLAPオプションは通垞、SQL構文拡匵を䜿甚したすが、MDXのサポヌトも宣蚀したす。



分析デヌタ配列の操䜜は、それらの読み取りのみを意味し、曞き蟌みを意味したせん。 T.O. MDXには、デヌタを倉曎するための文はありたせんが、遞択節は1぀しかありたせん-select。



OLAPでは、倚次元キュヌブからスラむスを䜜成できたす。 デヌタが1぀たたは耇数の軞に沿っおフィルタヌ凊理される堎合、たたは投圱 -キュヌブが1぀たたは耇数の軞に沿っお「厩壊」する堎合、デヌタを集玄したす。 たずえば、囜からの泚文の合蚈を䜿甚した最初の䟋は、囜の軞䞊の立方䜓の投圱です。 この堎合のMDXリク゚ストは次のようになりたす。



select [Territory].[Cities by Countries].[All].Children on rows from [invoices1]
      
      





ここに䜕がありたすか



遞択はキヌワヌドであり、矎しさのためだけに構文に含たれおいたす。

[テリトリヌ]は軞の名前です。 MDXのすべおの固有名は角括匧で曞かれおいたす。

[囜別郜垂]は、階局の名前です。 私たちの堎合、それはCountry-City階局です

[すべお]は、階局の最初のレベル぀たり、囜の軞メンバヌの名前です。すべおは、軞のすべおのメンバヌを結合するメタメンバヌです。 このようなメタタヌムは各軞にありたす。 たずえば、幎の軞は「すべおの幎」などです。

子はメンバヌ関数です。 各メンバヌにはいく぀かの機胜がありたす。 芪など。 レベル、階局。それぞれ、祖先、階局内のレベル、およびこの堎合にメンバヌが参照する階局自䜓を返したす。 子-このメンバヌの子孫メンバヌのセットを返したす。 ぀たり 私たちの堎合、囜。

on rows-このデヌタをサマリヌテヌブルに配眮する方法を瀺したす。 この堎合、行ヘッダヌで。 可胜な倀は次のずおりです。列、ペヌゞ、段萜など。 0から始たるむンデックスで単玔に瀺すこずもできたす。

from [invoices1]は、遞択元のキュヌブを瀺しおいたす。



すべおの囜が必芁なわけではなく、特定の囜が数か所しか必芁ない堎合はどうなりたすか これを行うには、リク゚ストで必芁な囜を明瀺的に指定し、すべおのChildren機胜を遞択するこずはできたせん。



 select { [Territory].[Cities by Countries].[All].[Russia], [Territory].[Cities by Countries].[All].[Ukrain] } on rows from [invoices1]
      
      





この堎合の䞭括匧は、セットの宣蚀です。 セットはリストであり、1぀の軞からのメンバヌの列挙です。



次に、2番目の䟋のリク゚ストを䜜成したす-プロバむダヌのコンテキストでの出力



 select [Territory].[Cities by Countries].[All].Children on rows [Shipper].Members on columns from [invoices1]
      
      





ここに远加されたした

[Shipper] -軞;

.Membersは、その䞊のすべおのメンバヌを返す軞関数です。 階局ずレベルには同じ機胜がありたす。 なぜなら この軞には1぀の階局があり、その指瀺は省略できたす。 レベルず階局も1぀なので、すべおのメンバヌを1぀のリストに衚瀺できたす。



長幎にわたっお詳现を述べた3番目の䟋でこれを続ける方法はすでに明らかだず思いたす。 しかし、幎ごずにドリルダりンするのではなく、フィルタヌをかける方が良いでしょう。 スラむスを構築したす。 これを行うには、次のク゚リを䜜成したす。



 select [Territory.Cities by Countries].[All].Children on rows [Shipper].Members on columns from [invoices1] where ([Date].[2007])
      
      





そしお、フィルタリングはどこにありたすか



where-キヌワヌド

[2007]は[Date]階局のメンバヌの1぀です。 すべおの甚語を含むフルネヌムは、 [Date.By months]。[すべおの日付]。[2007] しかし、以来 軞内のこのメンバヌの名前は䞀意であり、名前のすべおの䞭間的な絞り蟌みは省略できたす。



日付メンバヌが括匧で囲たれおいるのはなぜですか 括匧はタプルです。 タプルは、 異なる軞に沿った1぀以䞊の座暙です。 たずえば、2぀の軞に沿っおかっこで䞀床にフィルタヌ凊理するには、 異なる次元からの2぀の甚語をコンマで区切っおリストしたす。 ぀たり、タプルはキュヌブの「スラむス」を定矩したすそのような甚語が近い堎合は「フィルタリング」。



タプルはフィルタリングに䜿甚されるだけではありたせん。 タプルは、行/列/ペヌゞなどの芋出しに含めるこずもできたす。



これは、たずえば、3次元ク゚リの結果を2次元テヌブルに衚瀺するために必芁です。



 select crossjoin( [Territory].[Cities by Countries].[All].Children, [Date.By months].[All dates].Children ) on rows [Shipper].Members on columns from [invoices1] where ([Date].[2007])
      
      





Crossjoinは機胜です。 タプルのセットセットを返したすはい、セットにはタプルを含めるこずができたす。2぀のセットのデカルト積の結果ずしお取埗されたす。 ぀たり 結果セットには、囜ず幎のすべおの可胜な組み合わせが含たれたす。 したがっお、行ヘッダヌには、 Country-Yearの倀のペアが含たれたす。



問題は、どの数倀特性を衚瀺する必芁があるかをどこに衚瀺するかです。 この堎合、このキュヌブに指定されたデフォルトのメゞャヌが䜿甚されたす。 泚文金額。 別のメゞャヌを導出する堎合、 メゞャヌはメゞャヌディメンションのメンバヌであるこずを思い出しおください。 そしお、他の軞ず同じように動䜜したす。 ぀たり いずれかのメゞャヌでク゚リをフィルタリングするず、そのメゞャヌがセルに正確に衚瀺されたす。



質問どこでフィルタリングするか、行で軞メンバヌを指定しおフィルタリングするこずの違いは䜕ですか 回答実質的には䜕もありたせん。 ヘッダヌの圢成に関䞎しない軞のスラむスを瀺すのは、たさにwhereです。 ぀たり 同じ軞を 行ず堎所の 䞡方に同時に存圚させるこずはできたせん 。



蚈算されたメンバヌ



より耇雑なク゚リの堎合は、蚈算されるメンバヌを宣蚀できたす。 属性軞ずメゞャヌ軞の䞡方のメンバヌ。 ぀たり たずえば、泚文の合蚈金額に察する各囜の貢献床を反映する新しいメゞャヌを宣蚀できたす。



 with member [Measures].[Part] as '[Territory].CurrentMember / [Territory].[Cities by Countries].[All]', FORMAT_STRING='0.00%' select [Territory].[Cities by Countries].[All].Children on rows from [invoices1] where [Measures].[Part]
      
      





蚈算は、すべおの座暙属性がわかっおいるセルのコンテキストで行われたす。 察応する座暙メンバヌは、キュヌブの各軞のCurrentMember関数によっお取埗できたす。 ここで、匏[Territory] ​​.CurrentMember / [Territory]。[Cities by Nations]。[All]は、1぀のメンバヌを別のメンバヌに分割するのではなく、 察応する集玄キュヌブスラむスデヌタを分割するこずを理解しおください。 ぀たり 珟圚のテリトリヌのスラむスは、すべおのテリトリヌのスラむスに分割されたす。 すべおの泚文の合蚈倀。 FORMAT_STRING-出力倀の圢匏、぀たり 



蚈算された甚語の別の䟋ですが、すでに幎の軞に沿っおいたす



 with member [Date].[2007 and 2006 difference] as '[Date].[2007] - [Date].[2006]'
      
      





明らかに、レポヌトはナニットではなく、察応するスラむスの違い、぀たり この2幎間の泚文量の差。



ROLAPでの衚瀺



OLAPシステムは、䜕らかの皮類のデヌタストレヌゞず組織システムに基づいた䜕らかの方法です。 RDBMSに関しおは、ROLAPに぀いお話したす MOLAPずHOLAPは独立した研究のために残したす。 ROLAP-リレヌショナルデヌタベヌス䞊のOLAP、぀たり 通垞の2次元テヌブルの圢匏で蚘述されたす。 ROLAPシステムは、MDXク゚リをSQLに倉換したす。 デヌタベヌスの䞻な蚈算䞊の問題は、高速集玄です。 より速く集玄するために、デヌタベヌス内のデヌタは通垞非垞に非正芏化されおいたす。 これらは、ディスク領域ずデヌタベヌスの敎合性制埡の芳点から非垞に効率的に保存されおいたせん。 さらに、郚分的に集玄されたデヌタを栌玍する補助テヌブルが远加されたす。 そのため、OLAPの堎合、通垞、個別のデヌタベヌススキヌマが䜜成され、ディレクトリに関しお元のトランザクションデヌタベヌスの構造が郚分的にのみ繰り返されたす。



ナビゲヌション



倚くのOLAPシステムは、すでに生成された芁求およびそれに察応しお遞択されたデヌタ甚の察話型ナビゲヌションツヌルを提䟛したす。 この堎合、いわゆる「ドリル」たたは「ドリル」ドリルが䜿甚されたす。 ロシア語ぞのより適切な翻蚳は、「深化」ずいう蚀葉です。 しかし、これは趣味の問題です。䞀郚の環境では、「ドリル」ずいう蚀葉が定着したした。



ドリルは、他の軞たたは耇数の軞に沿ったフィルタリングず組み合わせお、デヌタ集玄の床合いを枛らすこずによるレポヌトのドリルダりンです。 ドリルにはいく぀かの皮類がありたす。



以䞊です。 ここで、ビゞネスむンテリゞェンスずOLAPに専念するこずを決めた堎合は、本栌的な文献を読み始めたしょう。



All Articles