添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
谈吐大方的木瓜  ·  c - CUDA driver API ...·  1 年前    · 
聪明的冰棍  ·  jackrabbit ...·  1 年前    · 
冲动的西瓜  ·  How to interpret ...·  1 年前    · 

查询折叠 - 增量刷新适用于支持“查询折叠”的数据源

无论是否使用增量刷新,Power BI Pro 数据集的刷新时间都限制在 2 小时内。 对于高级容量中的数据集,时间限制为 5 小时。

防止初始完全刷新超时

为了防止超时,在将模型发布到服务之前,可以启动初始刷新操作。

例:如何为 FactInternetSales 表定义增量刷新策略
在将模型发布到服务之前,在 Power Query 编辑器中,向 ProductKey 列添加另一个筛选器,以筛选出任何非 0 的值。 这会有效地筛选出 FactInternetSales 表中的所有数据。

在 Power Query 编辑器中单击“关闭并应用”,定义增量刷新策略,并保存模型后,我们将模型发布到服务。然后,在服务中对数据集运行初始刷新操作。

FactInternetSales 表分区是根据策略创建的,但是没有数据被加载和处理,因为所有数据都被筛选掉了。初始刷新操作完成后,请返回 Power Query 编辑器,ProductKey 列上的其他筛选器已被删除。 在 Power Query 编辑器中单击“关闭并应用”并保存模型后,模型将不会再次发布,因为它将覆盖增量刷新策略设置,并在从服务执行后续刷新操作时强制对数据集执行完全刷新。

配置增量刷新

配置增量刷新是在 Power BI Desktop 中完成的。请注意以下几个方面:

  • 当发布到服务时, 不能再次从 Power BI Desktop 发布同一模型。 重新发布将删除数据集中已有的所有分区和数据。 如果要发布到高级容量,可以通过开源 ALM 工具包或使用表格模型脚本语言 (TMSL) 来进行后续元数据架构更改。
  • 当发布到服务时, 无法将数据集以 PBIX 格式下载回 Power BI Desktop 。 由于服务中的数据集可能会变得很大,因此将数据集下载回来并在一般台式计算机中打开是不切实际的。
  • 在 Power BI Desktop 中配置增量刷新时,需要先创建两个 名称为 RangeStart 和 RangeEnd (为保留名称且区分大小写)的 Power Query 日期/时间 参数 。(必须是RangeStart 和 RangeEnd, 必须是日期/时间格式)

    定义了 RangeStart 和 RangeEnd 参数后,你可以 对表的日期列应用自定义日期筛选器 。 单击“应用”后,你应用的筛选器会选择将被加载到模型中的数据子集。(日期列必须是日期/时间或整数数据类型)

    在应用筛选器并将数据子集加载到模型后,可以为表定义增量刷新策略。 将模型发布到服务后,服务将使用该策略来创建和管理表分区,并执行刷新操作。

    定义策略时,有三个必需的设置和两个可选设置:

    1 - 表

    “表”列表框默认为你在数据视图中选择的表。 使用滑块启用表增量刷新。 如果表的 Power Query 表达式不包括基于 RangeStart 和 RangeEnd 参数的筛选器,则会禁止切换。

    2 - 存储以下时间内的行: 过去

    这个必需的设置用于确定一个历史周期,在这个周期内的日期/时间的行被包含在数据集中,加上当前不完整的历史周期的行,加上直至当前日期和时间的刷新周期的行。

    3 - 刷新以下时间内的行: 过去

    这个必需的设置确定了增量刷新周期,日期/时间在此周期内的所有行都包含在刷新分区中,并在执行每次刷新操作时刷新。

    例如,如果将刷新周期指定为 10 天,则在每次刷新时,服务将覆盖 RangeStart 和 RangeEnd 参数,以便为日期/时间在 10 天内的行创建一个查询,其开始和结束时间依赖于当前日期和时间。 将刷新日期/时间在过去 10 天内直至当前刷新操作时间的行。 对于此类策略,服务中平均每日新增 10,000 行的 FactInternetSales 数据集表的每次刷新操作应刷新约 100,000 行。

    请确保指定一个时期,只包含可确保准确报告所需的最少行数。 如果为多个表定义策略,则必须使用相同的 RangeStart 和 RangeEnd 参数,即使为每个表定义了不同的存储和刷新周期也是如此。

    4 - 检测数据更改

    此设置是可选的。 10 天的增量刷新比 5 年的完全刷新更有效。 不过,刷新可以更有选择性。 选中“检测数据更改”选项后,可选择用于仅标识和刷新数据更改日期的日期/时间列。 此操作假定数据源中存在通常用于审核的列。 这不应与用于使用 RangeStart 和 RangeEnd 参数对数据进行分区的列相同。 将针对增量范围中的每个周期评估此列的最大值。 如果自上次刷新后未更改,则无需刷新周期。 在本例中,这可能会将增量刷新的天数从 10 天进一步减少到 2 天左右。

    当前的设计要求将用于检测数据更改的列保留并缓存到内存中。 以下技术可用于减少基数和内存占用量:

  • 刷新时仅保留此列的最大值(可能通过 Power Query 函数实现)。
  • 根据刷新频率要求,将精度降低到可接受的水平。
  • 请定义使用 XMLA 终结点来检测数据更改的自定义查询,并避免完全暂留列值。
  • 5 - 仅刷新全天

    此设置是可选的。 假设计划每天凌晨 4:00 运行刷新。 如果在午夜到凌晨 4:00 之间的四个小时内数据源表中出现了新数据行,则你可能不希望考虑这些数据。 对于某些天数而言,石油天然气行业的每日桶数等一些业务指标毫无意义。 再比如刷新财务系统中的数据,其中前一个月的数据在该月的第 12 个公历日获得批准。 可将刷新周期设置为 1 个月,并安排在该月的第 12 天运行刷新。 例如,选中此选项后,系统将在 2 月 12 日刷新 1 月份的数据。

    请注意,除非为非 UTC 时区配置了计划的刷新,否则服务中的刷新操作将在 UTC 时间运行,这可以决定有效日期和影响完整的周期。

    配置增量刷新策略后,可以将模型发布到服务。 发布完成后,可以对数据集执行初始刷新操作。

    对于发布到分配给高级容量的工作区的数据集,如果你认为数据集会超过 1 GB 或更大,则可以在服务中执行第一次刷新操作之前,启用较大的数据集存储格式,从而提高刷新操作的性能并确保数据集不会超出大小限制。

    发布到服务后,对数据集执行初始刷新操作。 这应该是一个单独的(手动)刷新,便于你监视进度。 初始刷新操作可能需要很长时间才能完成。 必须创建分区,加载历史数据,生成或重新生成关系和层次结构等对象,并且计算对象也会被重新计算。

    后续刷新操作(单个或计划刷新)速度要快得多,因为只会刷新增量刷新分区。 仍然需要执行其他处理操作,如合并分区和重新计算,但与最初的刷新相比,通常只需要很小的一部分时间。