Snowpipe Auto Ingest Commit Interval加载行为咨询
Snowpipe Auto Ingest 加载行为说明
Snowpipe 既不会将单文件内的300万条记录一次性全部加载完成后统一提交,也不会按照10k、20k这类固定行数阈值逐批递增加载提交,实际运行逻辑如下:
- 触发粒度以文件为基本单位:Auto Ingest模式依赖云存储侧的对象创建事件通知触发加载任务,检测到stage中有新文件上传后,会将待加载文件纳入调度队列,不会按文件内的行数预先切固定大小的加载批次。
- 单大文件自动分片并行加载:如果300万条记录存储在单个超大文件中,Snowpipe内部会自动将文件拆分为多个16MB~256MB大小的分片,分配多组计算资源并行加载。分片大小没有固定的行数对应规则,会根据单条记录的平均长度、当前服务负载动态调整,不存在固定10k、20k逐批递增的加载规则。
- 分片级独立事务提交:每个分片加载完成后会独立触发事务提交,对应分片的数据写入目标表后立刻对查询可见,不需要等待整个文件的300万条记录全部加载完成。你在加载过程中查询目标表会看到数据量呈阶梯式上涨,但每个阶梯对应的行数不是固定值,和分片实际包含的记录数直接相关。
实践提示:如果需要更稳定可控的加载批次、更高的加载效率,不建议将300万条记录打包为单个大文件上传到stage,最好提前在数据上传阶段将文件拆分为100MB~200MB左右的压缩文件,能大幅降低单文件分片调度的开销,减少加载延迟波动。
内容的提问来源于stack exchange,提问作者rjain550
相关产品推荐
相关产品推荐

