Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有层次结构的Python多维数据集OLAP框架_Python_Olap_Olap Cube_Cubes - Fatal编程技术网

具有层次结构的Python多维数据集OLAP框架

具有层次结构的Python多维数据集OLAP框架,python,olap,olap-cube,cubes,Python,Olap,Olap Cube,Cubes,这里我们有一些模型(django模型)用于某些国家的一些参数值, 按科目划分(如中心科目、西部科目等) 和行政单位(学科区域,如俄罗斯的莫斯科中心学科区域) 每个参数值都有三个维度: 年份、地理位置(科目或行政单位。但id仅适用于地理位置)和参数类型/代码/名称 因此,在models.json中,我们可以看到地理位置有哪些级别: 主体由行政单位组成,但每个主体都有自己的年度参数值。 (行政单位也是如此) models.js { "dimensions": [ {

这里我们有一些模型(django模型)用于某些国家的一些参数值, 按科目划分(如中心科目、西部科目等) 和行政单位(学科区域,如俄罗斯的莫斯科中心学科区域)

每个参数值都有三个维度: 年份、地理位置(科目或行政单位。但id仅适用于地理位置)和参数类型/代码/名称

因此,在models.json中,我们可以看到地理位置有哪些级别: 主体由行政单位组成,但每个主体都有自己的年度参数值。 (行政单位也是如此)

models.js

{
    "dimensions": [
      {
        "name": "cubes_viewer_years",
        "levels": [
          {
            "name": "cubes_viewer_years",
            "label_attribute": "year",
            "attributes": [ "id", "year"],
            "info": { "cv-datefilter": true}
          }
        ]
      },
        {
            "name": "cubes_viewer_param",
            "levels": [
                {
                    "name" : "param",
                    "attributes": ["id", "codename", "name"],
                    "label_attribute": "name"
                }
            ]
        },

        {
            "name": "cubes_viewer_geography",
            "levels": [
                {
                    "name": "subject",
                    "attributes": [ "subject_id", "subject_label"],
                    "key": "subject_id",
                    "label_attribute": "subject_label"
                },
                {
                    "name": "administrative_unit",
                    "attributes":
                    [ "administrative_unit_id", "administrative_unit_label"],
                    "key": "administrative_unit_id",
                    "label_attribute": "administrative_unit_label"
                }
            ]
        }

    ],
    "cubes": [
      {
        "name": "cubes_viewer_fact",
        "label": "Индикаторы",
        "measures": [{"name": "value", "aggregates": ["sum", "avg", "max", "min"]}],
        "dimensions": ["cubes_viewer_years", "cubes_viewer_param", "cubes_viewer_geography"],
        "joins": [
          {"master": "cubes_viewer_fact.year_id", "detail": "cubes_viewer_years.id"},
          {"master": "cubes_viewer_fact.param_id", "detail": "cubes_viewer_param.id"},
          {"master": "cubes_viewer_fact.geography_id", "detail": "cubes_viewer_geography.id"}
        ]
      }
    ]
}
问题: 如果我想按行政单位深入调查,一切都很好 (除了名为subject_NAME/的每个subject的值,而不是subject_NAME/ADMINISTRATIVE_UNIT_NAME.(在多维数据集查看器的过滤器面板中))之外。 一切都很好

但是,如果我想按主题深入研究,cubes viewer的过滤器面板允许选择太多的主题名称值,比如每个管理单元名称都有一个类似主题(不是唯一的)

这是不对的。 如何为这种数据层次结构构建多维数据集模型层次结构。 或者我可以分开地理表。那么,如何为此构建正确的多维数据集模型层次结构呢

也许我在文档中遗漏了一些东西,但我尝试使用cubes viewer webvisits应用程序中的示例-上面的描述是我得到了


谢谢。

您可以将地理信息分为两个表(在这种情况下,您可以在
连接中添加一个条目,定义如何连接这些表)

但你不应该这么做。多维数据集可以处理这个问题,我认为您的连接和维度配置是正确的

可能您缺少
映射

"mappings": {
    "cubes_viewer_geography.subject_id": "cubes_viewer_geography.subject_id",
    "cubes_viewer_geography.subject_label": "cubes_viewer_geography.subject_label",
    "cubes_viewer_geography.administrative_unit_id": "cubes_viewer_geography.administrative_unit_id",
    "cubes_viewer_geography.administrative_unit_label": "cubes_viewer_geography.administrative_unit_label"
}

您可以将地理信息分为两个表(在这种情况下,您可以向
join
添加一个条目,定义如何连接这些表)

但你不应该这么做。多维数据集可以处理这个问题,我认为您的连接和维度配置是正确的

可能您缺少
映射

"mappings": {
    "cubes_viewer_geography.subject_id": "cubes_viewer_geography.subject_id",
    "cubes_viewer_geography.subject_label": "cubes_viewer_geography.subject_label",
    "cubes_viewer_geography.administrative_unit_id": "cubes_viewer_geography.administrative_unit_id",
    "cubes_viewer_geography.administrative_unit_label": "cubes_viewer_geography.administrative_unit_label"
}