gpt4 book ai didi

python /Django : emulating a multidimensional layer on a MySQL database

转载 作者:搜寻专家 更新时间:2023-10-30 22:21:35 25 4
gpt4 key购买 nike

我正在做一个 Django 项目,我需要为相同的数据提供很多不同的可视化效果(例如,每个月的平均值每年/一个位置,等等...)。

我在大学里一直在使用 OLAP 数据库,我认为它可以满足我的需求,但它似乎对我的需求来说太重了。其实数据量不是很大,所以我不需要任何优化,只是一种方式来呈现相同数据的不同可视化,而不必编写 1000 次相同的代码。

所以,回顾一下,我需要一个 python 库:

  • 模拟多维数据库(OLAP 风格会很好,因为我认为它很方便:星型结构等等)
  • 非侵入式,因为我无法修改现有 MySQL 数据库上的任何内容
  • 易于使用,否则就没有必要用另一种替代一些开销。

最佳答案

好吧......我终于想出了自己的解决方案(https://code.google.com/p/django-cube/),因为我找不到我想要的。

像这样的模型:

class Instrument(models.Model):
name = models.CharField(max_length=100)

class Musician(models.Model):
firstname = models.CharField(max_length=100)
instrument = models.ForeignKey(Instrument)

创建一个立方体:

>>> c = Cube(['instrument__name', 'firstname'], Musician.objects.all(), len)
... #Cube(dimensions, queryset, aggregation_function)
... #You can use the Django field-lookup syntax for dates and foreign keys !!!

沿一个(或多个)维度查询立方体:

>>> c.measure_dict('firstname', 'instrument__name', full=False) == {
... 'Miles': {
... 'trumpet': {'measure': 1},
... 'sax': {'measure': 0},
... 'piano': {'measure': 0},
... },
... 'John': {
... 'trumpet': {'measure': 0},
... 'sax': {'measure': 1},
... 'piano': {'measure': 4},
... },
... }

使用自定义模板标签等...

关于 python /Django : emulating a multidimensional layer on a MySQL database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2949602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com