Commit 96d344b0 authored by mouadh's avatar mouadh

update docs

parent ba244848
...@@ -32,19 +32,20 @@ to import the package use:: ...@@ -32,19 +32,20 @@ to import the package use::
.. autoclass:: MdxEngine .. autoclass:: MdxEngine
:members: :members:
get_cubes_names, get_cubes_names,
get_cube, load_tables,
get_measures,
get_star_schema_dataframe,
get_all_tables_names, get_all_tables_names,
get_cube, get_cube,
get_measures, get_tuples,
load_tables, decorticate_query,
change_measures, change_measures,
get_tables_and_columns, get_tables_and_columns,
execute_one_tuple, execute_one_tuple,
add_missed_column, add_missed_column,
update_columns_to_keep,
execute_mdx 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`` Package ``olapy.core.services.xmla``
------------------------------------ ------------------------------------
...@@ -57,7 +58,6 @@ to import the package use:: ...@@ -57,7 +58,6 @@ to import the package use::
.. autoclass:: XmlaProviderService .. autoclass:: XmlaProviderService
:members: :members:
change_catalogue,
Discover, Discover,
Execute Execute
...@@ -74,18 +74,10 @@ to import the package use:: ...@@ -74,18 +74,10 @@ to import the package use::
.. autoclass:: XmlaExecuteTools .. autoclass:: XmlaExecuteTools
:members: :members:
split_DataFrame, split_dataframe,
get_tuple_without_nan, get_tuple_without_nan,
check_measures_only_selected,
generate_xs0_measures_only,
generate_xs0, generate_xs0,
generate_cell_info,
generate_cell_data, generate_cell_data,
generate_axes_info, generate_axes_info,
generate_slicer_axis 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: ...@@ -58,10 +58,10 @@ class MdxEngine:
# to get cubes in db # to get cubes in db
self._ = self.get_cubes_names() self._ = self.get_cubes_names()
self.tables_loaded = self._load_tables() self.tables_loaded = self.load_tables()
# all measures # all measures
self.measures = self._get_measures() self.measures = self.get_measures()
self.load_star_schema_dataframe = self._get_star_schema_dataframe( self.load_star_schema_dataframe = self.get_star_schema_dataframe(
cube_name) cube_name)
self.tables_names = self._get_tables_name() self.tables_names = self._get_tables_name()
# default measure is the first one # default measure is the first one
...@@ -70,7 +70,7 @@ class MdxEngine: ...@@ -70,7 +70,7 @@ class MdxEngine:
@classmethod @classmethod
def get_cubes_names(cls): 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) # get csv files folders (cubes)
...@@ -195,9 +195,9 @@ class MdxEngine: ...@@ -195,9 +195,9 @@ class MdxEngine:
]] ]]
return tables 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 :return: dict with key as table name and DataFrame as value
""" """
...@@ -219,7 +219,7 @@ class MdxEngine: ...@@ -219,7 +219,7 @@ class MdxEngine:
return tables return tables
def _get_measures(self): def get_measures(self):
""" """
:return: all numerical columns in facts table :return: all numerical columns in facts table
...@@ -315,7 +315,7 @@ class MdxEngine: ...@@ -315,7 +315,7 @@ class MdxEngine:
return fusion return fusion
def _get_star_schema_dataframe(self, cube_name): def get_star_schema_dataframe(self, cube_name):
""" """
merge all DataFrames as star schema merge all DataFrames as star schema
...@@ -357,7 +357,7 @@ class MdxEngine: ...@@ -357,7 +357,7 @@ class MdxEngine:
def get_cube(self): 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 :return: path to the cube
""" """
...@@ -373,20 +373,17 @@ class MdxEngine: ...@@ -373,20 +373,17 @@ class MdxEngine:
SELECT {[Geography].[Geography].[All Continent].Members, SELECT {[Geography].[Geography].[All Continent].Members,
[Geography].[Geography].[Continent].[Europe] [Geography].[Geography].[Continent].[Europe]} ON COLUMNS,
} ON COLUMNS, {[Product].[Product].[Company]} ON ROWS
{[Product].[Product].[Company]
} ON ROWS
FROM {sales} FROM {sales}
It returns [ ['Geography','Geography','Continent'], it returns :
[['Geography','Geography','Continent'],
['Geography','Geography','Continent','Europe'], ['Geography','Geography','Continent','Europe'],
['Product','Product','Company'] ['Product','Product','Company']]
]
:param query: mdx query :param query: mdx query
...@@ -522,13 +519,16 @@ class MdxEngine: ...@@ -522,13 +519,16 @@ class MdxEngine:
def execute_one_tuple(self, tuple_as_list, Dataframe_in, columns_to_keep): def execute_one_tuple(self, tuple_as_list, Dataframe_in, columns_to_keep):
""" """
filter a DataFrame (Dataframe_in) with one tuple filter a DataFrame (Dataframe_in) with one tuple
Example :
Example ::
tuple = ['Geography','Geography','Continent','Europe','France','olapy'] tuple = ['Geography','Geography','Continent','Europe','France','olapy']
Dataframe_in in = Dataframe_in in :
+-------------+----------+---------+---------+---------+ +-------------+----------+---------+---------+---------+
| Continent | Country | Company | Article | Amount | | Continent | Country | Company | Article | Amount |
...@@ -660,35 +660,50 @@ class MdxEngine: ...@@ -660,35 +660,50 @@ class MdxEngine:
def update_columns_to_keep(self, tuple_as_list, columns_to_keep): def update_columns_to_keep(self, tuple_as_list, columns_to_keep):
""" """
If we have multiple dimensions, with many columns like if we have multiple dimensions, with many columns like:
columns_to_keep => columns_to_keep :
( Geo -> Continent,Country Geo -> Continent,Country
Prod -> Company Prod -> Company
Time -> Year,Month,Day 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 we have to use only dimension's columns of current dimension that exist in tuple_as_list a keep other dimensions
columns columns
so if tuple_as_list = ['Geography','Geography','Continent'] 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 Geo -> Continent
Prod -> Company Prod -> Company
Time -> Year,Month,Day Time -> Year,Month,Day
)
(we need columns_to_keep for grouping our columns in the DataFrame)
:param tuple_as_list: example -> ['Geography','Geography','Continent'] we need columns_to_keep for grouping our columns in the DataFrame
: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 :return: updated columns_to_keep
""" """
......
...@@ -16,6 +16,7 @@ class XmlaExecuteTools(): ...@@ -16,6 +16,7 @@ class XmlaExecuteTools():
def split_dataframe(mdx_execution_result): def split_dataframe(mdx_execution_result):
""" """
Split DataFrame into multiple ones by dimension Split DataFrame into multiple ones by dimension
example: example:
in : in :
...@@ -28,14 +29,14 @@ class XmlaExecuteTools(): ...@@ -28,14 +29,14 @@ class XmlaExecuteTools():
out : out :
{ 'Geography': 'Geography':
+-------------+----------+---------+ +-------------+----------+---------+
| Continent | Country | Amount | | Continent | Country | Amount |
+=============+==========+=========+ +=============+==========+=========+
| America | US | 35150 | | America | US | 35150 |
+-------------+----------+---------+ +-------------+----------+---------+
,
'Product': 'Product':
...@@ -45,8 +46,6 @@ class XmlaExecuteTools(): ...@@ -45,8 +46,6 @@ class XmlaExecuteTools():
| MS |Crazy De | 35150 | | MS |Crazy De | 35150 |
+----------+---------+---------+ +----------+---------+---------+
}
:param mdx_execution_result: MdxEngine.execute_mdx() result :param mdx_execution_result: MdxEngine.execute_mdx() result
:return: dict with multiple DataFrame :return: dict with multiple DataFrame
......
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