span8
span4
嗨FME一代,
与其说是一周的问题,不如说是我在一些帖子中看到的共同主题。它们都与处理未知或需要动态构造的模式有关。
问)如何在FME 2019.1设置的属性名称出版/私有参数值?是否有可能呢?
问在这里。类似的问题问在这里(比较两个模式重复字段)和在这里(动态地创建从属性值列)
(一)所有这些问题的解决方案的概念。大多数时候,我们有一个固定的模式开始了:我们知道什么结构的源数据,我们知道我们想要的目标数据有什么结构。
但有时我们不要知道传入的模式将是什么,这会导致问题。我们不能预先定义的工作空间处理它,我们不知道如何定义目标数据结构。
因此,让我们来看看架构,看看如何解决其中的一些问题。
首先是理论部分。作者的图式可以来自以下四个地方:
手动(固定)定义是很容易的。转到写入器特性类型,然后手动输入所需的属性结构。
自动定义也容易。单击特性类型并将定义设置为Automatic。现在无论你在工作空间做了什么改变都会自动反映在输出模式中:
因此,当AreaCalculator创建ParkArea时,它会自动添加到输出模式中。但这仍然是一个固定的模式。FME只是让它更容易在工作空间中创建。比如,“我会添加ParkArea,这样你就不用手动操作了。”
数据集定义也很简单。这是最简单的动态方法。您只需指向一个数据集,实际上您告诉FME使输出属性结构与此相同。它很好,因为它甚至不需要相同的格式。比如,“我正在将这些数据写入Excel电子表格,我希望它的结构与Postgres中的表格相同。”
它是动态的,因为如果Postgres表更改了,那么下次运行工作区时,将使用新的表模式。惟一的困难是您必须确保源数据映射到新模式,但是您可以在FME之外使用查找表和工作空间中的SchemaMapper转换器来实现这一点。
最后一个选择是创建架构动态在工作区中。我们从特性中调用这个模式。你基本上用属性创建模式,就像这样:
当然,您可以从任何地方获得属性名称和类型:手动定义(如上面所示)或从文本文件读取(如下面所示),或者从任何地方。
总体而言,它确实有助于思考“模式”的为自己的独立的实体。但是,这如何帮助与用户的问题?
因此,主要的问题来自一个用户,他希望创建一个新属性,该属性的名称在运行时作为已发布的参数输入。这很简单。只需使用AttributeCreator,其中要创建的属性的名称是参数的值:
最让人困惑的是下一步该怎么做?为什么您看不到工作区或writer模式中公开的属性?
嗯,FME不能公开属性的原因很简单:它不知道您要在发布的参数中输入什么。您输入的值是一个未来的事件,FME不能预见未来!
但它其实并不重要,你不能看到它。首先,在工作区中,你可以做的是继续使用引用该参数。就像在测试变压器你可以测试:
@value($(NAME))= 1
......我认为这将正常工作。
其次,属性是存在的,你是否能看到这一点。所有你需要做的是确保它被添加到输出模式。
例如,如果你是动态定义输出模式,通过指向一个数据集(说一个Postgres表),那么你只需要确保Postgres的表包含相同的名称作为参数输入的属性。
或者,更加动态,您将使用属性,因为你可以设置的名称实际上是参数的值在工作区内的架构:
现在,该属性将被写入到输出模式。这只是考虑的情况下,“什么是架构?” and "how do I create my schema?"
知道了,那其他两个问题...
让我们有关的问题从进入的数据动态地创建属性。这原来是很简单的,由于FME枢纽变压器我不知道叫属性转换程序。我可以用我自己这个星期早些时候,要是我早知道!
但问题 - 当然 - 是怎么写的这些数据。你不能手动定义模式,因为你不知道传入的属性。这样@virtualcitymatt指出 - 你犯了一个动态转换。甚至还有另一个FME枢纽变压器 - 中计划者- 将设置的模式会自动为您的属性!
最后一个问题我的标签,更多的是如何判断传入特性的属性模式。还记得我说过你要想到架构作为一个独立的实体来的数据?因此,而不是使用阅读器来读取数据,您可以使用阅读器来阅读的模式来代替。
如@大卫响应,有一个叫做架构(任何格式),将读取的数据集的架构格式:
这就像一个普通的格式文件阅读器,但是对于架构,而不是数据。请注意,进入架构存储在属性相同的格式,你可以创建动态写的模式。所以你可以读一个模式,变换它在你的工作空间里面想的任何方式,然后使用该修正模式作为结构用写数据。
有一对夫妇的事情,我想你这个职位需要。
请记住,FME不能在工作区中暴露的属性,如果你不知道它是什么。但是该属性仍然存在,即使它从视图中隐藏。
同样,FME不能在工作区中定义一个模式,如果你不知道它的将是。但你能告诉FME等到运行时间做出决定,通过使用动态工作流。亚搏在线
两者结合起来,你有知识,使非常灵活和强大的工作空间确实如此。
如果你不能完全达到速度的动态工作流,对于一个完整的运行下来,我建议亚搏在线动态工作流教程亚搏在线我们已经在这个网站。它会在某个时候进来是非常有用的,相信我!
像往常一样,有这个星期,我注意到一些其他问题...
尼斯的相关信息!
链接到FME集线器似乎死了,但:https://hub.亚搏在线safe.com/publishers/virtualcitymatt/transformers/rickroller网站
就是这样。我不知道那里发生了什么。但我认为它只是使用了新添加的webpageogener—它仍然存在:https://hub.亚搏在线safe.com/publishers/sigtil/transformers/webgeopener网站
所以试试这个,并在里面使用这个链接:https://www.youtube.com/watch?v=dQw4w9WgXcQ!
©2019安全亚搏在线软件公司法律