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

相关推荐
wuyk55517 小时前
PyQt6-第10讲-PDF工具箱
python·microsoft·pdf·pyqt
鬼手点金21 小时前
缓存作为架构约束
开发语言·前端·人工智能·python·microsoft·缓存·架构
Vic.Tang21 小时前
一次元数据管理项目投标后,我对 Microsoft Purview的初识一
microsoft·purview
Keith Guo1 天前
What does device twin mean in azure cloud?
azure·iot
贾伟康2 天前
【共创稿事节】第一张服务卡片:2×2 今日菜谱的克制设计
microsoft·harmonyos·arkts·鸿蒙
Shell运维手记2 天前
Shell 结构化命令知识点总结(case、for、while)
运维·microsoft·shell·脚本
2501_944525762 天前
开源鸿蒙平台 KMP_CMP 三方库「Atrium」适配全流程
microsoft·开源·harmonyos
平头哥技术团队2 天前
把端到端延迟当成走时误差:高端腕表主题里的“AI 端渲“
人工智能·microsoft
Keith Guo2 天前
What does IoT Central raw data mean?
物联网·azure·iot
程序猿追2 天前
连续触摸时,启元 T1 应该怎么回应?一个完整的 ROS 2 交互程序
microsoft·交互