【问题标题】:Result Cache Access in Snowflake Cloud Data Warehouse雪花云数据仓库中的结果缓存访问
【发布时间】:2020-09-09 08:25:11
【问题描述】:

Snowflake 提供各种缓存选项,其中之一是结果缓存。我了解其他用户可以使用查询结果缓存来访问重复查询的结果(在 24 小时内执行),但他们应该是同一角色还是所有角色的用户都可以访问缓存结果?

如果工具的行为最近发生了变化,Snowpro 认证考试的正确之处是什么?

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

    通常,如果满足以下所有条件,则查询结果会被重用:

    1. 执行查询的用户具有必要的访问权限 查询中使用的所有表。
      1. 新查询在语法上与先前执行的查询相匹配。 T
      2. 对查询结果有贡献的表数据没有改变。
      3. 上一个查询的持久化结果仍然可用。
      4. 任何影响结果生成方式的配置选项都有 没有改变。
      5. 查询不包括必须在 执行(例如 CURRENT_TIMESTAMP())。
      6. 表的微分区未更改(例如已重新 由于表中其他数据的更改而导致的聚类或合并)。

    参考:https://community.snowflake.com/s/article/Understanding-Result-Caching

    【讨论】:

      【解决方案2】:

      但是他们应该是同一个角色还是所有角色的用户都可以访问缓存结果?

      result cache 应该在访问授权检查后很好地发挥作用,因此经过身份验证的用户或服务的角色成员身份无关紧要。

      允许以与表(或视图)结果相同的方式读取缓存,并且Snowflake architecture 将存储和缓存与计算层分开,因此对其使用重要的唯一规则是the ones defined in the documentation .

      【讨论】:

        【解决方案3】:

        我了解访问缓存结果的角色具有所需的权限-

        -- 如果查询是 SELECT 查询,则执行查询的角色必须对缓存查询中使用的所有表具有必要的访问权限。

        -- 如果查询是 SHOW 查询,则执行查询的角色必须与生成缓存结果的角色匹配。

        【讨论】:

          猜你喜欢
          • 2020-11-29
          • 2020-08-10
          • 1970-01-01
          • 2021-08-21
          • 2016-02-09
          • 2021-12-24
          • 2017-09-20
          • 2012-12-28
          • 2021-12-03
          相关资源
          最近更新 更多