You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks工作区全局检索:盘点直连ADLS的Notebook实现方案

Databricks工作区全量Notebook直连ADLS资产排查实现方案

排查目标

本次排查覆盖工作区全目录范围的所有Notebook资产,识别未通过Metastore统一治理通道、直接硬编码abfss://协议直连ADLS存储的对象,最终输出可直接落地的资产盘点台账,两个核心采集项为:

  • 所有代码中引用abfss://协议的Notebook基础信息(含所属存储路径、归属目录)
  • 单篇Notebook中命中的所有具体ADLS存储路径

落地实现路径

初筛快速校验方法

如果需要快速生成初步排查清单,可以直接用Databricks工作区自带的全局搜索能力完成初筛:

  • 在工作区顶部全局搜索框输入检索关键词abfss://,将搜索范围设置为“全工作区文件”,系统会自动匹配所有目录下、所有文件类型中包含该字符串的条目,快速导出初筛命中清单
  • 初筛完成后需要逐条目校验,排除仅在代码注释、Markdown说明文档中提及关键词的无效命中,避免把非实际业务调用的内容纳入盘点范围

全量自动化批量排查方案

对于规模较大、目录层级复杂的工作区,手动搜索效率低且容易漏检,可通过原生API搭建批量遍历逻辑完成全量盘点,核心流程如下:

  1. 前置权限准备
    • 执行排查的账号需要绑定工作区管理员权限,具备递归读取全目录Notebook源码、调用Workspace REST API拉取文件清单的权限
  2. 核心遍历逻辑
    • 第一步:调用Workspace API递归遍历工作区所有用户目录、共享目录、库目录,筛选出后缀为.ipynb的Databricks原生Notebook文件,生成覆盖全量资产的Notebook路径清单
    • 第二步:逐个拉取每个Notebook的源码JSON内容,通过正则表达式匹配所有符合ADLS abfss协议格式的字符串,提取对应的存储路径
    • 核心匹配参考代码:
      import re
      # 匹配abfss协议存储路径的正则规则
      abfss_path_pattern = re.compile(r'abfss://[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-\._]+\.dfs\.core\.windows\.net[^\s\'"]*')
      # 对拉取到的Notebook源码做逐段匹配
      matched_paths = abfss_path_pattern.findall(notebook_raw_source)
      
    • 第三步:将采集结果结构化落表,生成标准资产台账,表字段至少包含:Notebook完整存储路径、Notebook所属目录/归属人、命中的abfss直连路径、命中代码所在的Notebook单元位置

台账去重与校验规则

为了避免台账出现无效冗余、误判内容,需要做三层校验过滤:

  • 排除非实际调用的命中内容:如果匹配到的abfss路径仅出现在Markdown说明块、代码注释段,没有实际被Spark读取、文件读写逻辑引用,不纳入违规直连资产范围
  • 排除已纳入Metastore治理的路径:如果提取到的abfss路径已经在Metastore中注册为外部表、外部存储位置,且权限管控已经通过统一通道落地,需要单独做分类标记,不算做违规直连对象
  • 重复内容去重:同一个Notebook中多次引用同一个abfss路径的,只保留单条记录,避免台账冗余

台账后续应用方向

盘点完成后可针对识别出的直连Notebook做分批改造:

  • 优先梳理高频访问、涉及核心业务数据的直连Notebook,逐步将硬编码的ADLS直连逻辑替换为通过Metastore表的统一访问方式,补齐权限审计、数据血缘追踪能力
  • 对盘点中发现的高频直连ADLS路径,优先完成元数据注册,减少用户逐次配置存储访问密钥的运维成本
  • 将该排查逻辑设置为定期巡检任务,及时发现新上线Notebook中绕开Metastore直连存储的问题,保障数据治理规则落地

内容的提问来源于stack exchange,提问作者Karthikeyan Rasipalay Durairaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 20:24:00