[]
        
(Showing Draft Content)

选型建议

本文针对各种数据集和数据模型的特点进行总结,并给出一些选型建议供您参考。

推送型

流式数据集

瞬时数据分析,实时数据刷新。

通过驻留时间的设置实现对数据的流式处理,配合仪表板的实时刷新功能可达到实时刷新仪表板大屏的效果。

推送数据集

推送数据集一直累积历史数据,所以更适合分析历史感较强的长时间段的数据走势,当数据刷新时显示实时数据。

拉取型

缓存数据集

  • 缓存数据集是基于数据源创建的,支持产品数据源设计器中的所有数据源格式。

  • 缓存数据集将数据进行抽取缓存,支持数据清洗、复杂计算以及添加复杂的过滤器,交互速度快。

  • 但由于中间经过缓存过程,因此数据不是实时更新,需通过刷新计划进行数据同步。

综上,对实时性要求不高的历史数据分析时,更推荐使用缓存数据集。

原生查询数据集

  • 基于数据源创建,支持产品数据源设计器中的所有数据源格式。

  • 使用数据库原生查询语法进行查询,自由灵活,不能跨源。

  • 在仪表板中不能进行数据处理,只能直接展示。

  • 适合处理数据量大,对实时性要求高的场景。

直连模型

  • 直连模型直连数据库,直接连接数据库实时查询数据库的数据并返回结果。但数据模型仅支持部分数据库类型,如Oracle、SQL Server、Mysql、Postgres、TimeScale、AnalyticDB、MariaDB、BigQuery、DB2以及Web JSON 等。所以当您的数据来源是这些数据源之外时,则不能使用直连模型。

  • 由于数据模型是基于直连模式,所以完全依赖数据库自身的能力,查询性能以及交互速度较数据集会稍弱一些。但也正是因为它直连数据库,所以数据实时更新,数据结构更加灵活,常用于已有数据仓库和实时性要求较高的数据分析。

抽取模型

  • 抽取模型使用高性能的缓存数据库缓存数据,使用数据时从缓存数据库中查询;直连模型则直接连接数据源进行查询。

  • 抽取模型支持单数据源或多数据源数据建模,而直连模型仅支持单个数据源数据建模。当您需要跨数据源建模时,就只能选择使用缓存模型,不能使用直连模型了。

  • 抽取模型中,由于可支持多数据源的特性,不能更改数据源;对比来看直连模型中是可以更改数据源。

直连模型VS抽取模型

直连模型和抽取模型有很多相似之处:

  • 都是使用现有数据构建数据模型。能够自动携带源数据库的关系,可以自动添加关联的表。

  • 数据模型(直连模型&抽取模型)尤其适合多租户用户场景。因为多租户/多组织上下文的情况,使用数据集的话会生成不同租户/上下文下的数据集,存储数据的成本会较高。所以此种需求时,建议您使用数据模型,仅创建一个数据模型即可满足多租户/多组织上下文的情况。

  • 另外,数据模型(直连模型&抽取模型)还有一个非常重要的应用场景。当数据来源是以上几种数据模型可用的数据库之一时,如果需要在同一仪表板中展示同一个度量值在不同维度表中的表现,建议您使用数据模型。因为如果使用数据集的话,需要分别创建2个不同的数据集才能实现正确结果的输出;而使用数据模型的话,只需创建一个数据模型即可,更加方便。

虽然都是数据模型,但由于一个是直连数据库,另一个是抽取缓存模式,所以两者的区别也非常明显。

抽取模型VS缓存数据集

相同点

  1. 两者都是使用高性能的缓存数据库缓存数据。

  2. 使用数据的场景(仪表板)都是在缓存数据库中查询数据。

  3. 均支持多数据源模式,可以跨数据源关联表。

不同点

  1. 缓存模型中用户无需知道两个表的具体关联关系(如LEFT JOIN 或 RIGHT JOIN等)即可建立多表关联的数据模型;COT 模式即缓存数据集中,用户需要自行选择是哪一种关联关系。

  2. 缓存模型在缓存数据库中建立多个表来缓存所需数据;COT 模式即缓存数据集在缓存数据库建立一个宽表缓存所需数据,表中可以体现出源表之间的关系。

  3. 缓存模型与使用数据的场景(仪表板,报表)松耦合;COT 模式即缓存数据集与使用数据的场景(仪表板,报表)高耦合。