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 设置好定时器就行了,

相关推荐
Azure DevOps12 小时前
Azure DevOps Server:2026年4月份补丁(安装详细步骤)
运维·microsoft·azure·devops
AI先驱体验官13 小时前
臻灵:数字人+大模型,实时交互的技术临界点在哪里
大数据·人工智能·深度学习·microsoft·重构·开源·交互
xier_ran17 小时前
【C++】static 关键字与 const 关键字的作用
java·数据库·microsoft
2401_8326355817 小时前
小白分享如何Go 语言中的图形界面开发:从 GUI 到 WebAssembly
microsoft·golang·wasm
AI周红伟19 小时前
周红伟:微软正在开发类OpenClaw风格的企业级智能体
microsoft·copilot
小白学大数据20 小时前
Python 实现可交互滑块拼图,图形拖拽移动无卡顿
爬虫·python·microsoft·交互
code tsunami1 天前
如何在车辆数据自动化中解决Cloudflare Turnstile
运维·microsoft·自动化
FreeBuf_2 天前
Microsoft Defender 0Day漏洞可导致权限提升攻击
microsoft
liliangcsdn2 天前
多轮对话长上下文-增量摘要和结构化摘要示例
服务器·数据库·microsoft
砍材农夫2 天前
spring-ai 第十一mcp server调用入门(stdio协议)
人工智能·spring·microsoft