Commit 96d344b0 authored by mouadh's avatar mouadh

update docs

parent ba244848
......@@ -32,19 +32,20 @@ to import the package use::
.. autoclass:: MdxEngine
:members:
get_cubes_names,
get_cube,
load_tables,
get_measures,
get_star_schema_dataframe,
get_all_tables_names,
get_cube,
get_measures,
load_tables,
get_tuples,
decorticate_query,
change_measures,
get_tables_and_columns,
execute_one_tuple,
add_missed_column,
update_columns_to_keep,
execute_mdx
**MdxEngine.load_star_schema_dataframe** contains a DataFrame of all dimension merged in one (the star schema in one table)
Package ``olapy.core.services.xmla``
------------------------------------
......@@ -57,7 +58,6 @@ to import the package use::
.. autoclass:: XmlaProviderService
:members:
change_catalogue,
Discover,
Execute
......@@ -74,18 +74,10 @@ to import the package use::
.. autoclass:: XmlaExecuteTools
:members:
split_DataFrame,
split_dataframe,
get_tuple_without_nan,
check_measures_only_selected,
generate_xs0_measures_only,
generate_xs0,
generate_cell_info,
generate_cell_data,
generate_axes_info,
generate_slicer_axis
.. automodule:: olapy.core.services.logger
.. autoclass:: Logs
:members:
write_log
\ No newline at end of file
......@@ -58,10 +58,10 @@ class MdxEngine:
# to get cubes in db
self._ = self.get_cubes_names()
self.tables_loaded = self._load_tables()
self.tables_loaded = self.load_tables()
# all measures
self.measures = self._get_measures()
self.load_star_schema_dataframe = self._get_star_schema_dataframe(
self.measures = self.get_measures()
self.load_star_schema_dataframe = self.get_star_schema_dataframe(
cube_name)
self.tables_names = self._get_tables_name()
# default measure is the first one
......@@ -70,7 +70,7 @@ class MdxEngine:
@classmethod
def get_cubes_names(cls):
'''
:return: list cubes name that exists in cubes folder and postgres database
:return: list cubes name that exists in cubes folder (under ~/olapy-data/cubes) and postgres database (if connected)
'''
# get csv files folders (cubes)
......@@ -195,9 +195,9 @@ class MdxEngine:
]]
return tables
def _load_tables(self):
def load_tables(self):
"""
load all tables (DataFrames)
load all tables { Table name : DataFrame } of the current cube instance
:return: dict with key as table name and DataFrame as value
"""
......@@ -219,7 +219,7 @@ class MdxEngine:
return tables
def _get_measures(self):
def get_measures(self):
"""
:return: all numerical columns in facts table
......@@ -315,7 +315,7 @@ class MdxEngine:
return fusion
def _get_star_schema_dataframe(self, cube_name):
def get_star_schema_dataframe(self, cube_name):
"""
merge all DataFrames as star schema
......@@ -357,7 +357,7 @@ class MdxEngine:
def get_cube(self):
"""
get path to the cube (example /home_directory/your_user_name/olapy-data/cubes)
get path to the cube (example /home_directory/olapy-data/cubes)
:return: path to the cube
"""
......@@ -372,21 +372,18 @@ class MdxEngine:
example:
SELECT {[Geography].[Geography].[All Continent].Members,
[Geography].[Geography].[Continent].[Europe]
SELECT {[Geography].[Geography].[All Continent].Members,
[Geography].[Geography].[Continent].[Europe]} ON COLUMNS,
} ON COLUMNS,
{[Product].[Product].[Company]} ON ROWS
{[Product].[Product].[Company]
FROM {sales}
} ON ROWS
FROM {sales}
It returns [ ['Geography','Geography','Continent'],
['Geography','Geography','Continent','Europe'],
['Product','Product','Company']
]
it returns :
[['Geography','Geography','Continent'],
['Geography','Geography','Continent','Europe'],
['Product','Product','Company']]
:param query: mdx query
......@@ -522,37 +519,40 @@ class MdxEngine:
def execute_one_tuple(self, tuple_as_list, Dataframe_in, columns_to_keep):
"""
filter a DataFrame (Dataframe_in) with one tuple
Example :
tuple = ['Geography','Geography','Continent','Europe','France','olapy']
Dataframe_in in =
+-------------+----------+---------+---------+---------+
| Continent | Country | Company | Article | Amount |
+=============+==========+=========+=========+=========+
| America | US | MS | SSAS | 35150 |
+-------------+----------+---------+---------+---------+
| Europe | France | AB | olapy | 41239 |
+-------------+----------+---------+---------+---------+
| ..... | ..... | ...... | ..... | ..... |
+-------------+----------+---------+---------+---------+
out :
+-------------+----------+---------+---------+---------+
| Continent | Country | Company | Article | Amount |
+=============+==========+=========+=========+=========+
| Europe | France | AB | olapy | 41239 |
+-------------+----------+---------+---------+---------+
Example ::
tuple = ['Geography','Geography','Continent','Europe','France','olapy']
Dataframe_in in :
+-------------+----------+---------+---------+---------+
| Continent | Country | Company | Article | Amount |
+=============+==========+=========+=========+=========+
| America | US | MS | SSAS | 35150 |
+-------------+----------+---------+---------+---------+
| Europe | France | AB | olapy | 41239 |
+-------------+----------+---------+---------+---------+
| ..... | ..... | ...... | ..... | ..... |
+-------------+----------+---------+---------+---------+
out :
+-------------+----------+---------+---------+---------+
| Continent | Country | Company | Article | Amount |
+=============+==========+=========+=========+=========+
| Europe | France | AB | olapy | 41239 |
+-------------+----------+---------+---------+---------+
:param tuple_as_list: tuple as list
:param Dataframe_in: DataFrame in with you want to execute tuple
:param columns_to_keep: (useful for executing many tuples, for instance execute_mdx)
other columns to keep in the execution except the current tuple
:param columns_to_keep: (useful for executing many tuples, for instance execute_mdx)
other columns to keep in the execution except the current tuple
:return: Filtered DataFrame
"""
df = Dataframe_in
......@@ -660,35 +660,50 @@ class MdxEngine:
def update_columns_to_keep(self, tuple_as_list, columns_to_keep):
"""
If we have multiple dimensions, with many columns like
columns_to_keep =>
if we have multiple dimensions, with many columns like:
( Geo -> Continent,Country
Prod -> Company
Time -> Year,Month,Day
)
columns_to_keep :
Geo -> Continent,Country
Prod -> Company
Time -> Year,Month,Day
we have to use only dimension's columns of current dimension that exist in tuple_as_list a keep other dimensions
columns
so if tuple_as_list = ['Geography','Geography','Continent']
columns_to_keep will be
columns_to_keep will be:
columns_to_keep =>
columns_to_keep :
Geo -> Continent
Prod -> Company
Time -> Year,Month,Day
( Geo -> Continent
Prod -> Company
Time -> Year,Month,Day
)
we need columns_to_keep for grouping our columns in the DataFrame
(we need columns_to_keep for grouping our columns in the DataFrame)
:param tuple_as_list: example -> ['Geography','Geography','Continent']
:param columns_to_keep: example -> { 'Geography' : ['Continent','Country'],
'Time' : ['Year','Month','Day']
}
:param tuple_as_list:
example :
['Geography','Geography','Continent']
:param columns_to_keep:
example :
{
'Geography':
['Continent','Country'],
'Time':
['Year','Month','Day']
}
:return: updated columns_to_keep
"""
......
......@@ -55,7 +55,7 @@ class XmlaProviderService(ServiceBase):
the first principle function of xmla protocol
:param request: Discover function must take 3 argument ( JUST 3 ! ) RequestType,
Restrictions and Properties , we encapsulate them in DiscoverRequest object
Restrictions and Properties , we encapsulate them in DiscoverRequest object
:return: Discover response in xmla format
......@@ -144,7 +144,7 @@ class XmlaProviderService(ServiceBase):
the second principle function of xmla protocol
:param request: Execute function must take 2 argument ( JUST 2 ! ) Command and Properties,
we encapsulate them in ExecuteRequest object
we encapsulate them in ExecuteRequest object
:return: Execute response in xml format
"""
......
......@@ -16,6 +16,7 @@ class XmlaExecuteTools():
def split_dataframe(mdx_execution_result):
"""
Split DataFrame into multiple ones by dimension
example:
in :
......@@ -28,24 +29,22 @@ class XmlaExecuteTools():
out :
{ 'Geography':
'Geography':
+-------------+----------+---------+
| Continent | Country | Amount |
+=============+==========+=========+
| America | US | 35150 |
+-------------+----------+---------+
,
+-------------+----------+---------+
| Continent | Country | Amount |
+=============+==========+=========+
| America | US | 35150 |
+-------------+----------+---------+
'Product':
+----------+---------+---------+
| Company |Article | Amount |
+==========+=========+=========+
| MS |Crazy De | 35150 |
+----------+---------+---------+
'Product':
}
+----------+---------+---------+
| Company |Article | Amount |
+==========+=========+=========+
| MS |Crazy De | 35150 |
+----------+---------+---------+
:param mdx_execution_result: MdxEngine.execute_mdx() result
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment