【问题标题】:Databricks Delta storage - Caching tables for performanceDatabricks 增量存储 - 缓存表以提高性能
【发布时间】:2022-06-16 02:48:18
【问题描述】:

在调查尝试提高某些查询性能的方法时,我遇到了 Delta 存储缓存选项,它给我留下了几个问题。 (一点知识是危险的)

spark.conf.set("spark.databricks.io.cache.enabled", "true")

  • 上面的代码是否只影响我所在的笔记本,还是适用于集群。
  • 如果是集群,集群重启后会恢复吗?

cache select * from tablename

  • 上面的代码是否缓存了表内容,如果我在 1 列上执行选择并加入另一个表,是否可以从中受益?或者缓存是否仅在再次发出该确切命令时才运行(从表名中选择 *)?

我基本上有 3 个表,它们将大量用于分析,我想提高性能。我将它们创建为增量存储,在我认为可能最常用于过滤子句(但基数不太高)的列上进行分区,并将 zorder 应用于匹配所有 3 个表并将用于所有连接的列它们之间。我现在正在探索缓存选项,看看是否可以进一步提高性能。

【问题讨论】:

    标签: performance apache-spark caching databricks


    【解决方案1】:

    https://docs.databricks.com/delta/optimizations/delta-cache.html

    简而言之:

    • 适用于您的集群,与您的笔记本无关。

    • 不支持 CSV、JSON 和 ORC。

    • 您选择的集群配置可能会影响设置和操作。请参阅 URI。

    • 您可以同时使用 Delta 缓存和 Apache Spark 缓存。例如。增量缓存包含远程数据的本地副本。它可以提高各种查询的性能,但不能用于存储任意子查询的结果。这就是 Spark 缓存的用途。

    【讨论】:

    • 谢谢!显然我的搜索条件不是很好,因为我从未在我的网络搜索中看到过这个页面。它回答了我所有的问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    相关资源
    最近更新 更多