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

相关推荐
FreeBuf_1 天前
微软警告:攻击者将Microsoft Teams武器化用于勒索软件、间谍活动及社会工程攻击
microsoft
熊思宇1 天前
ASP.NET Core Web API 发布到 IIS 服务器
服务器·microsoft·asp.net
2301_790994992 天前
仿神秘海域/美末环境交互的程序化动画学习
学习·microsoft·交互
Terio_my2 天前
Python制作12306查票工具:从零构建铁路购票信息查询系统
开发语言·python·microsoft
宝桥南山2 天前
Azure - 尝试创建并使用一下Azure AI Search
microsoft·微软·azure
珹洺3 天前
Java-Spring入门指南(十五)SpringMVC注解开发
java·spring·microsoft
智能化咨询3 天前
【AI智能体】Coze 打造AI数字人视频生成智能体实战详解:从0到1构建可交互虚拟主播
microsoft
持梦远方3 天前
鼠标消息超时处理——实现图形界面自动操作,避免鼠标消息阻塞
c++·windows·microsoft·bug处理
君之嘞4 天前
【操作系统基础】认识操作系统:系统调用
linux·运维·microsoft
许泽宇的技术分享4 天前
微软Agent框架深度解析:重新定义AI应用开发的革命性架构
microsoft·agent