用途:为 Databricks Bronze 层表生成合成数据,并通过可配置的数据损坏来测试 Silver 层数据质量期望与 DLT 期望。
主要能力:使用 Faker 生成维度与事实数据,保持外键引用完整性;支持按 corruption_rate 注入缺失必填字段、格式/长度错误、越界值、业务逻辑违规、时间异常、引用完整性问题等损坏类型,每种损坏对应特定 DLT 期望;采用对数正态、指数、加权分类等非线性分布,并加入工作日/周末/节假日/季节性时间模式;数据仅生成原始事务记录,不含 total_x、sum_x、avg_x 等预聚合字段;默认生成最近约 6 个月数据。
使用方式:将 Python 代码写入本地文件(如 scripts/generate_data.py),通过 run_python_file_on_databricks MCP 工具在 Databricks 上执行;首次执行自动选择运行中集群并创建执行上下文,后续复用 cluster_id 与 context_id。数据以 parquet 写入 Volumes,例如 spark.createDataFrame(df).write.mode("overwrite").parquet(f"{VOLUME_PATH}/table_name")。参数通过 dbutils.widgets.get() 或命令行读取,Job YAML 中传入 catalog、schema、num_records、corruption_rate。必须同时设置 np.random.seed(SEED) 与 Faker.seed(SEED) 以保证可复现。依赖包括 Faker==22.0.0、holidays>=0.40、numpy>=1.24.0、pandas>=2.0.0。
适用场景:数据质量验证测试数据、DLT 期望的故意违规测试、开发/预发环境的生产级数据集模拟、维度与事实间引用完整性验证。
限制:仅面向 Databricks 与 DLT 工作流;不生成预聚合字段;损坏率需按环境设置(开发 0.10、预发 0.05、生产 0.0);具体集群、目录等环境配置暂未提供。