源目标验证_转换逻辑

问题描述 投票:0回答:1

在源表中 客户 ID 性别 1M 2楼 3楼 4M 5楼

目标:

客户 ID 性别 1楼 2M 3M 4楼 5米

我有一个源表和目标表,源表中的性别转换为目标表 例如源中的 M 是目标中的 F 我如何验证从源表到目标表的转换逻辑 有人可以指导吗

尝试减查询但不确定转换条件

sql mysql etl
1个回答
0
投票

识别转换逻辑:了解决定性别如何从源表转换到目标表的规则或条件。根据您的示例,似乎存在“M”变为“F”的映射,反之亦然。 创建测试用例:生成一组测试用例来覆盖不同的场景。对于您的示例,您可以创建测试用例,其中源中的“M”变为目标中的“F”,反之亦然。 执行转换逻辑:将转换逻辑应用于源表以生成转换后的数据。 比较源数据和目标数据:将转换后的数据(来自步骤 3)与目标表进行比较,以确保它们根据转换逻辑匹配。 验证结果:检查转换后的数据是否与目标表匹配。如果是,则转换逻辑得到验证。如果不是,请找出任何差异并相应地调整转换逻辑。 下面是一个示例 SQL 查询,您可以使用它来将转换后的数据与目标表进行比较:

sql

SELECT 
    CASE 
        WHEN Gender = 'M' THEN 'F'
        WHEN Gender = 'F' THEN 'M'
        ELSE Gender
    END AS Transformed_Gender
FROM 
    Source_Table
ORDER BY 
    Customer_ID;

此查询将根据您提供的逻辑生成转换后的性别。然后,您可以将此查询的输出与目标表进行比较,以验证转换逻辑。

如果您使用 SQL,则可以使用 MINUS 查询来比较源表和目标表。例如:

sql

 (SELECT Customer_ID, Gender FROM Source_Table)
MINUS
(SELECT Customer_ID, Gender FROM Target_Table);

这将返回源表中不在目标表中的任何行,这可以帮助识别转换中的差异。如果该查询没有返回结果,则说明转换逻辑与目标表匹配。

© www.soinside.com 2019 - 2024. All rights reserved.