OLAP рдореЗрдВ рдорд╛рдзреНрдпрд┐рдХрд╛ рдХреЛ рдУрд╡рд░рдХреНрд▓реЙрдХ рдХрд░рдирд╛

рдпрд╣ рдкреЛрд╕реНрдЯ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдУрдПрд▓рдПрдкреА рдХреНрдпреВрдм рдореЗрдВ рдорд╛рдзреНрдпрд┐рдХрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред
OLAP рддрдХрдиреАрдХ рдХреЗ рдореБрдЦреНрдп рд▓рд╛рднреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рд╣реИред рдЧрдгрдирд╛ рдордХреНрдЦреА рдкрд░ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╛рдзреНрдпрд┐рдХрд╛ рдХреЗ рд╕рд╛рде, рдпрд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: рдорд╛рдзреНрдпрд┐рдХрд╛ рдПрдХ рдордзреНрдпрдо рджреГрд╢реНрдп рд╣реИред рдпрд╣ рдПрдХ рдорд╛рди рд╣реИ рдЬреЛ рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рдореВрд▓реНрдпреЛрдВ {1, 2, 5, 6, 9} рдХреЗ рд▓рд┐рдП, рдорд╛рдзреНрдп 5 рд╣реИред

Microsoft рдХреЗ OLAP рд╕рд░реНрд╡рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - SSAS 2008 (SQL рд╕рд░реНрд╡рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗрд╡рд╛рдПрдБ)ред
SSAS рдордВрдЭрд▓реЗ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MDX рдореЗрдбрд┐рдпрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдк рдПрдХ рдкрд░рд┐рдХрд▓рд┐рдд рд╕рджрд╕реНрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧрдгрдирд╛ рдореЗрдВ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╢реНрд░рдо рдмрд╛рдЬрд╛рд░ рдореЗрдВ рд░рд┐рдХреНрддрд┐рдпреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ OLAP рдХреНрдпреВрдм рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд░рд┐рдХреНрддрд┐рдпреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрднрдЧ 10 рдорд┐рд▓рд┐рдпрди рдереАред рд╣рдордиреЗ рдореЗрдбрд┐рдпрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрджреВрд░реА рдХреЗ рдФрд╕рдд рд╕реНрддрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЭрд▓рд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдХреНрдпреВрдм рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХреЛрдИ рдЧрдгрдирд╛ "рдордХреНрдЦреА рдкрд░" рдирд╣реАрдВ рд╣реБрдИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдиреНрдп рдПрдХрддреНрд░реАрдХрд░рдг, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рддреНрд░рд╛ рдпрд╛ рд░рд╛рд╢рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХрддреНрд░реАрдХрд░рдг "рдПрдХрддреНрд░рд┐рдд" рд╣реИрдВ - рдХреНрдпреВрдм рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдЙрдирдХреА рдЧрдгрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЬрдм рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рддреИрдпрд╛рд░ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рдорд╛рдзреНрдпрд┐рдХрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЕрдкрдиреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреВрдм рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдЗрд╕рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдирдореВрдирд╛ рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:


2011 рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ "рдбреЗрд╡рд▓рдкрд░ 1 рд╕реА" рдХреЗ рд▓рд┐рдП, 8,354 рд░рд┐рдХреНрддрд┐рдпрд╛рдВ рдкрд╛рдИ рдЧрдИрдВред рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рд╡реЗрддрди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдЗрд╕ рд╕реЗрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдорд╛рдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╡реЗрддрди рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫрд╛рдБрдЯреЗрдВ, рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдордзреНрдп рдореЗрдВ рд╕реНрдерд┐рдд рдорд╛рди рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдВ (рдЯрдкрд▓)ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдмрд╣реБрдд рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдореБрдЦреНрдп рд╕рдордп рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реЛрддрд╛ рд╣реИред

рдирд┐рд░реНрдгрдп


рдорд╛рдзреНрдп рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рддрдереНрдп рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ OLAP рдХреНрдпреВрдм рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗрддрди рдорд╛рди рд╕реЗ рддрдереНрдп рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд┐рд░ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдорд╛рдиреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рддрддреНрд╡ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдкрдВрдХреНрддрд┐ рдХреЗ рдордзреНрдп рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдЗрд╕ рддрддреНрд╡ рдХрд╛ рдореВрд▓реНрдп рдФрд╕рдд рджрд░реНрдЬреЗ рдХрд╛ рд╣реЛрдЧрд╛ред

рдЧрдгрдирд╛ рд╕рджрд╕реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб:

//    CREATE MEMBER CURRENTCUBE.[measures].[AdvCount] AS Count(NonEmpty([Advertisement].[ID].members,[Measures].[Salary]) as AdvSet), VISIBLE = 0 ; //     CREATE MEMBER CURRENTCUBE.[Measures].[MedianReal] AS ([measures].[AdvCount]-1) * 50 / 100, VISIBLE = 0; CREATE MEMBER CURRENTCUBE.[Measures].[MedianInt] AS Int([Measures].[MedianReal]), VISIBLE = 0; CREATE MEMBER CURRENTCUBE.[Measures].[MedianFrac] AS [Measures].[MedianReal]- [Measures].[MedianInt], VISIBLE = 0; //  CREATE MEMBER CURRENTCUBE.[Measures].[MedianLow] AS (NonEmpty([Advertisement].[ID].members,[Measures].[Salary]).Item([Measures].[MedianInt]).Item(0),[Measures].[Salary]), VISIBLE = 0; CREATE MEMBER CURRENTCUBE.[Measures].[MedianHigh] AS (NonEmpty([Advertisement].[ID].members,[Measures].[Salary]).Item([Measures].[MedianInt] + 1).Item(0),[Measures].[Salary]), VISIBLE = 0; CREATE MEMBER CURRENTCUBE.[Measures].[Salary Median] AS ([Measures].[MedianLow] * [Measures].[MedianFrac]) +([Measures].[MedianHigh] * (1 - [Measures].[MedianFrac])), FORMAT_STRING = "# ### ### ##0;-# ### ### ##0", VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = 'Advertisement'; 


рдпрд╣ рдХреЛрдб рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдЬрдм рдЯрдкрд▓ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╛рдзреНрдпрд┐рдХрд╛ рдХреА рдЧрдгрдирд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдордзреНрдп рдореЗрдВ рд╕реНрдерд┐рдд рджреЛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдорд╛рдзреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдЯреАрдХрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдПрдХ рдордзреНрдпрд╕реНрде рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдПрдВ рдпрд╛ рджрд╛рдПрдВ рдореВрд▓реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЧрдгрдирд╛ рд╕рдордп рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдм рддрдереНрдп рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдХреИрд╕реЗ рдЫрд╛рдБрдЯрд╛ рдЬрд╛рдП, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореВрд▓ рддрдереНрдп рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдордп рдХреЗ рд╕рд╛рде рдЬрдорд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдореВрд▓ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдбрд╛рд▓реЗрдВред

рдирдореВрдирд╛ SQL рдХреНрд╡реЗрд░реА:

 INSERT INTO CopyBasicTable SELECT * FROM BasicTable ORDER BY ValueField 


OLAP рдХреНрдпреВрдм рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдСрдкрд░реЗрд╢рди рд╣рд░ рдмрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рдорд╛рдЗрдирд╕ рд╣реИ - рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде, рдСрдкрд░реЗрд╢рди рдХрд╛ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдзрд┐ рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЗрд╕реА рддрд░рд╣ рд╕реЗ, рдЖрдк рдкреНрд░рддрд┐рд╢рдд рдФрд░ рдЪрддреБрд░реНрдердХ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In153869/


All Articles