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

相关推荐
科技前瞻观察10 天前
腾讯控股下的销售易,如何重塑中国CRM格局?
microsoft
电商API&Tina10 天前
京东商品详情API接口接入与应用
数据库·microsoft
發糞塗牆10 天前
【Azure 架构师学习笔记 】- Azure AI(7)-Azure认知服务-Document Intelligence进阶使用
人工智能·ai·azure
yuan1999710 天前
基于C#实现的专业级DXF文件显示控件
windows·microsoft·c#
arvin_xiaoting10 天前
OpenClaw AI助手实战:自动化Azure DevOps PR审查与技能扩展
人工智能·自动化·azure
qq_54702617910 天前
LangChain 模型(Models)
windows·microsoft·langchain
山岚的运维笔记11 天前
SQL Server笔记 -- 第86章:查询存储
笔记·python·sql·microsoft·sqlserver·flask
發糞塗牆11 天前
【Azure 架构师学习笔记 】- Azure AI(8)-Azure AI Foundry
人工智能·ai·azure
ZWZhangYu11 天前
【LangChain专栏】LangChain Memory 核心解析
windows·microsoft·langchain