moving data
Lightweight Python code to move data
仅仅将数据从 A 点移动到 B 点是没有意义的。 通常希望在将数据写入目标(ETL)之前或之后(ELT)应用转换。
DataOps全链路自动化
做的成本代价收益风险,不做,主要风险是什么?做了的成本-风险-收益
Data pipeline
异构数据处理
关键词: 来源去处
源地址 source 目标地址 destination
数据流 pipeline, 包含三个阶段或步骤three discrete steps : Extract Normalize Load
pipeline data and state
pipeline.run()
pipeline.extract(data)
pipeline.normalize()
pipeline.load()
源地址 @dlt.source
a list of resources
dlt.sources.sql_database
资源:A resource is an (optionally async) function that yields data.
parallel and async resources
resource.add_map resource.add_filter resource.add_yield_map
目标:destination
destination="filesystem"
状态:state
State
元数据:Schema ~/.dlt/pipelines/
dlt generates schemas from the data during the normalization process.
DLT(Data Load Tool)
data load tool (dlt) is an open source Python library that makes data loading easy
Jun 28, 2022 0.1.0rc4
Aug 29, 2024 0.5.4
Sep 16, 2024 1.0.0
Jul 17, 2025 1.14.1
Aug 5, 2025 1.15.0
ETL pipelines
_dlt_load_id _dlt_id
write_disposition="merge", replace append
merge primary_key="id",
使用装饰器 Use source decorator
@dlt.source
@dlt.resource(
大模型-新一代的操作系统
大模型正在承担操作系统的角色:成为新一代应用程序运行的平台 从底层模型 API 一直到面向用户的应用程序。
LLM 是一种基础设施,而不仅仅是另一个工具库
面向 AI 代理设计:为新一代“用户”提供文档和界面
构建具备权限控制与安全隔离的数据架构
Python 依赖注入框架
应对数据转换层
使用SQL来定义数据转换操作,将其组织成模型(models),并通过依赖关系来管理数据转换流程。
dbt支持模块化的设计和重用,可以将常用的转换逻辑封装成可复用的模型片段。
Data Pipelines
DLT(Data Load Tool): 构建可扩展的数据管道
数据清洗流程:
灵活、高效、强可拓展性的数据清洗流
更为完整的流程
从原始的 WARC 文件出发,提供了更加完整的数据 pipeline
扩展性更高、流程配置化
采用模块化方案,用户要自定义算法也只需继承原有函数,给定一个配置文件即可定义整个数据清洗流程
任务流程无感知
任务被打断重启之后,不会重复处理数据,无需额外异常处理。自动进行任务分配,能方便地进行水平扩容
速度更快
基于高速文件系统 3fs(高达 7TB/s 读取,500GB/s 写入),大大提高了文件处理的效率
质量清洗
01. 一个在高质量数据上训练好的打分器,用来对 tokenize 之后的数据进行困惑度打分
02. 过滤规则
过程
1.更快、更方便地处理数据, 为每一个 WET 文件生成了对应的 meta 文件,用于存储 WET 的信息摘要
meta 文件是 WET 的索引,通过更新 meta 中的内容,我们就可以实现对原始 WET 文件的修改、删除等操作。
生成文本的 minhash 用于去重,对于每一个文本,会生成一个 128 位的 int64 hash 值
2.内置了按行去重的功能
管道漂移(pipeline drift)”和数据偏差,
配置与代码分离(Separate Configuration from Code) 配置和敏感信息永远不要写在代码里。
松耦合与模块化组件(Loosely Coupled & Modular Components)
持续集成与部署(CI/CD)
对象存储
fsspec库将许多文件系统抽象为了统一的API
ossfs 能将阿里云对象存储服务OSS挂载成本地文件系统,方便用户像操作本地文件一样管理OSS数据
obsfs 是对象存储服务 (Object Storage Service,OBS)提供的一款基于FUSE的文件系统工具,用于将OBS并行文件系统挂载至Linux系统
FUSE框架 存在内核态与用户态切换,不适合高并发场景 obsfs适用于Linux操作系统
obsfs的运行环境依赖openssl-devel、fuse、fuse-devel等软件包
COSFS 工具,GooseFS-Lite 可提供更高的大文件读写速度,不受本地磁盘的性能限制。
Linux FUSE(Filesystem in Userspace)是一个允许用户在用户空间实现自定义文件系统的框架
Ubuntu libfuse-dev == CentOS fuse-devel
数据分析
数据存储层: 数据存储方式不同
数据分析层
数据缓存层: Alluxio是一个位于计算应用和存储之间的数据缓存层,将数据从存储层缓存到距离数据驱动型应用更近的位置从而能够更容易被访问
数据的权限管理较乱
任务应该逐步移交给 AI,而不是一开始就追求完全自动化 用 AI 的速度与规模去增强人类的判断与创造力
数据分析
零磁盘架构崛起: 基于S3等远程存储的架构成为主流,SlateDB、Apache HoraeDB等新系统原生支持 Diskless架构
以对象存储为核心设计理念 架构的简单和低存储成本
零磁盘架构(Zero-Disk Architecture)
轻量级分析处理能力
数据库彻底变为无状态
元信息存储 常见的选择是使用协调服务
数据存储 S3 MinIo
日志存储 日志存储的选型因差异化
例如:ETCD作为元信息存储,Kafka作为日志存储,S3/Minio作为主存储并配合本地内存/磁盘进行缓存
推动 消息中间件 的性能优化,还将对 AI 系统 和 数据库 的云原生
使用文件系统作为源并以 DuckDB 作为目标的新管道
参考
https://github.com/dlt-hub/dlt
https://dlthub.com/docs/walkthroughs/dispatch-to-multiple-tables
150T大数据warc检索系统低成本解决方案 https://zhuanlan.zhihu.com/p/1939097070666490860
数据架构的12法则(The 12-Factor Data Architecture):现代数据系统的 https://zhuanlan.zhihu.com/p/1916540671419982557
https://www.datacamp.com/tutorial/python-dlt
https://www.datacamp.com/tutorial/python-dependency-injection