专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
OSC开源社区  ·  使用DeepSeek拯救数据中台 ·  昨天  
OSC开源社区  ·  Java玩转MCP:手把手教你打造Git ... ·  3 天前  
程序员小灰  ·  小灰的DeepSeek星球,马上涨价! ·  3 天前  
程序员小灰  ·  清华+北大《DeepSeek学习手册》(全9册) ·  4 天前  
51好读  ›  专栏  ›  OSC开源社区

使用DeepSeek拯救数据中台

OSC开源社区  · 公众号  · 程序员  · 2025-03-19 17:00

正文

OSCHINA

↑点击蓝字 关注我们

在数字化转型浪潮中,数据中台作为企业核心资产的“枢纽站”,却长期面临“建而难用”的尴尬境地 —— 业务团队抱怨数据获取门槛高、技术团队困于复杂的数据治理任务,如何打通数据价值落地的“最后一公里”始终是行业痛点。

PowerData 社区主理人李奇峰给出了一个充满技术想象力的答案:通过深度结合 DeepSeek 大模型的逻辑推理与结构化数据处理能力,重构数据中台的技术栈。
3 月 22 日,PowerData 社区主理人李奇峰将出席 OSC 源创会南京站,并发表《使用 DeepSeek 拯救数据中台》主题分享 ,探讨如何借助大模型通用化与生成式的数据处理能力,结合数据中台中的落地痛难点,对其进行针对性的优化改造。
在活动正式开始前,我们也和李奇峰聊了聊一些“入门级”问题,感兴趣的开发者可周六到活动现场,与李奇峰交流探讨关于数据中台的建设问题。

报名链接: https://www.oschina.net/event/2423811


OSCHINA: 在众多大模型中为何选择 DeepSeek 作为数据中台改造的核心技术?与其他开源模型相比,DeepSeek 在数据处理场景下有哪些优势?

李奇峰: 我作为一个数据中台的从业者,核心诉求还是提升数据中台本身的能力。对于大模型的了解并不深入,其只是我的一个工具而已。所以从工具的属性来说,我选择 deepseek 主要有以下几点原因:

成本:无论是训练成本、还是推理成本,相较于其他模型都有显著降低。同时支持国产化硬件,在合规性方面也有保证。

热度:在风口到来的时候,不说乘风而飞,但是至少还是需要蹭一下的。

能力:DeepSeek R1 是 LMSYS Chinese 榜单最强的 from China 的模型,V3 是上面榜单中开源的最强非 Reasoner 模型,基础能力优越。同时相较于其他模型,DeepSeek 在逻辑推理 + 结构化数据解析处理的能力优秀,同时其支持的上下文窗口较大,在数据血缘解析、数据分类分级、数据质量治理等任务中,其准确性较其他模型都有显著提升。

OSCHINA: 开发者最关心的部署成本问题:在私有化部署场景下,DeepSeek 模型针对数据中台做了哪些轻量化改造?是否支持量化压缩后的模型在常规 GPU 服务器集群运行?

李奇峰: Deepseek 不会为企业应用场景训练各种量化模型的,市面上的量化模型都是社区和开发者上传的。如果为了降低部署成本,采购算力服务器之前先测试各个量化模型的能力能否满足应用场景,确定好使用哪版量化模型后,根据显存去采购性价比最高算力服务器,推理服务器建议买 Nvdia 游戏卡。

OSCHINA: 能否用具体代码片段说明 DeepSeek 如何与数据中台组件集成?例如如何通过 API 调用实现“自然语言转数据服务接口”这类典型场景,过程中需要哪些中间件做适配?

李奇峰: 下面是一个非常简单的通过大模型进行数据自动标注的代码:

import openai
import pandas as pd
import json
from typing import List, Dict

class MetadataAutoTagger:
def __init__(self, api_key: str, business_context: str):
self.client = openai.OpenAI(api_key=api_key)
self.business_context = business_context # 公司业务背景说明

def generate_prompt(self, table_name: str, columns: List[str]) -> str:
"""构造大模型提示词"""
return f"""
# 任务说明
根据提供的元数据和业务背景,生成数据资产的业务标注信息,要求:
1. 业务名称:体现数据在业务中的核心作用
2. 业务类型:交易型/分析型/主数据/日志型...
3. 业务实体:对应业务对象(客户/订单/产品...)
4. 分类分级:按公司数据分类分级标准
5. 字段说明:用业务语言解释字段含义

# 业务背景
{self.business_context}

# 待标注元数据
表名:{table_name}
字段列表:{', '.join(columns)}

请用JSON格式返回结果,结构如下:
{{
"table_name": "{table_name}",
"business_name": "",
"business_type": "",
"business_entity": "",
"data_classification": "",
"columns": {{
"column1": "业务说明",
"column2": "业务说明"
}}
}}
"""


def tag_metadata(self, metadata_df: pd.DataFrame) -> pd.DataFrame:
"""批量处理元数据"""
results = []
for _, row in metadata_df.iterrows():
response = self._call_llm(row['table_name'], row['columns'])
if response:
results.append(response)
return pd.DataFrame(results)

def _call_llm(self, table_name: str, columns: List[str]) -> Dict:
"""调用大模型API"""
try:
prompt = self.generate_prompt(table_name, columns)
response = self.client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.2,
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
except Exception as e:
print(f"Error processing {table_name}: {str(e)}")
return None

# 示例用法
if __name__ == "__main__":
# 初始化配置
config = {
"api_key": "your_openai_key",
"business_context": "某电商公司,主要业务包含商品交易、用户画像、订单履约等..."
}

# 示例元数据(实际从数据库或文件读取)
sample_data = {
"table_name": ["user_info", "order_detail"],
"columns": [
["user_id", "registration_date", "last_login"],
["order_id", "product_sku", "payment_amount"]
]
}
metadata_df = pd.DataFrame(sample_data)

# 执行自动标注
tagger = MetadataAutoTagger(**config)
result_df = tagger.tag_metadata(metadata_df)

# 保存结果
result_df.to_csv("tagged_metadata.csv", index=False)
print("标注结果示例:")
print(result_df.head())
典型输出结果如下:
{
"table_name": "user_info",
"business_name": "用户基本信息表",
"business_type": "主数据",
"business_entity": "用户",
"data_classification": "PII/LEVEL-2",
"columns": {
"user_id": "用户唯一标识符,用于跨系统用户识别",
"registration_date": "用户注册电商平台的具体日期",
"last_login": "记录用户最近一次登录平台的时间"
}
}

OSCHINA: 在处理非结构化数据场景中(如日志解析 / 图片 OCR),DeepSeek 与传统 ETL 工具的结合方案是怎样的?
李奇峰:






请到「今天看啥」查看全文