Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
olapy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
2
Merge Requests
2
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
nexedi
olapy
Commits
96d344b0
Commit
96d344b0
authored
May 04, 2017
by
mouadh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update docs
parent
ba244848
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
104 additions
and
98 deletions
+104
-98
docs/api.rst
docs/api.rst
+8
-16
olapy/core/mdx/executor/execute.py
olapy/core/mdx/executor/execute.py
+81
-66
olapy/core/services/xmla.py
olapy/core/services/xmla.py
+2
-2
olapy/core/services/xmla_execute_tools.py
olapy/core/services/xmla_execute_tools.py
+13
-14
No files found.
docs/api.rst
View file @
96d344b0
...
@@ -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_
measur
es,
get_
tupl
es,
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_
DataF
rame,
split_
dataf
rame,
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
olapy/core/mdx/executor/execute.py
View file @
96d344b0
...
@@ -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
"""
"""
...
...
olapy/core/services/xmla.py
View file @
96d344b0
olapy/core/services/xmla_execute_tools.py
View file @
96d344b0
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment