# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#+TITLE:     Query DSL
#+AUTHOR:    Harish Butani
#+EMAIL:     hbutani@apache.org
#+LANGUAGE:  en
#+INFOJS_OPT: view:showall toc:t ltoc:t mouse:underline path:http://orgmode.org/org-info.js
#+LINK_HOME: http://home.fnal.gov/~neilsen
#+LINK_UP: http://home.fnal.gov/~neilsen/notebook
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://orgmode.org/org-manual.css" />
#+LaTeX_CLASS: smarticle
#+LaTeX_HEADER: \pdfmapfile{/home/neilsen/texmf/fonts/map/dvips/libertine/libertine.map}
#+LaTeX_HEADER: \usepackage[ttscale=.875]{libertine}
#+LaTeX_HEADER: \usepackage{sectsty}
#+LaTeX_HEADER: \sectionfont{\normalfont\scshape}
#+LaTeX_HEADER: \subsectionfont{\normalfont\itshape}
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
#+OPTIONS: H:2 num:nil toc:nil \n:nil @:t ::t |:t ^:{} _:{} *:t TeX:t LaTeX:t
#+STARTUP: showall
#+OPTIONS: html-postamble:nil

** Example Type Definitions
#+begin_src plantuml :file class_diagram.png
scale 1300 width

note left of Trait : traits are classifications/tags attached to Instances
class Trait
Trait <|-- JDbcAccess 
Trait <|-- PII
Trait <|-- Dimension
Trait <|-- Metric
Trait <|-- ETL

class Object

Object --* Trait : traits >

Object <|-- DB
Object <|-- Table
Object <|-- Column

class DB {
 name : String
 owner : String
}

class StorageDescriptor {
  inputFormat : String
  outputFormat : String
}

class Column {
  name : String
  dataType : String
}

class Table {
 name: String
 db: DB
}
Table -> StorageDescriptor : storageDesc >
Table -> DB : db >

Column *-> StorageDescriptor : storageDesc >

class LoadProcess {
 name String
}
LoadProcess -* Table : inputTables >
LoadProcess -> Table : outputTable >

class View {
 name String
}
View -* Table : inputTables >

#+end_src

#+CAPTION: ETL and Reporting Scenario Types
#+LABEL: fig:sampleTypeDefs
#+results:
[[file:class_diagram.png]]

** Example Instance Graph
#+begin_src dot :file instanceGraph.png :cmdline -Kdot -Tpng
digraph G {
  //size ="6 6";
  nodesep=.2;
  //rankdir=LR;
  ranksep=.25;
  node [shape=record fontsize=9];
  compound=true;

subgraph cluster0 {
  style=bold;
  label = "Sales Database"; fontsize=18;
  salesDB[label="DB(sales)"]
  
  salesFact[label="Table(sales_fact)" style=filled; color="khaki"]
  salesStorage[label="Storage(text,text)"]
  sales_time_id[label="time_id" shape="circle" style=filled color="peachpuff"]
  sales_product_id[label="product_id" shape="circle" style=filled color="peachpuff"]
  sales_customer_id[label="customer_id" shape="circle" style=filled color="peachpuff"]
  sales_sales[label="sales" shape="circle" style=filled color="peachpuff"]
  sales_sales_metric[label="Metric" style=filled; shape="ellipse" color="turquoise"]
  
  salesFact -> salesDB;
  salesFact -> salesStorage;
  sales_time_id -> salesStorage;
  sales_product_id -> salesStorage;
  sales_customer_id -> salesStorage;
  sales_sales -> salesStorage;
  sales_sales -> sales_sales_metric;
  
  productDim[label="Table(product_dim)" style=filled; color="khaki"]
  productStorage[label="Storage(text,text)"]
  product_product_id[label="product_id" shape="circle" style=filled color="peachpuff"]
  product_product_name[label="product_name" shape="circle" style=filled color="peachpuff"]
  product_brand_name[label="brand_name" shape="circle" style=filled color="peachpuff"]
  product_dimension[label="Dimension" style=filled; shape="ellipse" color="turquoise"]
  
  productDim -> salesDB;
  productDim  -> productStorage;
  product_product_id -> productStorage;
  product_product_name -> productStorage;
  product_brand_name -> productStorage;
  productDim -> product_dimension;

  productDim -> salesFact [style=invis];
  
  timeDim[label="Table(time_dim)" style=filled; color="khaki"]
  timeStorage[label="Storage(text,text)"]
  time_time_id[label="time_id" shape="circle" style=filled color="peachpuff"]
  time_dayOfYear[label="day_of_year" shape="circle" style=filled color="peachpuff"]
  time_weekDay[label="week_day" shape="circle" style=filled color="peachpuff"]
  time_dimension[label="Dimension" style=filled; shape="ellipse" color="turquoise"]
  
  timeDim -> salesDB;
  timeDim  -> timeStorage;
  time_time_id -> timeStorage;
  time_dayOfYear -> timeStorage;
  time_weekDay -> timeStorage;
  timeDim -> time_dimension;

  timeDim -> productDim [style=invis];
  
  customerDim[label="Table(customer_dim)" style=filled; color="khaki"]
  customerStorage[label="Storage(text,text)"]
  customer_customer_id[label="customer_id" shape="circle" style=filled color="peachpuff"]
  customer_name[label="name" shape="circle" style=filled color="peachpuff"]
  customer_address[label="address" shape="circle" style=filled color="peachpuff"]
  customer_dimension[label="Dimension" style=filled; shape="ellipse" color="turquoise"]
  address_pii[label="PII" style=filled; shape="ellipse" color="turquoise"]
  
  customerDim -> salesDB;
  customerDim  -> customerStorage;
  customer_customer_id -> customerStorage;
  customer_name -> customerStorage;
  customer_address -> customerStorage;
  customerDim -> customer_dimension;
  customer_address -> address_pii;

  customerDim -> timeDim [style=invis];

 //{rank=min; salesDB};
 {rank=min; salesDB};
};

subgraph cluster1 {
  style=bold;
  label = "Reporting Database"; fontsize=18;

  reportingDB[label="DB(reporting)"]
  salesFactDaily[label="Table(sales_daily_mv)" style=filled; color="khaki"]
  salesDailyStorage[label="Storage(orc,orc)"]
  salesD_time_id[label="time_id" shape="circle" style=filled color="peachpuff"]
  salesD_product_id[label="product_id" shape="circle" style=filled color="peachpuff"]
  salesD_customer_id[label="customer_id" shape="circle" style=filled color="peachpuff"]
  salesD_sales[label="sales" shape="circle" style=filled color="peachpuff"]
  salesD_sales_metric[label="Metric" style=filled; shape="ellipse" color="turquoise"]
  
  salesFactDaily -> reportingDB;
  salesFactDaily -> salesDailyStorage;
  salesD_time_id -> salesDailyStorage;
  salesD_product_id -> salesDailyStorage;
  salesD_customer_id -> salesDailyStorage;
  salesD_sales -> salesDailyStorage;
  salesD_sales -> salesD_sales_metric;

   salesFactDaily -> reportingDB [style=invis];

   productDimView[label="View(product_dim_v)"  style=filled; color="khaki"]
   productDim -> productDimView [style=dotted];
   productDimView_dim[label="Dimension" style=filled; shape="ellipse" color="turquoise"]
   productDimView_jdbc[label="JdbcAccess" style=filled; shape="ellipse" color="turquoise"]
   productDimView -> productDimView_dim;
   productDimView -> productDimView_jdbc;
   productDimView -> salesFactDaily [style=invis];

   customerDimView[label="View(customer_dim_v)"  style=filled; color="khaki"]
   customerDim -> customerDimView [style=dotted];
   customerDimView_dim[label="Dimension" style=filled; shape="ellipse" color="turquoise"]
   customerDimView_jdbc[label="JdbcAccess" style=filled; shape="ellipse" color="turquoise"]
   customerDimView -> customerDimView_dim;
   customerDimView -> customerDimView_jdbc;
   customerDimView -> salesFactDaily [style=invis];

  salesMonthly[label="Table(sales_monthly_mv)"  style=filled; color="khaki"]
  salesMonthlyStorage[label="Storage(orc,orc)"]
  salesM_time_id[label="time_id" shape="circle" style=filled color="peachpuff"]
  salesM_product_id[label="product_id" shape="circle" style=filled color="peachpuff"]
  salesM_customer_id[label="customer_id" shape="circle" style=filled color="peachpuff"]
  salesM_sales[label="sales" shape="circle" style=filled color="peachpuff"]
  salesM_sales_metric[label="Metric" style=filled; shape="ellipse" color="turquoise"]
  
  salesMonthly -> reportingDB;
  salesMonthly -> salesMonthlyStorage;
  salesM_time_id -> salesMonthlyStorage;
  salesM_product_id -> salesMonthlyStorage;
  salesM_customer_id -> salesMonthlyStorage;
  salesM_sales -> salesMonthlyStorage;
  salesM_sales -> salesM_sales_metric;

  salesMonthly -> customerDimView [style=invis];

  {rank=min; reportingDB};

};

  loadSalesDaily[label="LoadProcess(loadSalesDaily)" style=filled; color="seagreen"; shape="octagon"]
  loadSalesDaily_etl[label="ETL" style=filled; shape="ellipse" color="turquoise"]
  salesFact -> loadSalesDaily [style=dotted];
  timeDim -> loadSalesDaily [style=dotted];
  loadSalesDaily -> salesFactDaily  [style=dotted];
  loadSalesDaily -> loadSalesDaily_etl;

  loadSalesMonthly[label="LoadProcess(loadSalesMonthly)" style=filled; color="seagreen"; shape="octagon"]
  loadSalesMonthly_etl[label="ETL" style=filled; shape="ellipse" color="turquoise"]
  salesFactDaily -> loadSalesMonthly [style=dotted];
  timeDim -> loadSalesMonthly [style=dotted];
  loadSalesMonthly -> salesMonthly  [style=dotted];
  loadSalesMonthly -> loadSalesMonthly_etl;

}
#+end_src

#+CAPTION: ETL and Reporting Scenario
#+LABEL: fig:sampleInstanceGraph
#+results:
[[file:instanceGraph.png]]

