使用集市数据

<< Click to Display Table of Contents >>

当前位置:  VooltDB数据集市 

使用集市数据

复制链接

1. 集市数据集

在数据集中通过创建数据集市数据集从数据集市中提取数据进行建模。用户需要在数据集中点击数据集市数据集,打开数据集市数据集编辑器。选择指定的文件夹,从中提取数据进行建模。

数据集市数据集中选择文件夹,只列出有读权限或有读写权限的文件夹。

【文件过滤】可实现从数据集市的云文件夹中提取相应的云文件进行建模。

例如:

文件夹中的所有文件均携带日期标签,用户即可通过文件标签来提取指定时间段的数据,参见打标签的作用

【数据信息】显示了数据任务的名称、最新更新时间、数据总大小、数据总行数信息。其中数据任务的名称,多个任务之间用英文“,”分隔。

注意:

如果有数据集市数据集的权限,又没有对应的集市文件夹的读权限,是否能执行,则看宽松/严格的属性配置(secure.access.check.strict)。如果为false,则能执行;如果为true,则抛无权限访问集市文件夹的提示。

2. Map Side Join

通过Map Side Join能把Join的运算下推到每个VooltDB节点,从而大幅提升Join运算的效率。

3.1 星形数据,多张维度表和一个事实表Join

在分布式系统中,当有星形数据(一个大表,若干个小表)需要Join的时候,可以将小表的数据复制到每个VooltDB节点,执行Map Side Join,而无须到Client 节点进行连接操作,从而提升表连接的效率。

维度表导入数据到集市:在VooltDB集市中,我们可以定义维度表,即Join操作中的小表。在用户导入维度表的时候,将维度表分发到每个节点上,如下图所示:

MapSideJoin1

当新加节点时,也需要将现有的维度表分发到该节点上。

事实表导入数据到集市:事实表也通过调度任务的增量导入数据作业将数据导入集市。然后基于事实表和维度表的集市数据创建集市数据集,基于维度表和事实表的集市数据集做Join。当执行数据集市数据集时,可以进行Map Side Join的条件是:

组合数据集,自服务数据集或者集市数据集。

Join操作中,必须符合星型数据,且小表是维度表(要求 、Join 操作中,所有表中有且只有一个表是非维度表)

其中组合数据集和自服务数据集使用联接操作符(内部联接,左侧联接,右侧联接,外部联接)实现 Join, 组合数据集实现Map Side Join,如下图所示 。

事实表和维度表都是基于集市数据创建的集市数据集。

MapSideJoin2

3.2 事实表和事实表Join

在8.5.1版本中,对Map Side Join进行了进一步优化,在满足维度事实表(大表Join小表)的基础上,增加分片入集市功能,使两个大表之间也可以执行Map Side Join,提高Join的计算执行效率。

使用分片列进行Map Side Join ,必须符合以下几点要求:

使用分片列功能需要先将组合数据集中的子数据集入集市:通过新建调度任务-增量导入集市的方式,勾选分片列属性,选择join时的联接列来进行分片。

参与Join的两个子数据集需要保证联接条件中选择的联接列都经过分片,且在入集市时勾选的分片列都要做为联接条件。