数据仓库任意字段

buk*_*zor 8 mysql database database-design blob data-warehouse

在我们的应用程序中,我们支持用户编写的插件.

这些插件生成各种类型的数据(int,float,str或datetime),这些数据用一串元数据(用户,当前目录等)以及三个自由文本字段(MetricName,Var1)标记. ,Var2).

现在我们有几年的这些数据,我正在尝试设计一个模式,允许以分析方式(图表和东西)非常快速地访问这些指标.只要我们感兴趣的指标很少,但这很容易,但我们有不同粒度的大量不同指标,我们希望存储用户添加的数据,以便以后分析(可能在之后)架构更改).

示例数据:(请记住这是非常简化的)

=========================================================================================================
| BaseDir         | User    | TrialNo | Project | ... | MetricValue | MetricName | Var1 | Var2      |
=========================================================================================================
| /path/to/me     | me      | 0       | domino  | ... | 20          | Errors     | core  | dumb      |
| /path/to/me     | me      | 0       | domino  | ... | 98.6        | Tempuratur | body  |           |
| /some/other/pwd | oneguy  | 223     | farq    | ... | 443         | ManMonths  | waste | Mythical  |
| /some/other/pwd | oneguy  | 224     | farq    | ... | 0           | Albedo     | nose  | PolarBear |
| /path/to/me     | me      | 0       | domino  | ... | 70.2        | Tempuratur | room  |           |
| /path/to/me2    | me      | 2       | domino  | ... | 2020        | Errors     | misc  | filtered  |
Run Code Online (Sandbox Code Playgroud)

任何人都可以添加解析器插件来开始测量AirSpeed指标,我们希望我们的analisys工具能够"正常工作"该新指标.


更新:

考虑到许多MetricName事先都是众所周知的,如果我能够对这些指标进行分析,并且只是存储其他用户添加的指标,我就可以满足我的要求.我们可以接受这样一个事实:如果没有对架构进行编辑,新指标将无法用于重型分析.

你们怎么看待这个解决方案?

我把我们的指标划分为三个事实表,一个用于不需要MetricTopic的事实,一个用于那些事实,一个用于所有其他指标,包括意外的指标.

度量标准模式#3


对于赏金:

我会接受任何批评,展示如何使这个系统更具功能性,或者使其与行业最佳实践更加一致.对文献的参考增加了重量.

Dam*_*vic 5

如果我理解正确,您正在寻找一种模式来支持在DW中动态创建度量.在经典数据仓库中,每个度量都是一列,因此在Kimball星中,您需要为每个新度量添加一列 - 更改架构.

您拥有的是EAV模型,对EAV的分析并不容易且不快 - 请看一下这个讨论.

我建议你看看像splunk这样的工具,它适用于这类问题.


S.L*_*ott 2

我可以为我们关心的每个指标添加另一列,但这可能会达到数百甚至数千。我编写一个脚本只是为了更新架构,这听起来像是糟糕的设计。

你没有那么多事实。没有那么多单位。

事实有单位。秒、磅、字节、美元。

您需要审查“星型架构”设计。你有维度(可能很多)和可衡量的事实(可能很少)。

事实和所有相关维度之间存在连接。您可以进行求和、计算事实以及对维度进行分组。

你不可能拥有数千个独立的事实。这几乎是不可能的。但你可以有数千种维度组合,这很常见。

将事实(令人愉快地增加的可测量数量)与维度(定义质量)分开,你应该围绕一些事实有很多维度。

买一本《金博尔》。