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

相关推荐
q***71084 小时前
【Golang】——Gin 框架中的表单处理与数据绑定
microsoft·golang·gin
私人珍藏库7 小时前
Microsoft 远程桌面app,支持挂机宝,云主机服务器
运维·服务器·microsoft
专注VB编程开发20年16 小时前
VB6安全子类化,关闭IDE数据丢失,SetProp写入数据
microsoft·崩溃·setprop·getprop·vb6hook·子类化
IT从业者张某某1 天前
less 工具 OpenHarmony PC适配实践
前端·microsoft·less
r***d8652 天前
云存储服务选型:S3 vs Azure Blob
microsoft·azure
Brsentibi2 天前
基于python代码自动生成关于建筑安全检测的报告
python·microsoft
std78793 天前
微软Visual Studio 2026正式登场,AI融入开发核心操作体验更流畅
人工智能·microsoft·visual studio
全栈胖叔叔-瓜州4 天前
关于微软最新数据库引擎sqlserver2025 关于向量距离函数调用的问题
数据库·microsoft
IT考试认证4 天前
微软AI-900考试认证题库
人工智能·microsoft