彩票走势图

如何使用Altova MapForce实现验证数据转换

翻译|使用教程|编辑:况鱼杰|2021-03-04 13:40:23.650|阅读 438 次

概述:软件开发人员和其他数据专业人员经常需要将数据从一种格式转换为另一种格式。这些转换可以是简单的一对一转换,也可能需要更复杂的操作。例如,将平面CSV文件导入数据库时必须生成关系,否则可能需要为目标拆分源数据,如全名与名字,名字,中间,姓氏和可选后缀的区别。验证数据转换对于防止数据丢失或损坏至关重要。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

Altova MapForce是屡获殊荣的图形数据映射工具,可进行任意转换和集成,其功能包括轻松地将二进制对象与所有流行的关系数据库进行数据映射。可以映射诸如图像,PDF文件,视频文件或任何其他二进制数据的数据。

点击立即下载最新版Altova MapForce


软件开发人员和其他数据专业人员经常需要将数据从一种格式转换为另一种格式。这些转换可以是简单的一对一转换,也可能需要更复杂的操作。例如,将平面CSV文件导入数据库时必须生成关系,否则可能需要为目标拆分源数据,如全名与名字,名字,中间,姓氏和可选后缀的区别。验证数据转换对于防止数据丢失或损坏至关重要。

MapForce包含一个功能强大的交互式数据映射调试器,可以轻松跟踪和验证此转换。让我们看一下它是如何工作的。


这是数据映射中的用户函数calc-local-time的视图:


该函数接受dt_txt(这是日期和时间的字符串值,格式为2020-02-22 18:00:00),以及timezone的数值,即相对于GMT的预测位置的偏移量(以秒为单位)。 ;

函数的输出映射到Excel电子表格的A列。在电子表格中,列A的格式定义为日期,指定的格式包括时间,如5/20/20 4:00 PM。 

双击用户函数的标题将其展开以显示各个操作:


两个输入值在右侧,最后一个输出为A的输出在最左侧。简单地讲,该函数将时区中的秒数添加到dt_txt日期和时间以计算本地时间。MapForce包括一个内置的datetime-add函数,该函数执行此操作,如上图所示,位于输出值A的左侧。从Web服务接收的输入值以不同的格式输入,并且必须调整为datetime-add函数的格式和语法。

使用MapForce调试器验证数据转换 

可以使用MapForce调试器来跟踪用户功能的步骤,以确保它给出了所需的结果。首先,将通过右键单击时区输入来设置调试断点:


将打开几个调试帮助器窗口,并继续执行映射,直到到达断点为止。断点处的处理后的值突出显示:


这里有几个步进选项可以继续执行。最小步长选项提供了最细致的执行视图。


该命令细分了一个步骤,通常每个连接都会停止两次:一次在其源产生值时停止,一次在其目标使用该值时停止。重复单击“最小步长”将继续执行映射,并允许我们确切地了解calc-local-time函数处理过程中发生的情况:


当继续逐步执行时,每个连接处的值都会添加到窗口中。 

内置的datetime-add函数需要第一个输入的datetime值和一个字符串值,该值指定要添加的时间段作为第二个值。在下面的图像中,继续逐步提高输出值的产生。突出显示的是datetime-add函数的输入和最终产生的结果:


秒的原始偏移值为28,800秒,等于八个小时。产生的结果比dt_txt参考时间晚八小时,因此输出有效。

考虑其他情况 

与GMT时间的偏差仅对GMT以东的位置为正。GMT以西的位置应具有负偏移量。换句话说,纽约位于伦敦以西,当地时间更早。北京位于格林尼治标准时间东部,当地时间较晚。 

对于时区偏移为负的情况,需要验证calc-local-time函数。 有几种方法可以做到这一点。输入的引用清单在GMT的某些位置,在GMT的西部。可以继续逐步执行,直到遇到时区为负的位置。


Web服务针对每个城市返回40个预测,因此遍历整个前四个城市将很繁琐。 

可以修改城市列表以在列表顶部插入一个来自西半球的新城市,也可以为测试案例创建一个新的输入文件。在许多情况下,这是一种合理的测试策略。 

或者,可以设置断点条件。如果可以将断点设置为仅在遇到的值为负时才暂停,则可以继续使用原始输入文件。这将是得出最终结论的最快方法。返回到数据映射,右键单击断点以修改其属性:


这将打开一个对话框,在其中设置属性以使断点成为条件。下图中显示了如果时区值为负,则暂停执行的条件:


现在可以在调试模式下重新执行映射。输入清单上位于格林尼治标准时间东部的前几个城市都将被处理。当遇到第一个负时区值时,将触发断点并暂停执行。


使用与上述相同的步进技术,可以跟踪calc-local-time函数处理时负值发生了什么。


-25,200秒的时区值转换为字符串。然后,内置的concat函数在开头和结尾添加字符,以为datetime-add函数构建持续时间字符串。 

添加负值与减法相同,但是此时持续时间的语法不太正确。负号(连字符)必须是持续时间字符串的第一个字符,因此replace函数将在字符串中搜索PT-,如果找到,则将其替换为-PT。 

25,200秒的值是七个小时。从2020-05-23T00:00:00的输入值中减去7小时等于2020-05-22T17:00:00或5:00 PM的5/33/2020。现在,已经验证了具有正负偏移量的情况下的用户功能。

 无论您是要验证数据转换的准确性还是跟踪意外结果,MapForce数据映射调试器都可以以前所未有的方式提供对数据集成和ETL项目的确切内部工作的深刻洞察。


为了实现更高的自动化生产,可以将MapForce映射部署到FlowForce Server并根据各种触发器执行。要开始您自己的数据映射,转换和转换项目,请下载一个免费的试用版,包括教程,帮助和更多示例!

如果您想要了解Altova MapForce的正版授权产品,可以点击在线客服>>


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP