【发布时间】:2010-12-25 05:25:28
【问题描述】:
我希望您能帮助找到一个问题的答案,该问题将成为工作中反复出现的主题。这涉及将 RDBMS 表中的数据非规范化为具有跨列重复组(共享域和含义)的平面文件格式。不幸的是,这是不可避免的。
这是我需要的一个非常简化的转换示例:
表 A 表 B ------------------- 1 -> 许多 --------------- - A_KEY FIELD_A B_KEY A_KEY FIELD_B A_KEY_01 A_VALUE_01 B_KEY_01 A_KEY_01 B_VALUE_01 A_KEY_02 A_VALUE_02 B_KEY_02 A_KEY_01 B_VALUE_02 B_KEY_03 A_KEY_02 B_VALUE_03这将变成:
A_KEY FIELD_A B_KEY1 FIELD_B1 B_KEY2 FIELD_B2 A_KEY_01 A_VALUE_01 B_KEY_01 B_VALUE_01 B_KEY_02 B_VALUE_02 A_KEY_02 A_VALUE_02 B_KEY_03 B_VALUE_03TABLE A 中的每个条目将在输出平面文件中有一行,TABLE B 中的每个相关字段有一列。对于从TABLE B 获取的字段,输出文件中的列可以具有空值。
我意识到这将创建一个非常宽的文件,但这是一个要求。我看过 MapForce 和 Apatar,但我认为这个问题太离奇或者我无法正确使用它们。
我的问题:是否已经有一种工具可以做到这一点,还是我应该从头开发一个(我不想重新发明轮子)?
【问题讨论】:
-
这是标准的“表中的行到结果中的列”的问题吗?这并不奇怪,这很常见。在 SO 和 Google 上搜索“表行到结果列”。根据您阅读的内容,用任何具体问题更新此内容。
-
谢谢,我环顾四周并没有发现同样的问题 - 我可能只是没有让自己说清楚。我会考虑如何让这个问题的微妙之处更加明显。
标签: rdbms flat-file denormalization