17
Multidimensionāla (Oracle un MySQL) datu analīze ar JRuby

Multidimensionāla datu analīze ar JRuby

  • Upload
    rsim

  • View
    841

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Multidimensionāla datu analīze ar JRuby

Multidimensionāla (Oracle un MySQL)

datu analīze ar JRuby

Page 2: Multidimensionāla datu analīze ar JRuby

Raimonds Simanovskis

Agile

TehnoloģijasRuby

github.com/rsim

JavaScript

Open-source

@rsim

Page 3: Multidimensionāla datu analīze ar JRuby

Relacionālais datu modelis

Page 4: Multidimensionāla datu analīze ar JRuby

SQL ir labs detalizētu datu atlasīšanai

Atlasīt visas pārdošanas transakcijas ASV, Kalifornijā

SELECT customer.fullname, product.product_name, sales.sales_date, sales.unit_sales, sales.store_salesFROM sales LEFT JOIN products ON sales.product_id = products.id LEFT JOIN customers ON sales.customer_id = customers.idWHERE customers.country = 'USA' AND customers.state_province = 'CA'

Page 5: Multidimensionāla datu analīze ar JRuby

SQL kļūst sarežģītsanalītiskiem pieprasījumiem

SELECT product_class.product_family, SUM(sales.unit_sales) unit_sales_sum, SUM(sales.store_sales) store_sales_sum FROM sales LEFT JOIN product ON sales.product_id = product.product_id LEFT JOIN product_class ON product.product_class_id = product_class.product_class_id LEFT JOIN time_by_day ON sales.time_id = time_by_day.time_id LEFT JOIN customer ON sales.customer_id = customer.customer_id WHERE time_by_day.the_year = 2011 AND time_by_day.quarter = 'Q1' AND customer.country = 'USA' AND customer.state_province = 'CA' GROUP BY product_class.product_family

Kāds ir pārdošanas kopsavilkumsASV, Kalifornijā,2011. gada pirmajā kvartālāpa galvenajām produktu grupām

Page 6: Multidimensionāla datu analīze ar JRuby

Multidimensionālais datu modelis

Multi-dimensionāli “kubi” (cubes)

Dimensijas, hierarhijas un līmeņi(dimensions, hierarchies, levels)

Mērījumi (measures)

Page 7: Multidimensionāla datu analīze ar JRuby

OLAP tehnoloģijasOn-Line Analytical Processing

Page 8: Multidimensionāla datu analīze ar JRuby
Page 9: Multidimensionāla datu analīze ar JRuby
Page 10: Multidimensionāla datu analīze ar JRuby
Page 11: Multidimensionāla datu analīze ar JRuby

MDX pieprasījumuvaloda

SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} ON COLUMNS, [Product].children ON ROWS FROM [Sales] WHERE ([Time].[2011].[Q1], [Customers].[USA].[CA])

Kāds ir pārdošanas kopsavilkums2011. gada pirmajā kvartālāASV, Kalifornijā,pa galvenajām produktu grupām

Page 12: Multidimensionāla datu analīze ar JRuby
Page 14: Multidimensionāla datu analīze ar JRuby

(R)OLAP shēmaDimensional model: cubes dimensions (hierarchies & levels) measures, calculated measures

Relational model: fact tables, dimension tables joined by foreign keys

Mapping

Page 15: Multidimensionāla datu analīze ar JRuby

OLAP shēmas definēšana

schema = Mondrian::OLAP::Schema.define do cube 'Sales' do table 'sales' dimension 'Gender', :foreign_key => 'customer_id' do hierarchy :has_all => true, :primary_key => 'customer_id' do table 'customer' level 'Gender', :column => 'gender', :unique_members => true end end dimension 'Time', :foreign_key => 'time_id' do hierarchy :has_all => false, :primary_key => 'time_id' do table 'time_by_day' level 'Year', :column => 'the_year', :type => 'Numeric', :unique_members => true level 'Quarter', :column => 'quarter', :unique_members => false level 'Month',:column => 'month_of_year',:type => 'Numeric',:unique_members => false end end measure 'Unit Sales', :column => 'unit_sales', :aggregator => 'sum' measure 'Store Sales', :column => 'store_sales', :aggregator => 'sum' endend

Page 16: Multidimensionāla datu analīze ar JRuby

Multidimensionālie pieprasījumi no Ruby

olap.from('Sales').columns('[Measures].[Unit Sales]', '[Measures].[Store Sales]').rows('[Product].children').where('[Time].[2011].[Q1]', '[Customers].[USA].[CA]')

Kāds ir pārdošanas kopsavilkums2011. gada pirmajā kvartālāASV, Kalifornijā,pa galvenajām produktu grupām

Page 17: Multidimensionāla datu analīze ar JRuby

Demo