笔记-Lecture 04: Data Management
This note is hosted on Notion: Lecture 04: Data Management
views
| comments
重点:
- 在探索数据上花的事件要比你“想花的时间”多10倍
- 修复/新增/增强数据是提升性能的最佳方式
- 保持简单
Source

Filesystem
Latency numbers you should know:
| 把L1/L2缓存访问看做1s | ||
|---|---|---|
| (Seconds) | 1ns(as 1s) - L1/L2 Cache Access | 100ns(~ 1.5m) - RAM Access |
| (Days) | 250μs(~ 2.5days) - Read 1MB from RAM | |
| (Weeks) | 1ms(~ 1.5 weeks) - Seek + Read 1MB from SATA SSD | |
| (Months) | 20ms(~ 7 months) - Seek + Read 1MB from spinning disk | |
| (Years) | 150ms(~ 5years) - Send packet California → Netherlands → California |
本地数据格式
- 二进制文件(images, audio): 使用标准格式(e.g. JPEG)
- 对于元数据(labels), 表格数据, 文本数据: 压缩成json或txt文件或使用parquet表格格式。
Object Storage(对象存储)
- 在文件系统之上的一种API
- 基本单元是“对象”。通常是二进制数据:图片、音频文件等
- 版本控制(versioning),冗余(redundancy)等机制可以内置在服务中
- 不如本地存储快,但在云环境速度足够快
Database(数据库)
- 用于结构化数据的持久、快速、可扩展的存储与检索
- Mental Model: 所有东西实际上都在RAM里,但软件确保所有内容都会持久化到磁盘
- 不适合二进制数据!应当存对象存储的URL
- 大多数情况下,PostgreSQL是正确选择;支持非结构化Json
- SQLite对象项目完全够用
Data WareHouse

OLAPs vs OLDPs
| OLAPs | OLDPs | |
|---|---|---|
| 列优先 | 行有限 | |
| 处理像“mean length of comment text over last 30 days”的查询 | 处理像”选择给定用户的所有评论“的查询 |
Data Lake

Exploration
SQL, DataFrame加速
Pandas, DASK, RAPIDS
Processing
Task Dependencies
Airflow
Distributing work
Rrefect
Dagster
Feature Store
Labeling
Label Studio
Versioning
- Level 0
- 数据只存在于文件系统、S3或数据库中,没有版本控制
- Problem:部署时如果数据没有版本控制,实际上模型也没有版本控制
- Level 1
- 每次训练将数据快照并存储在某个地方
- 可行,但是版本控制困难
- Level 2
- 像代码一样版本控制数据,Git-LFS
- Level 3
- DVC
在 Notion 参与讨论
本文托管在 Notion,欢迎到原文评论区留言交流