Azure Databricks 集群合并小文件与删除过多的历史版本

原因是:databricks 集群的数据底层是HDFS虽然是spark做为引擎读写如果没有及时合并也一样会因为小文件问题造成大量的资源消耗,也就会越来越慢。目前采用的主要方式,定时合并,与版本删除

1、python 脚本如下有用到的同学可以参考下

bash 复制代码
# 合并
for database_name in database_list:
    sqlQueryShowTables = "SHOW TABLES FROM {0}".format(database_name)
    tablesDF = spark.sql(sqlQueryShowTables).collect()

    for table in tablesDF:
        sqlOptimizeTable = "OPTIMIZE {0}.{1}".format(database_name, table['tableName'])
        try:
            spark.sql(sqlOptimizeTable)
            print("INFO: Optimize table {0}.{1} completed.".format(database_name, table['tableName']))
        except Exception as e:
            print("ERROR: Optimize table {0}.{1} failed.".format(database_name, table['tableName']))
bash 复制代码
# 删除多的版本
for database_name in database_list:
    sqlQueryShowTables = "SHOW TABLES FROM {0}".format(database_name)
    tablesDF = spark.sql(sqlQueryShowTables).collect()

    for table in tablesDF:
        sqlVACUUMTable = "VACUUM {0}.{1} RETAIN 168 HOURS".format(database_name, table['tableName'])
        try:
            spark.sql(sqlVACUUMTable)
            print("INFO: VACUUM table {0}.{1} completed.".format(database_name, table['tableName']))
        except Exception as e:
            print("ERROR: VACUUM table {0}.{1} failed.".format(database_name, table['tableName']))

2、在workflows 设置好定时器就行了,

相关推荐
国服第二切图仔44 分钟前
基于Electron for 鸿蒙开发的现代化颜色选择器
microsoft·electron·harmonyos
wshzd1 小时前
LLM之Agent(三十九)|AI Agents(八):构建Multi-Agent系统
人工智能·microsoft
std860214 小时前
微软将允许用户从Windows 11文件资源管理器中移除“AI 动作”入口
人工智能·microsoft
天庭鸡腿哥21 小时前
macOS的功能,在Windows上也能实现
windows·microsoft·macos·visual studio·everything
克喵的水银蛇1 天前
Flutter 通用轮播图组件:BannerSlider 一键实现自动轮播与灵活定制
windows·microsoft
宝桥南山1 天前
Azure - 尝试使用一下Kusto Query Language(KQL)
sql·microsoft·微软·database·azure·powerbi
cdming1 天前
微软发布Win11 26220.7344更新,新增MCP原生支持与统一应用更新
microsoft
穿越光年1 天前
我用多智能体架构做了一个智能写作系统
microsoft
std860211 天前
微软发布 Edge 143 稳定版:PDF 注释支持撤销重做
microsoft·edge·pdf
古城小栈1 天前
微软开源MCP工具:让浏览器自动化测试 如德芙般丝滑
microsoft