Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Active Warehouse

kidpollo
June 08, 2012
77

Active Warehouse

kidpollo

June 08, 2012
Tweet

Transcript

  1. ¿Que pasa cuando? Crece el negocio Aumentan las bases de

    datos Aumentan los sistemas Wednesday, January 5, 2011
  2. • ID de transacción • Cantidad • Precio de venta

    • Utilidad neta TRANSACCIONES DE UN PUNTO DE VENTA Wednesday, January 5, 2011
  3. • Los Facts siguen convenciones de ActiveRecord • Los nombres

    de clase de los facts son singulares • Los nombres de tabla son pluralizados por default • Se puede cambiar el nombre de la tabla con set_table_name como en Active Record Wednesday, January 5, 2011
  4. class CreateTransactionFacts < ActiveRecord::Migration def self.up create_table :transaccion_facts do |t|

    t.column :date_id, :integer, :null => false t.column :tienda_id, :integer, :null => false t.column :producto_id, :integer, :null => false t.column :cantidad, :integer, :null => false t.column :total, :float, :null => false t.column :utilidad_neta, :float, :null => false end end def self.down drop_table : transaccion_facts end end Wednesday, January 5, 2011
  5. class TransaccionFact < ActiveWarehouse::Fact aggregate :cantidad, :label => ‘Total Sales

    Quantity’ aggregate :total, :label => ‘Total Sales Amount’ aggregate :utilidad, :label => ‘Gross Profit’ dimension :date dimension :tienda dimension :producto dimension :promocion dimension :cliente prejoin :cliente => [:codigo_postal] end Wednesday, January 5, 2011
  6. TIENDAS • Nombre • Numero • Domicilio • Ciudad •

    Estado • Región Wednesday, January 5, 2011
  7. • Las dimensiones también siguen convenciones de Active Record •

    Nombres de clase son singulares • Nombres de tabla son singulares • Cambia el nombre de la tabla con :set_table_name como en Active Record Wednesday, January 5, 2011
  8. class CreateStoreDimension < ActiveRecord::Migration def self.up create_table :tienda_dimension do |t|

    t.column :nombre, :string, :null => false t.column :numero, :string, :null => false t.column :domicilio, :string, :null => false t.column :ciudad, :string, :null => false t.column :pais, :string, :null => false t.column :estado, :string, :null => false t.column :encargado, :string, :null => false end end def self.down drop_table :tienda_dimension end end Wednesday, January 5, 2011
  9. class TiendaDimension < ActiveWarehouse::Dimension define_hierarchy :lugar, [:estado, :pais, :ciudad] define_hierarchy

    :region, [:region, :estado] end Las jerarquías te definen el nivel de detalle que quieres llegar Wednesday, January 5, 2011
  10. def show @report = ActiveWarehouse::Report::TableReport.new( :title => "Ventas por Region",

    :cube_name => :ventas, :column_dimension_name => :date, :column_hierarchy => :fiscal_calendar, :row_dimension_name => :tienda, :row_hierarchy => :region ) options = {:sortable_with_totals => true} @view = @report.view(params, options) end Wednesday, January 5, 2011
  11. Otros generadores y tareas rake warehouse:build_date_dimension rake warehouse:build_random_data rake warehouse:build_random_data\

    NAME=product TRUNCATE=true script/generate dimension_view creation_date date Wednesday, January 5, 2011