西班牙
斯潘4
所以我有一个单独的工作空间来做这个…但它相当凌乱。基本上是读取源数据,但每个要素类只有一个要素。
这将为您提供一个要阅读的要素类列表。
然后你将列表按你想要的顺序排序,并将其推送到一个FeatureReader中。这将允许您读取该要素类的数据。
有两种设置。一种是过滤列表(featuretypefilter),并为每个要素类提供一个featurereader。另一种方法是不过滤列表,让on featurereader只读取fme_feature_type类(即读取此功能表示的类)。
第二种方法更整洁,但这意味着不能直接访问属性。
读取后,您将处理数据并使用FeatureWriter进行写入。唯一的限制是不能使用基于组的转换器,因为它会影响要素的顺序。
我在这里做了一个简短的视频演示:https://www.screencast.com/t/iKQL5CnZ
实际上,问题是你为什么要这么做。如果只是数据需要按一定的顺序写入,那么就可以轻松得多。此外,信息可以从一个要素类传递到另一个要素类(通过要素合并),这将更加容易。例如,您可以只“读取两个表,将信息从表1传递到表2,同时写入两个表”,而不是“读取表1、写入表1、读取表2以及从表1读取一些信息”
简而言之,如果你能说出为什么工作需要按这个顺序进行,也许我们可以建议一个更容易实现的解决方案。
好吧@Mark2At亚搏在线Safe也许我没有解释我为什么需要这个。
我在服务器上有一个表格形式的数据。我使用SQLCreator(postGIS)从服务器中提取数据,然后将其转换为空间形式,并根据需求填充属性。
我有另一个输入是集群(网格、没有属性信息)所有国家的优先级的基础上(P1, P2, P3, P4)形式的shapefile我下载使用S3从AWS下载(下载压缩文件,存储到本地(使用WorkspaceRunner这个)。一个国家可以有两个优先事项,即:或者P1或者P2 P2或者P3 P3或者P4。最后的优先事项有时可能是国家边界。因此,当所有区域都一次性运行时,边界信息将自动作为没有优先考虑边界的国家的输出写入。而且,要在204个国家运行工作台,跟踪错误和警告也有点复杂。
因此,基本上,如果我们需要一个国家一个国家地运行工作台(所有的优先级都在运行中),并将输出写入国家文件夹中的优先级文件夹中。
现在,我们使用FeatureReader/Writer,它太手动连接204个连接器。
共享基本的数据流。
好的,我很抱歉,但我做了一些可能不正确的假设。我以为您正在从地理数据库中读取数据,我还以为表2需要在表1完全完成之前才开始处理。但我在这里看不到。我看到它需要单独处理,但不是不能同时处理。如果我说错了请纠正,但是A国的结果并不影响B国,对吗?
因此,忽略AWS和SQL的复杂性,您所拥有的是一组形状文件和一个带有属性的多边形,每个形状特性集需要覆盖一次属性。
实现这一目标有两种方法。
首先,你可以一次读取所有的形状数据,读取多边形特征,然后使用Group-By设置在AreaOnAreaOverlayer中处理它们。每个形状数据集可能都需要一个多边形特性,每个多边形都有一个与形状数据匹配的名称。这样,组将只覆盖每个形状文件对其多边形;不是shapefile上的shapefile。然后,你需要写输出。您可以设置我们所说的扇出要做到这一点。扇出,您可以指定写到哪个文件夹中。所以,你必须优先级的属性,以及一个与国家,你写到C:\ MyData的\
这种方法适合于小数据量,但如果每个Shape文件是非常大的(比如说超过200文件每10MB或更高)。
第二种方法是对每个文件一个独立的进程。在那里,我会通常有一个文件/目录/路径读卡器控制工作区读取Shape文件的列表。然后,我通过每个文件名工人的工作空间,其内容将shapefile供应和覆盖其对多边形。该WorkspaceRunner工作正常那里。然后,像以前一样,你可以使用一个扇出将数据写入正确的文件夹。
在第二种情况下,你也可以发布/传中,国家的名称为日志文件名中使用。这样,你得到每个国家的日志文件。否则,每次运行工作区时,它可能覆盖相同的日志文件。
我希望这有帮助。在AWS和SQL部分肯定会使问题更加复杂一点了。虽然我们可以帮助这里,如果本地认证的FME的合作伙伴能够帮助它可能是有看头。亚搏在线安全不提供咨询服务,但我们的合作伙伴做。显然有可能会涉及到费用,但其他方面会更容易(更容易在私下与他们分享你的工作空间,例如)。在网上查询了合作伙伴页面在:https://www.亚搏在线safe.com/partners/
@tim_wood以下内容:“如果你的所有要素类型都来自同一个读卡器来了,它们被读入要素类型名称的字母顺序” -我不确定。实际上,我不知道哪个ft-fme先读,但我从来没有注意到字母顺序。
据我所知,德万希望第二本《金融时报》在第一本书写完后开始阅读。您可以使用featurereader和featurewriter的组合,但是如果有很多featuretype,那么它可能是一个非常长的串联变压器组合链。
我将prever 2-工作区的解决方案:使用SchemaReader并使用“等待作业完成” -option并且在扇出写入传入FeatureTypes第二工作区发送所述FT到WorkspaceRunner或它们过滤到所述的第一工作区 appropriate Writer-FT.
嗨@ThomasAtAxmann和@tim_wood对你的建议。
这正是featurereader的问题,因为我有一个很长的列表,如果FTs,我也不确定我们是否可以控制一个接一个的数据流。
“据我了解,有得玩希望第二FT开始读,当第一个是写作彻底完蛋了。”这正是我想要的。
我对WorkspaceRunner有了一些了解,我也试过了。我面临的问题是第一个工作台的输出(来自WorkspaceRunner)没有填充属性。你能再解释一下吗?或者,如果您已经有了一个示例工作区,这可能会有所帮助。谢谢。
我大概有FeatureReaders和FeatureWriters去。
另一选择是将含有2个WorkspaceRunners父工作区,所述第一运行一个工作区读取和写入所述第一要素类,所述第二运行一个工作区,它读取所述第一要素类并写入第二位。
@ThomasAtAxmann我想如果你的所有要素类型都来自同一个读卡器来了,就在要素类型名称的字母顺序读取。但是你可以用不同的读者阅读,那么你可以通过在导航窗格中向上或向下移动的读者控制命令。但它仍然不会提供您想要的解决方案。
还有,如果你想拥抱一切,直到所有的数据已被处理到该点的FeatureHolder变压器。
另外要注意的是GDB层的潜在锁定。我不知道你正在使用什么格式,但有时候可以锁定问题时,来自同一数据的阅读你写。如果使用ESRI FGDBs,您可能需要使用Open API读/写和ESRI一个需要安装ArcGIS的测试。因为我用用并行处理,使工作区4中同时运行一个WorkspaceRunner我最近曾与SQL Server中的死锁问题。我看着几个选项来解决这个包括使用SQL之前和孩子工作区已经运行之后更改数据库设置。
@tim_wood我想我可以阅读的zip文件,但有一个问题与工作区选手通过第二数据集的第一个完成之后。如果我使用FeatureReader /写卡器,然后连接204点的数据集未免太人工干预。此外,WorkspaceRunner不发扬父工作空间的属性。你已经有这个或文档现有WB?
?2019安全亚搏在线软件公司|合法的