热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
生成表中特定列的数据规范化规则,提供技术性解决方案。
以下为 orders 表列 order_date 的数据规范化规则。目标是确保该字段在不同来源、时区和格式下被一致地解析、转换并存储为标准业务日期,以支持分区、聚合及报表一致性。
一、语义定义
二、数据类型与存储标准
三、输入接受与解析规则
四、归一化转换流程
五、校验与约束
六、异常与缺失处理
七、幂等性与可追溯性
八、示例转换
九、数据质量监控
十、输出标准
以下为表 kpi_daily 的列 amount 的数据规范化规则,以确保跨源数据一致、可比和可审计。规则适用于货币型、比例型及其他数值型 KPI。
一、字段定义与目标标准
二、输入清洗与标准化流程
原始值解析
货币换算
比例/百分数处理
单位换算(非货币类)
聚合与去重
舍入与精度
三、取值规则与边界
四、时间与口径
五、校验与拒绝策略
六、示例约束与参考实现
列类型: ALTER TABLE kpi_daily ALTER COLUMN amount TYPE NUMERIC(20,6);
合法范围检查(示例值,可按业务调整): ALTER TABLE kpi_daily ADD CONSTRAINT chk_amount_range CHECK (amount IS NULL OR amount BETWEEN -1000000000000 AND 1000000000000);
比例型检查建议通过触发器/ETL校验(因同列存多类型不便用静态 CHECK),依据 kpi_type 元数据执行。
Python 伪实现(用于 ETL 前置清洗与规范化): from decimal import Decimal, ROUND_HALF_UP
def normalize_amount(raw_value: str, value_kind: str, # 'currency' | 'ratio' | 'count' currency: str = 'CNY', # 原始币种 fx_rate: Decimal = Decimal('1'), # src->CNY 当日汇率 unit_factor: Decimal = Decimal('1')) -> Decimal: if raw_value is None or str(raw_value).strip() == '': return None
s = str(raw_value).strip()
# 括号记负
negative = s.startswith('(') and s.endswith(')')
s = s.replace('(', '').replace(')', '')
# 去符号与分隔
for ch in [',', '¥', '$', 'USD', 'CNY', 'EUR', ' ']:
s = s.replace(ch, '')
percent = s.endswith('%')
if percent:
s = s[:-1]
# 解析数值
try:
v = Decimal(s)
except:
raise ValueError('invalid_number_format')
if negative:
v = -v
if value_kind == 'ratio':
# 百分号输入转小数
v = v / Decimal('100') if percent else v
if v < Decimal('0') or v > Decimal('1'):
raise ValueError('ratio_out_of_range')
elif value_kind == 'currency':
# 汇率换算到 CNY
v = (v * fx_rate)
elif value_kind == 'count':
# 单位换算
v = (v * unit_factor)
else:
raise ValueError('unsupported_value_kind')
# 最终入库舍入到 6 位
return v.quantize(Decimal('0.000001'), rounding=ROUND_HALF_UP)
七、审计与溯源
八、实施注意事项
以上规则旨在为 amount 列提供统一、可审计、可重现的规范化标准。根据具体 KPI 类型与业务边界可进一步细化数值范围与异常检测阈值。
以下为 dim_cust.cust_name 的数据规范化规则。目标是实现一致、可比、可检索的客户名称表示,用于维度建模和主数据管理,同时尽量保留对业务识别有意义的信息。
一、适用范围与目标
二、字段约束
三、通用规范化步骤(顺序执行)
四、企业/机构名称的附加规则
五、个人姓名的附加规则
六、质量校验与拒收规则
七、实现建议与示例
PySpark(推荐在 ETL 规范化阶段执行)
示例代码(精简版):
from pyspark.sql import functions as F from pyspark.sql.types import StringType import re, unicodedata
TITLES = {"先生","女士","小姐","太太","老师","博士","经理","总监","董事长","教授","同学"} LEGAL_SUFFIX_MAP = { "有限责任公司": "有限公司", "Co., Ltd.": "有限公司", "Ltd.": "有限公司", "Limited": "有限公司", "Inc.": "公司" # 如需更严格,保留原文并在辅助字段映射 }
def normalize_text(s): if s is None: return None # Unicode 归一化 s = unicodedata.normalize("NFKC", s) # 去控制字符与零宽 s = re.sub(r'[\u200B-\u200D\uFEFF]', '', s) # 零宽 s = ''.join(ch for ch in s if unicodedata.category(ch)[0] != 'C') # 空白统一 s = re.sub(r'\s+', ' ', s).strip() # 标点全角转半角与标准化 trans = str.maketrans({'(':'(', ')':')', ',':',', '/':'/', '-':'-', '—':'-', '–':'-'}) s = s.translate(trans) # 尾随标点去除 s = re.sub(r'[.,-&/]+$', '', s).strip() # 拉丁字母大写 s = re.sub(r'([A-Za-z])', lambda m: m.group(1).upper(), s) # 去除联系人等噪声 s = re.sub(r'((联系人|TEL|PHONE)[^)]*)', '', s, flags=re.I).strip() # 称谓清洗(首尾) for t in TITLES: s = re.sub(fr'^(?:{t})\s+', '', s) s = re.sub(fr'\s+{t}$', '', s) # 折叠多空格 s = re.sub(r'\s{2,}', ' ', s) return s or "UNKNOWN"
def normalize_enterprise(s): s = normalize_text(s) if s in (None, "UNKNOWN"): return s # 后缀映射(词典驱动) for k, v in LEGAL_SUFFIX_MAP.items(): s = re.sub(fr'{re.escape(k)}$', v, s, flags=re.I) # “分公司/支公司/分店/分处”统一(位于末尾或括注中) s = re.sub(r'(分公司|支公司|分店|分处)$', '分公司', s) s = re.sub(r'((分公司|支公司|分店|分处))', '(分公司)', s) # 再次清理空白 s = re.sub(r'\s{2,}', ' ', s).strip() return s or "UNKNOWN"
@F.udf(StringType()) def normalize_cust_name(name, cust_type): if cust_type and cust_type.lower() in ('enterprise','company','org','b2b'): return normalize_enterprise(name) return normalize_text(name)
df = df.withColumn("cust_name", normalize_cust_name(F.col("cust_name"), F.col("cust_type")))
SQL(PostgreSQL)要点
示例(简化): -- 需先 CREATE EXTENSION unaccent; UPDATE dim_cust SET cust_name = COALESCE(NULLIF( regexp_replace( -- 多空白折叠 regexp_replace( -- 去联系人噪声 regexp_replace( -- 全角标点到半角(示例) unaccent(trim(cust_name)), '(','('), ')', ')' ), '((联系人|TEL|PHONE)[^)]+)','' ), '\s+',' ' ), ''), 'UNKNOWN');
八、运维与治理
以上规则旨在在不丢失法律与业务识别信息的前提下,实现 cust_name 的一致化与可比性。建议在管道的标准化层统一执行,并保留原始值以支持追溯与精确匹配。
通过一条可复用的高效提示词,快速为“指定表-指定列”生成清晰、可落地的数据规范化规则:1)把零散命名、格式不统一、异常值等,转化为可执行的清洗标准;2)让非技术成员也能与“内置数据工程师”协作,缩短数据整理周期;3)支持多语言输出,帮助全球团队统一口径;4)可迭代复用,沉淀企业级字段标准,提升报表与分析的准确度;5)以更低成本替代大规模手工清洗,推动数据产品、BI与增长项目更快上线。
为指定表列快速生成规范化规则,统一日期、数值、文本格式,缩短清洗与上线时间。
在数据接入前先约定字段标准,提升报表准确率,减少手工修正与重复校验。
建立可审阅的规则文档与示例,推动部门统一标准,降低合规风险和数据口径分歧。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
免费获取高级提示词-优惠即将到期