反馈已提交

网络繁忙

您正在浏览的是 FineBI6.0 帮助文档,点击跳转至: FineBI5.1帮助文档

左右合并

  • 文档创建者:doreen0813
  • 编辑次数:54次
  • 最近更新:Lily.Wang 于 2022-11-21
  • 1. 概述

    1.1 版本

    FineBI 版本
    功能变动
    6.0-
    6.0.5
    • 增加判断关联字段是否有重复值的提示

    • 增加「创建合并计算」功能

    1.2 应用场景

    在实际使用数据的过程中经常会有需要将两张表联合在一起形成一张新表使用的情况,

    假如有这样两张数据表:

    ① Table A:记录了学生姓名、英语成绩

    ② Table B:记录了学生姓名、数学成绩

    如果想在一张表中就看到学生的姓名、数学成绩和英语成绩,则可以使用「姓名」字段作为「合并依据」进行左右合并。

    不同的合并方式如下所示:

    1595988084895102.png

    1.3 实时版本注意事项

    • 实时数据左右合并的两张表不能来自两个数据源中(抽数版本可以来自两个数据源)。

           合并后会报错:[DIRECT-ETL] unsupported data source: databases on different hosts/ports

    2. 示例

    将「销售明细」和「品牌维度」两张表的字段合到一张表进行分析。

    2.1 新建分析主题并添加数据

    1)新建分析主题,并添加数据。使用在零售行业下找到 FineBI 自带的数据表「销售明细」表。如下图所示:

    2022-06-27_9-53-54.jpg

    注:建议用户在进行左右合并前,减少表字段名称长度,避免出现字段名称过长导致保存失败问题。

    2.2 设置左右合并

    1)如下图,添加左右合并步骤:

    2022-08-07_10-46-29.png

    2)选择要左右合并的表「品牌维度」,并勾选该表中要参与左右合并的字段。如下图所示:

    2022-06-27_10-06-08.jpg

    3)选择合并方式为「左合并」,并添加合并依据为「品牌编号」。如下图所示:

    • 合并依据字段必须为同一字段类型;

    • 若左右两表中有字段名一致,系统会将其自动添加为合并依据。用户可以手动删除或添加合并依据。

    2022-06-27_10-07-56.jpg

    合并方式说明:

    合并方式
    说明
    左合并对应 SQL 语句中的 left join
    右合并对应 SQL 语句中的 right join
    交集合并对应 SQL 语句中的 inner join
    并集合并对应 SQL 语句中的 full join

    2.3 效果查

    两张表的字段合并到一张表中。合并依据会合并成一个字段,只保留合并结果「品牌编号」,如下图所示:

    2022-06-27_10-20-25.jpg

    3. 多个合并依据

    实现「部门人数」和「销售额」合并到一张表中,如下图所示:

    26.png

    无法单独使用一个字段作为合并依据,所以需要「部门、地区」字段共同作为合并依据。多个合并依据的意义即保证左右合并时数据的唯一性,如下图所示:

    1606446081266502.png

    4. 创建合并计算字段

    若左右两表的合并依据无法直接合并:

    • 比如:左右两表的合并依据字段,它们的字段类型不一致;

    • 比如:左表的是「南京」,右表是「南京市」,无法自动匹配;

    我们就可以使用「创建合并计算」创建一个辅助的合并依据字段。如下图所示:

    27.png

    28.png

    详细示例可参见:左右合并匹配失败处理

    5. 注意事项

    5.1 null 值不会互相匹配

    左右合并的两张表合并依据中如果有 null 值,null 之间不会互相匹配。

    5.2 产生笛卡尔积

    若进行左右合并的两张表,它们的合并依据字段中有重复项,左右合并后就会产生笛卡尔积,导致数据量膨胀。(比如说以「id」列作为合并依据,左表 id 字段不唯一,或右表 id 字段不唯一,进行左右合并后就会产生笛卡尔积)。

    系统会自动检测「合并依据」是否重复,并给出提示,如下图所示:

    8.png

    为了不影响系统的稳定性,当并集合并后数据量满足以下情况时系统会主动打断进行过 N:N 操作的自助数据集的更新:

    • 进行并集合并后数据量超过 1 千万;

    • 膨胀系数>=5;膨胀系数:MIN (并集合并结果数据量/左表数据,并集合并结果数据量/右表数据)。例如,100w 数据和 500w 数据 N:N 结果为 2000w数据,那么 N:N 膨胀系数为: 2000w/500w =4

    若出现笛卡尔积,更新信息处会提示用户是否更新成功:

    • 数据集生成成功:更新时检测到笛卡尔积,数据膨胀,更新耗时增加,请检查左右合并步骤中的合并依据列数据是否有重复值。

    • 数据集生成失败:更新时检测到笛卡尔积,数据严重膨胀,操作中止。请检查左右合并步骤中的合并依据列数据是否有重复值,请确保重复值不应过多。

    若「更新信息」处提示生成失败,但用户依旧要使用 N:N 进行分析,可以通过过滤等手段缩减数据量达到系统不打断的要求。

    1622106865649541.png

    5.3 数据字段要求

    数据表的字段有空格会导致左右合并结果异常,在进行左右合并前,请确保合并数据表字段中没有空格。如下图所示:

    1577067129545005.png

    5.4 设置预览界面计算数据

    当数据量比较大时,可以在数据集的编辑过程中使用前 5000 行进行计算,使计算更为流畅,如下图所示:

    2022-06-27_10-17-34.jpg


    附件列表


    主题: 选择并编辑数据
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    在线QQ(将在2023.01.05关停):800049425

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭