“是否可以基于类型(日期时间)公开属性”的注释和答案 https://knowledge.亚搏在线safe.com/questions/24116/is-there-a-way-to-expose-attributes-based-on-type.html 问题“是否有一种基于类型(日期时间)公开属性的方法”的最新注释和答案 Daleatsafe对Daleat亚搏在线safe评论的评论 https://knowledge.亚搏在线safe.com/comments/25073/view.html网站

非常令人印象深刻。我们将讨论如何使这项工作更容易完成,我喜欢高桥的建议。

FRI,2016年3月25日格林尼治标准时间18:20:53 达莱特保险箱亚搏在线
高知对高知答案的评论 https://knowledge.亚搏在线safe.com/comments/25058/view.html网站

您好!DaleAtS亚搏在线tabess,感谢分享这项技术。我认为它通常适用于根据属性的本地数据类型来操作属性,而不仅仅是针对日期。然而,似乎attributeExploder会导致性能下降,特别是在特性属性数量很大的情况下。

我想用TCL来解决@ MARK1空间的问题,这样地:b15575-dynamicdatatereformat-tcl.zip(B15575-dynamicdatatereformat-tcl.zip)

这个概念和戴尔的工作区是一样的。我没有发布它,因为我发现Mark的Python解决方案更通用、更灵活。

我认为如果将这些能力添加到FME中,就更容易实现这个概念。

  • 提取符合用户指定条件(数据类型,正则表达式,前缀等)。以逗号分隔的字符串或列表。
  • 接受存储属性名(csv或list)的属性的参数类型。如果dateformater等转换器可以通过此类型参数动态配置目标属性,实施起来要简单得多。

@马尔科,这一个:B15575-dynamicDataTereformat.zip(B15575-dynamicDataTereformat.zip)与2015.1.3+合作。这和戴尔的不同,但概念是一样的。供参考

FRI,2016年3月25日06:24:59格林尼治标准时间 高桥
马尔可夫对马尔可夫答案的评论 https://knowledge.亚搏在线safe.com/comments/25005/view.html网站

非常感谢DaleAtS亚搏在线tabess.遗憾的是,我们仍然在2015.1上,因为在2016.0.1上读取SQL Server时出错,我将在2016.1到来时再次测试。

我将研究这个问题,看看是否可以将它合并到我的工作台中。

谢谢。

清华大学,2016年3月24日12:03:34格林尼治标准时间 马尔科
马克·帕蒂亚尔对马克·帕蒂亚尔答案的评论 https://knowledge.亚搏在线safe.com/comments/24998/view.html网站

昨天下午,我在想一些事情,刚刚尝试了我的版本,但无法将值输入到日期格式化程序的“日期属性”中。看起来像DaleAtS亚搏在线tabess爆炸数据的方法就是这样。需要直接将变量提取到变压器中的选项!!;-)

清华大学,2016年3月24日07:13:02格林尼治标准时间 MARK1空间
Daleatsafe回答亚搏在线 https://knowledge.亚搏在线safe.com/answers/24997/view.html网站

很有趣的问题。

它的根本是……当我们设计工作空间时所知道的,当我们运行它时我们知道什么。

当我们设计时,如果它是一个不知道模式的动态工作区,然后根据定义,我们不知道模式。所以属性公开是不可能的。我们能做的最好的就是在attributeexposer上给你一个“导入”选项,在这里你可以将你想象中遇到的所有可能的输入都输入进去,然后从中选择你想要“暴露”的,这样你就可以和他们一起工作了。但遗憾的是,你现在没有一个动态的工作空间,因为任何以前看不到的数据都可能没有公开您想要的内容。

因此,让我们来探索如何用2016年的FME很好地解决这个问题。

我将附加一个工作区——通过适当地配置FeatureReader来提供任何具有日期时间模式的数据。我们将“管理”这些日期时间字段,非常有效,在工作流结束时。亚搏在线只保留所有其他属性。并且永远不会“静态地”了解工作区中的输入数据。

诀窍是a)我们知道模式总是首先从特征读取者(这是根据设计,对于这样的事情)。b)我们有“全局变量”,我们可以设置和重置,可以从一个“流”到另一个“流”进行通信。c)我们有一个attributeExploder,可以将每个属性的特性分解为一个特性,所以我们可以一般地处理属性。d)我们可以用聚合器重新组装东西。

我在最后加了一个减速器,只是为了证明没有阻塞。

享受。我期待反馈。@ MARK2A亚搏在线TSAFE--我们可能需要一篇关于这种技术的知识型文章。@ MARK1空间 @马尔科 高桥 埃里克詹 @戴维德你的评论特别受欢迎。动态文档格式.fmw

清华大学,2016年3月24日06:53:57格林尼治标准时间 达莱特保险箱亚搏在线
马可对马可评论的评论 https://knowledge.亚搏在线safe.com/comments/24966/view.html网站

我不确定一个普通的读者会因为桌子很大而工作。由于基础设施没有提供搜索范围,因此无法限制进入时的区域搜索。所以读者必须阅读整个表格,英国广域数据!功能在FeatureReader之前生成,以便使用查找将数据搜索限制到指定区域。

除非python可以从模式阅读器工作?另一个问题是,一个工作区可能打开数百个不同的数据集,这取决于发送的参数,所以它变得非常复杂。我认为硬编码方式可能很枯燥,但从长远来看可能更容易选择?

在知识中心,有几个与模式和特性阅读器相关的问题/想法。我希望SAFE亚搏在线推出更先进的暴露变压器,允许暴露所有,或按类型等。

结婚,2016年3月23日格林尼治标准时间15:36:27 马尔科
马克·帕蒂亚尔对马克·帕蒂亚尔评论的评论 https://knowledge.亚搏在线safe.com/comments/24965/view.html网站

在python脚本化的私有参数和标准阅读器中使用它不是FeatureReader,而是应该如果将其配置为读取相同的数据,则可以工作。如果它是从数据库发出的,那么它应该是可行的。

结婚,2016年3月23日15:18:42格林尼治标准时间 MARK1空间
马尔可夫对马尔可夫答案的评论 https://knowledge.亚搏在线safe.com/comments/24955/view.html网站

夏威夷群岛@ MARK1空间,谢谢你的回复和提示。从第一眼看上去是个很好的解决方案,尽管您使用的是Python启动脚本还是调用方?我不确定在通用模式下使用功能阅读器时启动是否有效?

谢谢你的答复,我会调查的。目前,我只是将已知的值公开为SQL日期字段,对sys表的快速SQL查询显示了哪些表,一旦在FeatureReader中曝光,我就可以在DateFormatter中选择它们。它不是很优雅,但很实用!

结婚,2016年3月23日14:15:36格林尼治标准时间 马尔科
由Mark spatial回答 https://knowledge.亚搏在线safe.com/answers/24952/view.html网站

@马尔科你解决了吗?如果不是的话,我本周也会做一些类似的事情,这会有所帮助。

它不会公开字段,但会创建一个参数,我可以在dateformater转换器中使用该参数。对于您来说,问题可能是如果输入文件的格式不同,它可能会变得笨拙。在我的示例中,我还可以检测到日期属性,因为它是已知的数据类型。例如,如果您正在读取一个csv,这不会有帮助,因为数据类型未知。

https://knowledge.亚搏在线safe.com/questions/24743/format-…

结婚,2016年3月23日13:08:01格林尼治标准时间 MARK1空间
马可对马可评论的评论 https://knowledge.亚搏在线safe.com/comments/24166/view.html网站

我意识到这与在FeatureReader中公开属性,然后在链中使用日期格式化程序没有什么不同,因为我需要知道该字段来替换“我的日期属性”。在所有数据集中,可能有近数百个日期字段,所有数据集都具有不同的名称。对于Suggestion,我开始认为唯一的方法就是通过将每个属性“硬编码”到工作区来公开它,不是最好的解决方案,但我认为唯一一个有效的解决方案是不会引起爆炸性头痛。

FRI,2016年3月4日09:20:05格林尼治标准时间 马尔科
Marko评论 https://knowledge.亚搏在线safe.com/comments/24165/view.html网站

感谢您的所有建议和帮助。我将从尝试用JSontemplater更改JSON开始,谢谢@戴维德.

似乎批量属性公开器真的很有帮助,并且已经有很多关于这个主题的想法。

FRI,2016年3月4日09:11:16格林尼治标准时间 马尔科
马尔可夫对马尔可夫答案的评论 https://knowledge.亚搏在线safe.com/comments/24163/view.html网站

谢谢马克,我试过在FeatureReader没有模式端口时重新分解属性,让我头疼!所以我很高兴他们在2015年1月加入港口。我想我会先尝试一下jContemplater,然后再与列表和爆炸器搏斗!

FRI,2016年3月4日09:05:50格林尼治标准时间 马尔科
马尔可夫对马尔可夫答案的评论 https://knowledge.亚搏在线safe.com/comments/24162/view.html网站

谢谢你的建议,它是一个非常复杂的工作区,必须快速运行,我担心添加模式阅读器会使事情更加复杂。有许多数据集通过一个功能阅读器流动,因此进行另一次合并可能会进一步减慢速度。谢谢你的建议,不过我会调查的。

FRI,2016年3月4日09:03:35格林尼治标准时间 马尔科
马尔可夫对马尔可夫答案的评论 https://knowledge.亚搏在线safe.com/comments/24161/view.html网站

我会调查的谢谢你,

FRI,2016年3月4日09:00:18格林尼治标准时间 马尔科
马尔可夫对马尔可夫答案的评论 https://knowledge.亚搏在线safe.com/comments/24160/view.html网站

现在已经有一些关于批量属性公开器思想的主题,我认为这将非常有用。有时必须使用来自功能阅读器的模式端口是有限制的,一个暴露所有变压器将是惊人的!

FRI,2016年3月4日08:59:46格林尼治标准时间 马尔科
Erik_Jan回答 https://knowledge.亚搏在线safe.com/answers/24128/view.html网站

你能从这个主题中提出一个想法吗?

我希望BulkAttributeExposer具有使用通配符或按数据类型公开的选项。

清华大学,2016年3月3日格林尼治标准时间17:39:42 埃里克詹
按标记2回答亚搏在线 https://knowledge.亚搏在线safe.com/answers/24127/view.html网站

如果没有某种脚本,我看不出你怎么能做到这一点。attributeExploder和listconnator可能会为您提供属性名列表。然后将日期格式设置工具复制/粘贴到文本编辑器中,您将看到底层脚本,您可以在TclCaller中重新创建这些脚本,并适应您的需要。我就是这样开始的。希望它有帮助!

作记号

清华大学,2016年3月3日格林威治标准时间17:34:56 MARK2AT亚搏在线SAFE
大卫·R回答 https://knowledge.亚搏在线safe.com/answers/24118/view.html网站

您可以在JSontemplater中键入将属性强制转换为字符串,如果这对你有帮助:

“updated_at”:xs:string(fme:get attribute(“my_date_attribute”))

否则,可以使用pythoncaller循环所有传入属性,并将它们重新创建为字符串。

戴维

清华大学,2016年3月3日16:10:46格林尼治标准时间 戴维德
GIO的回答 https://knowledge.亚搏在线safe.com/answers/24117/view.html网站

你可以使用一个模式阅读器,通过测试仪选择日期类型属性。

然后对数据进行合并以选择要重新格式化的数据。

attributeExploder也可以用于此。

清华大学,2016年3月3日16:09:23格林尼治标准时间 吉奥