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

相关推荐
Leinwin9 小时前
Azure语音服务(国际版)系列升级,解锁语音交互新体验
microsoft·azure
安得权14 小时前
Azure Dataverse 权限设计学习
学习·flask·azure
咕噜企业分发小米14 小时前
阿里云AI教育产品如何助力企业提升客户粘性?
人工智能·microsoft·阿里云
MicrosoftReactor15 小时前
技术速递|利用 SLM 创建多智能体的 Podcast 解决方案
microsoft·ai·agent·slm
小宇的天下17 小时前
innovus Flip chip 产品设计方法(3)
数据库·windows·microsoft
小北方城市网20 小时前
GEO 元宇宙协同与自主进化治理实战:构建全域自治的智能地理生态
大数据·人工智能·microsoft·知识图谱·数据库架构·geo
桑榆肖物21 小时前
使用.NET实现企业微信应用接入:域名验证与消息处理
microsoft·.net·企业微信
研☆香21 小时前
html界面的树形菜单介绍与制作
前端·microsoft·html
web小白成长日记21 小时前
Vue3+ElementUI树形菜单:构建层次化用户界面
前端·microsoft·ui·面试·elementui
为自己_带盐1 天前
从零开始玩转 Microsoft Agent Framework:我的 MAF 实践之旅-第二篇
后端·microsoft·ai·.net