You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by ra...@apache.org on 2017/05/21 11:43:30 UTC

[34/51] [abbrv] lens git commit: LENS-1405 : Add xsd for virtual fact

LENS-1405 : Add xsd for virtual fact


Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/cf944c10
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/cf944c10
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/cf944c10

Branch: refs/heads/current-release-line
Commit: cf944c10c7fe68c151e2967612864251a72814ef
Parents: c4cd6d8
Author: Rajitha R <ra...@gmail.com>
Authored: Wed Apr 19 12:11:22 2017 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Wed Apr 19 12:11:22 2017 +0530

----------------------------------------------------------------------
 lens-api/src/main/resources/cube-0.1.xsd        | 70 ++++++++++++++++++++
 .../src/main/resources/virtualfact1.xml         | 27 ++++++++
 2 files changed, 97 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/cf944c10/lens-api/src/main/resources/cube-0.1.xsd
----------------------------------------------------------------------
diff --git a/lens-api/src/main/resources/cube-0.1.xsd b/lens-api/src/main/resources/cube-0.1.xsd
index 1d8a624..68ccc13 100644
--- a/lens-api/src/main/resources/cube-0.1.xsd
+++ b/lens-api/src/main/resources/cube-0.1.xsd
@@ -168,6 +168,76 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:element name="x_virtual_fact_table" type="x_virtual_fact_table"/>
+  <xs:complexType name="x_virtual_fact_table">
+    <xs:annotation>
+      <xs:documentation>
+        Virtual fact extends fact. It can override the cube of its source fact. It can have different
+        properties associated with it than its source.
+        Properties that can be set for a virtual fact are :
+        -  Filters which would be added in query rewriting
+      </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+    <xs:element type="x_properties" name="properties" maxOccurs="1" minOccurs="0">
+      <xs:annotation>
+        <xs:documentation>
+          Properties that can be set for a virtual fact are
+          1. cube.fact.query.where.filter : filter string that needs to be added in WHERE clause. This string would be added as an additional
+          filter when the query is being constructed in the cube query writing phase.
+          2. cube.fact.absolute.start.time: start time of the fact. For queries that ask for time before this,
+          this fact is not a candidate. Time format can be as you would specify in the time_range_in clause.
+          i.e. yyyy[-mm[-dd[-hh[:MM[:ss[,SSS]]]]]]
+          3. cube.fact.relative.start.time: Here you can specify fact's relative validity relative to current time.
+          Useful if you want to specify e.g. this fact is valid for today - 90 days. Can be specified as just
+          a time difference e.g. "-90 days". Or can be specified in relative syntax.
+          e.g. now.year or now.day - 6 hour etc.
+          4. cube.fact.absolute.end.time: If you're deprecating this fact, put the final date till which the data of
+          the fact will be valid here. Format same as absolute start time.
+          5. cube.fact.relative.end.time: You can specify the end date for fact table
+          relative to current date e.g. fact table is valid for next 90days starting from today.
+          This can be specified as just a time difference e.g. "+90 days"
+
+        </xs:documentation>
+      </xs:annotation>
+    </xs:element>
+    </xs:sequence>
+    <xs:attribute type="xs:string" name="source_fact_name" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          The Source fact name over which the Virtual fact is defined.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute type="xs:string" name="cube_name" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          The base cube's name to which the Virtual fact is associated.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="name" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          The virtual fact table name.
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="weight" use="optional" >
+      <xs:annotation>
+        <xs:documentation>
+          The weight of the fact table. LENS will use this attribute to decide the lightest table to query when there
+          are more than one eligible tables. If not defined, the source fact weight would be picked up.
+        </xs:documentation>
+      </xs:annotation>
+      <xs:simpleType>
+        <xs:restriction base="xs:double">
+          <xs:minInclusive value="0"></xs:minInclusive>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+  </xs:complexType>
+
   <xs:element name="x_derived_cube" type="x_derived_cube"/>
   <xs:complexType name="x_derived_cube">
     <xs:annotation>

http://git-wip-us.apache.org/repos/asf/lens/blob/cf944c10/lens-examples/src/main/resources/virtualfact1.xml
----------------------------------------------------------------------
diff --git a/lens-examples/src/main/resources/virtualfact1.xml b/lens-examples/src/main/resources/virtualfact1.xml
new file mode 100644
index 0000000..c89a9c5
--- /dev/null
+++ b/lens-examples/src/main/resources/virtualfact1.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  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.
+
+-->
+<x_virtual_fact_table source_fact_name="fact1" cube_name="sample_cube" name="virtualfact1" xmlns="uri:lens:cube:0.1"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="uri:lens:cube:0.1 cube-0.1.xsd ">
+    <properties>
+        <property name="cube.fact.query.where.filter" value=" dim1 = 10 "/>
+    </properties>
+</x_virtual_fact_table>