gpt4 book ai didi

superset - Superset 是否支持后台异步数据源刷新?

转载 作者:行者123 更新时间:2023-12-04 13:00:42 29 4
gpt4 key购买 nike

我正在使用 Superset 构建实时仪表板,我希望数据源(从 sqlLab 结果集构建)在特定日期和时间更新并缓存在后台。

我将超集连接到 MySql 并在 SQLLab 中构建了一些查询。这些查询的结果用作构建图表和仪表板的数据源。问题是有时这些查询花费的时间太长并且图表/仪表板显示不正确(例如查询超时 - 显示警告消息)。我配置了缓存时间和 celery 异步。工作人员,但是当此缓存过期时,仪表板会刷新并执行与图表/数据源相关的查询,显示超时(或其他错误)消息。

实际结果:

  • 图表/仪表板在刷新时显示超时警告消息。

  • 预期成绩:
  • 图表/仪表板总是从缓存中读取以避免运行长查询。
  • 安排后台异步。数据源在特定日期和时间刷新。

  • 更新 -- 12/09/2019

    我发现 superset 有一个 Celery 任务,它会根据不同的策略定期预热缓存。其中一种策略 (DashboardTagsStrategy) 使用自定义标签预热图表/仪表板的缓存。我知道如果我们在 config.py 中添加一个 CELERYBEAT_SCHEDULE 部分
    指定 crontab 并标记特定图表,我们可以在特定日期和时间安排后台异步数据源刷新。要遵循的步骤是:
  • 在 SQL Lab 中执行查询。
  • 将此查询的结果用作数据源。
  • 基于此数据源构建图表。
  • 标记此图表(我仍然不知道如何标记图表或仪表板)
  • 在 config.py 中添加基于标签的预热缓存策略。
  • 在图表(或数据源?¿)中配置缓存超时
  • 最佳答案

    Superset 可以执行一个查询(也就是超集中的“数据源”)并将其结果缓存一段时间(数据源上的图表缓存超时参数)。您将使用此缓存来避免在数据“足够新鲜”时重新查询数据库 - 例如每日销售图表可以缓存 24 小时。
    从概念上讲,Superset 是一个数据可视化工具,但不是数据准备/转换工具,因此,afaik,它没有调度后台作业以在特定日期/时间进行自动定期刷新的概念。

    您想要做的是在数据库中创建物化 View ,并将这些 View /表用作超集查询和图表的数据源。
    您将需要使用不同的工具来安排刷新这些 Material View - 这可能与 cron 作业一样简单。
    然后,您可以将这些物化 View 用作图表的数据源。这些 View 中的数据实际上是静态的,无需异步运行超集查询或将结果缓存在超集中。

    关于superset - Superset 是否支持后台异步数据源刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57876173/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com