Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 23 2019 11:40
    pktippa synchronize #467
  • Jan 23 2019 11:30
    pktippa edited #467
  • Jan 23 2019 11:30
    pktippa synchronize #467
  • Jan 23 2019 09:37
    pktippa opened #467
  • Jan 23 2019 09:35
  • Jan 21 2019 16:20
  • Jan 16 2019 03:18
    alexanderfefelov commented #332
  • Jan 05 2019 05:20
    jjmontesl labeled #449
  • Jan 05 2019 05:20
    jjmontesl labeled #449
  • Jan 05 2019 05:19
    jjmontesl assigned #449
  • Jan 05 2019 05:19
    jjmontesl commented #449
  • Jan 05 2019 05:17
    jjmontesl labeled #451
  • Jan 05 2019 05:16
    jjmontesl assigned #451
  • Jan 05 2019 05:16
    jjmontesl closed #451
  • Jan 05 2019 05:16
    jjmontesl commented #451
  • Jan 05 2019 05:11
    jjmontesl milestoned #445
  • Jan 05 2019 05:11
    jjmontesl labeled #445
  • Jan 05 2019 05:10
    jjmontesl unassigned #445
  • Jan 05 2019 05:10
    jjmontesl assigned #445
  • Jan 05 2019 05:10
    jjmontesl closed #445
cyaninja
@cyaninja
Hi everyone! I was wondering if it's possible to connect the cube to excel?
5 replies
As in use Get Data in excel to connect and create pivot tables in excel
Jose Juan Montes
@jjmontesl
I guess you could retrieve the facts in CSV format and use Excel functionality for pivoting.
If you wish to connect Excel to Cubes using Cubes as a backend for aggregated queries, then no, that's not possible.
If you just wish to retrieve CSV facts you can do so using /facts?format=csv in your query, like for example: http://cubesdemo.cubesviewer.com/cube/webshop_sales/facts?format=csv
cyaninja
@cyaninja
Thanks @jjmontesl and @jbe456 for the replies
I have some dim and fact tables stored in an API callable cloud service
The cloud service provides a really bad excel add-in
and I was looking at calling the api and constructing the cube to serve reporting needs, all within excel
all with *python
Jose Juan Montes
@jjmontesl
then, I don't know... I don't know how to serve an Excel-compatible service, sorry
dax
@gdassori
Hello. I'm evaluating to use Cubes.
I have seen it's a bit discontinued but at the same time there's still interested around it.
What to expect ? :-)
3 replies
dax
@gdassori
now i'm struggling to do something like that:
{
"name": "total_wins_amount",
"expression": "sum(case(is_win != 'true', 0, profit_net_norm))"
}
dax
@gdassori

The PointCut object is not well documented. According the documentation:

In Python the cuts for “sales in Slovakia between June 2010 and June 2012” are defined as:

cuts = [
    PointCut("geography", ["sk"]),
    PointCut("date", [2010, 6], [2012, 6])
]

But:

def __init__(self, dimension, path, hierarchy=None, invert=False,
                 hidden=False):

The signature doesn't accept multiple paths, and sees [2012, 6] as a hierarchy, causing an exception.

So, how to slice on a range ?
Jose Juan Montes
@jjmontesl
Ummmm
dax
@gdassori
hi Jose
for the yesterday' question i managed to reorganize the data on the ETL side, splitting wins and losses on different measures, instead of keeping the "is win ? profit_net_norm" approach. haven't managed the slicing yet, instead
Jose Juan Montes
@jjmontesl
The syntax on the URL for a range cut is... dimension:v1k1,v1k2-v2k1,v2k2 (eg: date:2020,1-2020,12)
I don't know what the API expects to receive.
Are you sure it's a PointCut?
dax
@gdassori
I see. Nope, I still have to crawl a bit more into the slicer server, I was just testing the documentation cases.
Jose Juan Montes
@jjmontesl
It'd be a RangeCut. Have a look at that one.
dax
@gdassori
def __init__(self, dimension, from_path, to_path, hierarchy=None, invert=False, hidden=False):
a-ah
thank you!
Jose Juan Montes
@jjmontesl
Expressions, iirc, were still experimental and only simple clauses are supported.
dax
@gdassori
yes, I see, neither the PGSQL case when is supported, but this is not necessarily bad, since it forced me to rethink a more efficient model, offloading the DB =)
Jose Juan Montes
@jjmontesl
My approach was to (where possible) try and precalculate during data loading as you did, or use database views. For OLAP, some degree of schema "reorganization" is needed but with Cubes you don't have too many capabilities to alter your views.
Yes, some constraints are caused by the very fact of being a snowflake/star schema, but nowadays analytic systems come with more horsepower.
I'm personally not maintaining CubesViewer. I still use CubesViewer/CubETL with Cubes sometimes but...
(by the way, a little bit of off-topic spam... I have just published http://www.RopeCow.com)
dax
@gdassori
tbh I don't think after those couple of days of hacking I'll use the library for more than baking artifacts to push them into elastic, the library is really good but suffers lack of maintenance
Jose Juan Montes
@jjmontesl
Yep.
I'd go with Elastic for this kind of service too, I guess.
In that regard, I use some other tool of mine (CubETL) to do ETL onto Elastic. But it's also unmaintained.
dax
@gdassori
I've seen CubesViewer, and you have my deepest sympathy for developing it, it must been a long job
for the ETL part I'm on Redis+Asyncio+Supervisor, this way it scales well as long as you partition the queues
Jose Juan Montes
@jjmontesl
I like that stuff :), both front and backend (mostly backend though). I tried to refactor it into a better system, it was fleshed out from a small tool used in a company I worked for. But I never really managed to push it to a production-level grade.
I don't know Supervisor... is it a ETL tool?
dax
@gdassori
it's an event driven system. the "orchestrator" process check the db for the missing data, ask to the workers, they push it back into a queue managed by the orchestrator. while consuming the queue the process write data onto the "online db" and emit related events into another redis queues :).
other processes consume the queues, handle events and make projections into a star-schema modeled pgsql.
this is where I wanted to use cubes, to spawn other process and do real-time aggregations of the projected data (composite events).
no supervisor is a processes manager, it comes with a nice frontend.
Jose Juan Montes
@jjmontesl
ah I know it then
but then you write your orchestration process yourself?
dax
@gdassori
yep the whole architecture is up & running since a while
dax
@gdassori
lol the game is fun
Jose Juan Montes
@jjmontesl
Cool. I guess there are systems like Elastic that can do a lot of this stuff for you (they just take "data points"), but as always, this really depends on your data and what you need to query.
I hope you can find your ideal pipeline 8-)

lol the game is fun

:D Thanks :) I've been working on it for a few months but I'll get back to a more business-oriented job soon hopefully :)

dax
@gdassori
Elastic is a "necessary evil". I personally hate it, its syntax is really complicated... but it does a good job.
I like more.. simple stuff.. if you haven't you may want to take a look at RediSearch. The downside is it's ram based, so if you have large datasets it hardly can be an option without spending a lot, but it's really really good.