迁移 Alteryx 工作流
PlaidCloud 可将 Alteryx 工作流、分析应用和宏转换为高级工作流,这些工作流可在 PlaidCloud 中审核、计划、参数化和运行。导入器会保留工作流图,将引用的文件上传到文档,在需要时创建宏工作流,并将工具映射为原生工作流步骤或托管作业执行器。
迁移单个工作流、一组相关工作流或较大的 Alteryx 工作流组合到 PlaidCloud 时,可参考本指南。
PlaidCloud 创建的内容
Section titled “PlaidCloud 创建的内容”PlaidCloud 根据 Alteryx 设计创建可运行的高级工作流:
- 工作流工具会变为 PlaidCloud 工作流步骤,并保留原有的上下游关系。
- Alteryx 宏会变为 PlaidCloud 宏工作流,带有明确的宏输入和宏输出。
- 分析应用的问题会变为受控的工作流变量,用户可在运行前进行设置。
- 输入文件、输出文件、空间数据附属文件、图像、PDF 和生成的产物会存储在导入时所选路径下的文档中。
- 辅助建模(机器学习)管道会变为原生的 ML:训练模型和 ML:评分工作流步骤。
- 当原生 SQL 或工作流操作并非最佳选择时,模糊匹配、空间处理、PDF 提取、OCR、NLP 和报表等高级操作会通过 PlaidCloud 的托管作业执行器运行。
- 注释框和工具容器会以备注、高亮框和分组的形式出现在工作流画布上。它们对转换后工作流的说明与对原工作流的说明完全一致,并且不增加任何运行时工作。
- Browse 及其他仅用于查看的对象会作为画布的一部分导入,而不是步骤,因此不增加任何运行时工作,每个步骤的输出表本来就可以直接查看。
导入之前,请先将工作流文件及其依赖项收集到一起:
- 包含 Alteryx 工作流、应用和宏文件:
.yxmd、.yxwz和.yxmc。 - 包含输入数据文件,例如 CSV、Excel、Access、YXDB、XML、JSON 和数据库提取文件。
- 将空间数据附属文件放在一起。例如,将 shapefile 文件组和 MapInfo 文件放在同一文件夹中。
- 包含报表资源,例如图像、PDF、地图图层和模板。
- 选择要创建转换后工作流的 PlaidCloud 项目。
- 选择 PlaidCloud 上传导入文件时使用的文档账户和文件夹。
- 确定此次迁移只需要结构验证,还是需要输出一致性验证。
- 在 PlaidCloud 中打开目标项目。
- 打开 工具 → 导入 Alteryx 工作流。
- 选择目标项目,并选择要导入的
.yxmd、.yxwz或.yxmc文件。 - 可选择设置工作流、步骤和表名称前缀。表名称已带有工作流自身名称作为前缀,详见下文的转换后工作流中的表名称。
- 选择用于存储导入文件的文档账户和文件夹。
- 添加工作流在运行时需要的任何被引用文件或文件夹。
- 开始导入。
- 导入顺利完成时,窗口会自动关闭并打开生成的高级工作流,无需手动关闭。任何值得再看一眼的内容随后会以提示消息的形式出现,而不会阻碍导入。
- 如果工作流中有步骤未能转换、其读取的文件缺失,或存在其他需要查看的问题,窗口会保持打开并显示转换报告,以便您在继续之前进行审核。
当任何步骤需要查看时(例如被丢弃或未转换的工具),导入窗口会用转换报告替换表单:报告汇总了有多少步骤以高置信度完成映射、有多少步骤需要审核,并以表格列出置信度较低或带有注意事项的步骤,包括每个步骤的名称、操作、置信度和备注。运行工作流之前,可借助报告直接定位值得检查的步骤;这些步骤在画布上的步骤备忘中也带有相同的置信度说明。
PlaidCloud 会将导入的依赖项存储在导入时所选的文档位置。转换后的步骤随后引用这些文档路径,因此工作流无需依赖桌面文件系统即可重复运行。
导入不再仅仅因为工作流读取的某个文件缺失(例如从未上传的网络共享路径)而失败。工作流仍会完成转换,转换报告会列出每个缺失的文件,并提供:
- 应上传到的文档路径。
- 其读取时使用的原始 Alteryx 路径。
- 工作流期望从中读取的所有工作表。
- 读取该文件的 Alteryx 工具。
对于大多数文件,将其上传到报告指定的路径后重新运行工作流即可,无需重新导入。少数几类缺失文件是在转换时而不是运行时读取的,因此报告会提示您在文件就位后再次导入工作流:Alteryx 固定宽度 ASCII 布局文件、通配符输入、动态输入模板,以及 FirstRow 重命名源都属于此类。
仅由已关闭的工具容器内的工具读取的文件,不会出现在此列表中,也不会被复制到文档。这些工具本身就不会被导入(参见画布上的注释和工具容器),因此转换后的工作流没有任何需要该文件的步骤。如需一并导入该文件,请在 Alteryx 中重新开启该容器,或使用将已关闭容器内的工具作为普通步骤导入的选项进行导入。
工作流中的其他问题,例如 PlaidCloud 无法读取的宏或固定宽度文件布局、目标路径上已存在内容不同的文件、无法转换的工具,只会对相应步骤标记警告,而不会让整个导入失败,因此工作流的其余部分仍会导入。
导入被拒绝的情况
Section titled “导入被拒绝的情况”如果上传的文件完全无法转换,导入会被直接拒绝,而不会产生部分结果,错误信息会告诉您该怎么做。出现这种情况的原因包括:文件不是 Alteryx 工作流;文件是 Alteryx 包(.yxzp),此时请从 Alteryx Designer 导出其 .yxmd 工作流,并将其与所用文件一起上传;工作流文件缺失或您没有读取权限;或所需的表名称发生冲突,且导入无法自行解决。
如果转换器在处理您的工作流时遇到内部缺陷,导入会被拒绝,并给出指明该缺陷的消息:“PlaidCloud could not convert this workflow because of a converter defect (<error>). It has been logged for the PlaidCloud team; include the request ID when you contact support.”这种情况下并非您的文件有问题,请使用消息中的请求 ID 联系支持团队,以便团队查看已记录的故障。
转换后工作流中的表名称
Section titled “转换后工作流中的表名称”每个转换后的步骤都会写入自己的表,表名取自其来源的 Alteryx 工具,例如工具 4 对应 tool_4_out。Alteryx 按文件为工具编号,因此这些名称会在不同工作流之间重复,而 PlaidCloud 项目只有一个表命名空间。因此,每次导入都会用工作流自身的名称作为表的前缀,得到类似 03_measure_the_quality_of_data_tool_4_out 的名称。这样,整个文件夹的 Alteryx 工作流就可以导入同一个项目,而不会互相覆盖结果。
对同一个工作流导入两次(首次导入需要更正时就会出现这种情况)的处理方式相同:第二次导入会获得自己的一组表,而不是覆盖第一次的表。对新导入结果满意后,请删除之前那次导入的工作流和表。
导入时设置您自己的表名称前缀可覆盖默认值,也可将其设置为空,以恢复不带前缀的 tool_4_out 名称。除转换后的步骤本身之外,没有其他对象依赖这些名称,因此之后重命名表,就意味着需要重新指定读取该表的步骤。
以 Parquet 写出的输出
Section titled “以 Parquet 写出的输出”写入 .parquet 或 .avro 的 Output Data 工具会转换为对应格式的导出步骤。写入 .yxdb、.hyper 或 .dbf 的工具则以 Parquet 写出。对于 .yxdb 输出,文件是同一文件夹中同名的 .parquet。
读取该 .yxdb 文件的转换后工作流会自动读取 .parquet:当 .yxdb 不存在时,导入 Alteryx YXDB步骤会回退到同名的 .parquet,并显示警告说明这一点。
画布上的注释和工具容器
Section titled “画布上的注释和工具容器”Alteryx 作者围绕其工作绘制的备注和分组会一并导入:
- 带有文本的注释框会变为画布上的备注,位置和大小与绘制时一致。
- 绘制为围绕一组工具的空轮廓的注释框,会变为高亮框,这正是它在 Alteryx 中的作用。
- 显示链接文档的注释框会将该链接保留为其文本。
- 工具容器会变为分组,包含在其内部绘制的步骤,并保留其标题、是否折叠以及是否关闭。嵌套的容器会变为嵌套的分组,同时位于两个容器内的步骤属于两个分组。
移动、编辑、重新着色或删除它们的方式,与您自己绘制的对象相同。
有两处与原工作流的行为不同:
- 已关闭的工具容器内的工具根本不会被导入。 Alteryx 也不会运行这些工具,因此导入它们只会在工作流中加入永远不执行任何操作的步骤。容器本身仍会导入,作为带有标题的高亮框出现,以便您看到原来有什么内容。如需导入其中的工具,请在 Alteryx 中开启该容器后重新导入。(通过 API 或 AI 代理导入时,也可使用选项将已禁用容器内的工具导入为普通的可运行步骤,这对于所有内容均已关闭的示例工作流很有用。)
- 不会沿用框的颜色。 画布提供一组固定的六种颜色,而 Alteryx 的框几乎都是白色或灰色,因此它们都会呈现为同一种色调。它们会以画布默认颜色导入,您可以从右键菜单设置所需的颜色。
备注的文本现在以中性灰色显示。此前它在深色画布上显示为琥珀色或橙色,即使是从 Alteryx 原样带过来的普通注释,这种颜色也像是警告。
如果工具容器最终不包含任何步骤(因为它已关闭,或者它里面只有注释),它仍会作为带有标题的高亮框出现,而不会从画布上消失。
只有注释的工作流(即一页没有任何工具的文档)会作为带有这些注释的画布导入,并提示它没有转换为任何可运行的步骤。这是真实的结果,而不是失败:本来就没有需要运行的内容。
只有当连接到其控件输入的数据流携带记录时,Alteryx 控制容器才会运行其内部的工具。这个门控会随容器一起导入,而不仅仅是容器的轮廓:
- 容器与其他容器一样变为画布上的分组,保留其标题和内容。
- 其内部的每个步骤导入后都已设置为仅在门控数据有行时运行,没有行时则跳过。嵌套在其中的容器内的步骤以同样方式受到门控。无需自行连接条件。
- 其控件输入未连接任何内容的控制容器,原本只是视觉上的分组,其转换方式与工具容器完全相同。
- 围绕空白区域绘制的控制容器会将其标题保留在画布上,作为高亮框。
Browse 工具
Section titled “Browse 工具”Alteryx Browse 是一个查看器。它显示到达它的记录,不做任何更改,也没有输出连接器。在 PlaidCloud 中,每个步骤的输出表本来就可以直接打开,因此作者绘制 Browse 想要查看的内容,只需在其上一步中点击一下即可:选中该步骤并查看其表。
因此,Browse 会作为画布的一部分导入,而不是步骤。它不创建步骤,不占用表,也不计入转换无法处理的工具:
- 不会为其创建表。 以前每个 Browse 都会变为一个什么都不做的步骤,随后被工作流丢弃,却仍占用一个无人写入、无人读取的仓库表。在我们的 179 个 Alteryx 工作流参考集中,这相当于 152 个表。
- 损坏的分支只会针对出问题的工具报告一次。 以前,只要为 Browse 提供数据的工具转换失败,Browse 就会在转换报告中被列为转换失败的工具,因此同一个问题会出现两次:一次针对您真正需要修复的工具,另一次针对一个根本不可能运行的查看器。该参考集中报告的失败有十四项属于这种情况。这些条目已消失;真正应为此负责的工具仍会被报告。
这样做消除的是转换报告中具有误导性的条目,而不是其背后的失败。所有工具均成功转换的工作流数量与之前相同。
在此版本之前导入的工作流保留当时的转换结果,包括表。请重新导入以应用此更改。
Calgary 数据库
Section titled “Calgary 数据库”Alteryx Calgary 数据库(.cydb 文件)是一种专有的索引存储。PlaidCloud 无法读取该文件格式,也没有公开的规范。转换不会拒绝所有涉及它的工具,而是将每个 .cydb 路径视为一个普通的 PlaidCloud 表,在导入所应用的表前缀之下命名为 calgary_<database name>。数据库变成普通表后,围绕它构建的工具就变成了普通操作:已保存的查询是筛选器,交叉计数桶是条件计数,加载器的字段列表是一组列。
- 转换后的 Calgary Loader 根据其输入写入该表。其声明的索引类型会在转换过程中被丢弃,因为仓库会自行建立索引,但字段列表会保留。
- 转换后的 Calgary Input 读回该表,并将其已保存的查询作为筛选器应用。表自身的列在步骤运行时才会解析,因为工作流文件中没有记录数据库包含什么内容。
- 转换后的 Calgary Input (Count Only) 或 Calgary Cross Count 将该表作为聚合读取:普通的索引字段对行进行分组,自定义字段的每个命名值都会成为一个计数列。
- 转换后的 Calgary Join 将每条传入记录与该表匹配,保留匹配的记录,并带入输入自身的列。当传入字段是普通的非空间值时才会转换;不能转换的情况参见下文的 Calgary Join 和 Cross Count Append。
- 转换后的 Calgary Cross Count Append 以同样方式将每条传入记录与该表匹配,然后报告匹配的数据库记录数量,并附加到输入上;同样要求传入字段是普通的非空间值。
读取并非由自身构建的数据库的工作流,会得到一个停止并指明该表的步骤。 Alteryx 随附的人口统计和参考类 .cydb 文件就是常见的情形:工作流中没有任何内容写入过它们,因此还没有可读取的 PlaidCloud 表。在该表存在之前,转换后的步骤会停止并指明该表,而不是悄悄地什么都不读取却报告成功。运行工作流之前,请先将源数据导出到所指明的表中,可以从原始 .cydb 导出(如果您有 Alteryx 可以读取它),也可以从数据实际所在的位置导出。
Calgary 查询中的 Or、And 和 Not
Section titled “Calgary 查询中的 Or、And 和 Not”Calgary 查询是对数据库索引字段进行 And、Or 和 Not 的树结构,现在该树会按原样转换:其中任意位置的 Or,以及包裹多个条件的 Not,都可以转换。包含或以某内容开头的条件同样可以转换:在计数路径上转换为 SQL LIKE,在记录读取时转换为子字符串匹配。这涵盖 Calgary Input 的记录读取、仅计数读取、Calgary Cross Count,以及 Cross Count 自定义字段内的桶。
少数查询形态仍无法转换,每一种都会在转换报告和步骤上指明自身:
- 使用空间查找(或被否定的包含/以某内容开头)而不是列比较的查询,这是一种没有列级对应项的索引操作。
- 受 Skip Records 或 Max Records 限制的读取,因为替代表不携带可用于跳过或限制的记录顺序。
- 按多个自定义字段分组的 Cross Count。这些计数在本质上是对数据库的同一个聚合,但 Alteryx 没有说明它如何命名或排序所得的列,而且手头没有可供核对的示例。
- 未指明要计数的列的仅计数读取,因为工作流文件无法读取数据库自身的列。
- 不存储任何数据字段的 Calgary Loader,它会写出一个没有列的表。
- 完全没有指明数据库的 Calgary 工具。
Calgary Join 和 Cross Count Append
Section titled “Calgary Join 和 Cross Count Append”Calgary Join 和 Calgary Cross Count Append 通过数据库的某个索引,将每条传入记录与数据库匹配,而工作流文件记录了索引的名称,却没有记录其类型。同样的配置,在索引保存普通值时表示等值联接,在其保存空间几何图形时则表示“哪些点落在此形状内”的匹配,文件中无从得知是哪一种。
转换时使用传入字段自身声明的类型来判断:空间索引只可能与空间字段配对,因此
- 类型为空间对象的传入字段会停止,并指明该字段、得出的解读,以及应作为 Spatial Match 步骤重建匹配所用的替代表;
- 无法确定类型的传入字段会停止,并指明这一原因,绝不会靠猜测;
- 普通的非空间传入字段会转换,与替代表进行匹配。
无论结果如何,步骤都会记录其采取的解读及据以得出该解读的字段类型,因此,如果您不认同某个转换,可以看到其推导过程,而不必自行推断。
Calgary Cross Count Append 在传入字段为普通非空间字段时会转换,与 Calgary Join 相同。Join 保留匹配的记录,而 Append 报告每条输入记录匹配了多少条数据库记录:它按每条输入记录统计匹配数,并将该计数附加到输入上。没有匹配任何内容的输入记录计数为零,而不会被丢弃;两条相同的输入记录各自保留自己的行,因为计数是按记录进行的,而不是按不同的值组合进行的。单个普通的交叉计数字段可以按这种方式转换;由命名的自定义值组成的网格则不会转换,因为它会为每个值追加一个计数列,而 Alteryx 既没有说明会有多少列,也没有说明这些列叫什么。
处于仅计数模式的 Calgary Join 以同样方式转换:它按每条输入记录统计匹配的数据库记录数,没有匹配的记录计数为零,而不是保留匹配的记录。
当 Calgary Join 或 Cross Count Append 针对索引值的范围(而不是单个值)进行匹配、其未匹配记录输出连接到了下游内容、未指明用于匹配数据库的字段,或没有任何内容连接到其输入以供匹配记录时,它也会停止,并指明自身。
转换后的 Loader 与读取其所写内容的读取方连接在一起,因此读取方不会与填充其表的写入并行运行。
Calgary Input 的列以文本形式到达:替代表提供的是列名,而不是数据库自身的类型。
数据库内工具
Section titled “数据库内工具”数据库内(In-Database)工作流将其工作推送到仓库而不是 Alteryx 引擎,而 PlaidCloud 步骤本身就是仓库 SQL,因此数据库内的操作工具会转换为与其内存中对应工具完全相同的步骤。Filter In-DB 变为筛选器,Formula In-DB 变为公式,Summarize In-DB 变为聚合,Join、Select、Sample、Sort、Union 和 Browse 同理。
无法转换的是链条两端的那对工具。Connect In-DB 和 Write Data In-DB 会打开一个实时的仓库连接,位于它们之间的工具持有该连接并向其推送 SQL,而 PlaidCloud 没有与这种持续保持打开的连接对应的功能。每个工具都会作为标记为需要审核的步骤出现,指明该工具并指向其替代方案:绑定到 PlaidCloud 连接的 SQL 导入或导出步骤。将这两个端点换成这些步骤后,两者之间的操作工具无需更改即可转换。
Data Stream In、Data Stream Out、Dynamic Input In-DB、Dynamic Output In-DB 以及 In-Database Macro Input/Output 出于同样的原因被直接按名称拒绝。
由按位置联接或多行公式提供数据的 Union
Section titled “由按位置联接或多行公式提供数据的 Union”当 Union 读取按记录位置匹配的 Join 或 Multi-Row Formula 的输出时,转换看起来正常,但运行时可能失败,在中途停止并提示某个无法解析的列。转换看起来没有问题,只有运行工作流才暴露出这个问题。
该问题已修复:这样的工作流现在会运行并得到正确的结果。如果在之前导入的工作流上遇到此错误,重新运行即可,无需重新导入。
Join Multiple 的输出列
Section titled “Join Multiple 的输出列”当 Join Multiple 在其 Select 选项卡上列出每个字段时,Alteryx Designer 会将每个字段命名为 Input_#1_<field>、Input_#2_<field> 等。转换后的多表联接会让这些列保持其正常的输出名称,并应用该选项卡上的重命名和取消选择。在此修复之前转换的 Join Multiple 没有任何输出列,其步骤在运行时失败;请重新导入该工作流以应用更正。
Cross Tab 的百分比列和合计列
Section titled “Cross Tab 的百分比列和合计列”带有某个派生方法(Percent Row、Percent Column、Total Column 或 Total Row)的 Cross Tab,以前会中止转换,并连带其下方的所有步骤。现在这四种方法都可以转换:
- Percent Row 和 Percent Column 是单元格占其所在行或所在列的数据字段合计的份额。
- Total Column 是该行合计,使用该工具为其记录的名称。
- Total Row 是一条携带合计的额外记录,分组字段中没有值。
无论该工具为每个单元格计算哪些方法,每个合计都是数据字段的总和。
有两种形态仍会被标记为需要审核,而不是转换:没有分组字段的 Cross Tab 上的 Total Row,它会产生两条相同的记录,且无从区分这两个副本;以及工具从未记录名称的 Total Column,否则它会完全缺失于输出中。
Alteryx 双精度列保持完整精度
Section titled “Alteryx 双精度列保持完整精度”Alteryx Double(双精度)列现在会转换为 64 位数值列,与 Alteryx 自身计算时使用的精度一致。此前它会转换为 32 位列,约 7 位有效数字,因此位数超过该范围的任何值在读取时都会被悄悄舍入,基于它的每个计算也都继承了这一误差。一个真实的案例:16,862,441.27 被读成了 16,862,442.00。
在转换后的宏内部,作为宏输入传入的双精度列以前会以文本形式到达,现在会以数字形式到达。如果宏逻辑依赖于原先的文本行为(字符串连接、前导零格式化、文本模式匹配),请在重新转换后检查,因为真正的数值的行为可能有所不同。
在此修复之前转换的工作流保留其转换时的列类型。请重新导入以应用此更改。
转换后工作流中的宏
Section titled “转换后工作流中的宏”宏会转换为原生的 PlaidCloud 构造,而不是对 Alteryx 宏引擎的模拟。每种宏类型都映射到一个一等的工作流功能,因此转换后的宏以完全保真的方式运行相同的逻辑,并具有与原宏相同的按记录或按迭代行为:
- 标准宏会内联到调用它的工作流中:宏的工具变为画布上的普通步骤,因此没有需要盲目信任的黑盒,每个步骤都保持可见、可审核、可编辑。嵌套的标准宏可以任意深度地内联,而最终调用自身的宏会被捕获并指明,而不是无限循环。
- 批处理宏会变为按控制参数的每条记录运行一次的宏工作流,每一轮的输出会被收集回单个数据流,与 Alteryx 执行的按组运行方式相同。控制参数会被绑定为按轮次的变量,与它在 Alteryx 中驱动批处理的方式完全一致。
- 迭代宏会变为在各轮之间携带状态、并一直运行到宏收敛的原生工作流循环。循环的轮次上限是宏自身的最大迭代次数,也就是 Alteryx 运行它所使用的同一设置;如果该设置保持为 Alteryx 的防失控默认值,或根本未设置,转换会改用自己的上限。如果宏在该上限处仍未收敛,运行会停止并说明这一点,指明所达到的上限,而不是把部分结果作为最终答案报告。确实需要比上限更多轮次的宏,可以用更高的上限重新导入:导入的
iteration_ceiling选项用于设置该上限。 - 控制参数、Macro Input 和 Macro Output 端口、Action 工具以及 Detour 分支都会转换为其原生对应项,因此将宏连接在一起的机制会被保留,而不是近似处理。从批处理宏或迭代宏内部调用的宏,会与其调用方一同解析并转换。
有两种安排会被直接按名称拒绝,而不是转换,以便您在导入时就能知道:嵌套在另一个循环宏内部的循环宏,以及 In-Database Macro Input/Output 工具。
转换后工作流中的报表
Section titled “转换后工作流中的报表”报表布局引用的图像现在会与工作流一起打包,因此转换后的报表可以在文档中找到它,而不会因某个仅存在于 Alteryx 机器上的资源而失败。这适用于通过固定路径指定的图像;字节嵌入在工作流中的图像,或路径按记录取自某一列的图像,则没有单独的文件可获取。
源数据无法读取的报表片段现在会如实报告。以前,如果无法读取表的列,由其构建的报表片段会被跳过,报表表格部分会输出为空,而且这些运行都报告成功。现在步骤会停止,并说明无法读取列信息及其原因。以前输出时缺少某个部分的报表,现在可能会停止并给出说明,参见 2026 年 8 月中对应的“已修复”条目。
使用转换后的工作流
Section titled “使用转换后的工作流”导入后,像使用其他 PlaidCloud 高级工作流一样使用该工作流:
- 打开转换后的工作流画布。
- 审核生成的步骤和分支。
- 为任何转换后的应用问题或运行时参数设置工作流变量。
- 运行工作流。
- 查看运行历史、步骤输出、就绪状态备注和生成的产物。
- 工作流准备好重复运行后,为其设置计划。
转换后的 Download(下载)工具会变为 REST 请求步骤,该步骤通过 REST 连接访问外部端点,而不是使用写入步骤中的 URL。运行之前,请为该步骤指定 REST 连接;转换器会在导入时通过就绪状态备注标记这一点。设置方法请参见创建连接。
转换后的宏可作为 PlaidCloud 宏工作流使用。调用过 Alteryx 宏的工作流,会通过宏步骤调用生成的 PlaidCloud 宏。宏的运行彼此隔离,因此并发的工作流运行可以安全地使用同一个宏定义。
PlaidCloud 支持两个实用的验证级别。
结构验证确认工作流已被转换为可运行的 PlaidCloud DAG:
- 每个 Alteryx 工具都有对应的 PlaidCloud 转换路径。
- 所需的宏已找到或已生成。
- 所需的输入文件已上传到文档。
- 宏输入和宏输出已连接。
- 已为用户控制的输入创建了工作流变量。
- 生成的工作流可以在 PlaidCloud 中打开并运行。
结构验证适用于迁移就绪状态评估、清单审核以及早期的组合转换。
输出一致性验证
Section titled “输出一致性验证”输出一致性验证将 PlaidCloud 的运行结果与可信的 Alteryx 输出进行比较:
- 输出架构一致。
- 行数一致。
- 行值一致。
- 除非工作流明确依赖排序,否则忽略行顺序。
对于生成报表、地图、PDF、图像或模型产物的工作流,请根据团队使用输出的方式,验证生成的产物或产物背后的数据。
详细的验证检查清单,请参见验证转换后的 Alteryx 工作流。
行值方面,抽样工具是一个特意设定的例外。 Create Samples 和 Random % Sample 都是随机抽取,而在设置了种子时,Alteryx 每次运行都会返回相同的记录。PlaidCloud 使用自己的生成器进行抽取,因此:
- 样本大小、百分比以及 Estimation / Validation / Holdout 划分比例会完全沿用。
- 每个样本内的记录并非 Alteryx 所选的那些,重新运行时选出的集合也会再次不同。
每个转换后的步骤都会在转换报告和步骤本身上说明这一点,也都不会被报告为转换失败的工具。请依据行数和比例而不是行值来验证这些步骤。
如果哪条记录落入哪个样本确实很重要,例如需要精确复现的模型,或已针对其发布了结果的保留集,请改用列来决定样本:使用一个计算样本分配的 Formula 步骤,并为每个样本使用一个 Filter 步骤。
机器学习(辅助建模)转换
Section titled “机器学习(辅助建模)转换”使用机器学习工具系列构建的 Alteryx 机器学习管道会转换为 PlaidCloud 的原生 ML 步骤:
- Classification 或 Regression 工具,连同其上游的辅助建模和转换阶段以及下游的 Fit 工具,会融合为单个 ML:训练模型步骤。该步骤带有来自 Alteryx 工作流的确切算法、目标变量、特征列和超参数,并将训练好的模型写入单行模型表,训练指标记录在其中。
- 每个 Predict 工具会变为 ML:评分步骤,读取训练好的模型表及其数据输入。预测列以目标变量的名称加
_predicted后缀命名。 - XGBoost 分类器转换时带有近似说明:模型以 scikit-learn 梯度提升分类器的方式训练,任何没有对应项的 XGBoost 特有的树参数都会列在步骤的映射备注中。在依赖一致性之前,请对照 Alteryx 的运行结果验证模型指标。
- Image Recognition 工具会在工作流中训练图像分类器,并用它对新图像评分,全程在原地完成,无需外部账户,也没有任何图像数据离开 PlaidCloud。指向该模型的下游 Predict 会基于它进行评分。有两点与 ML 系列的其余部分不同,请在依赖一致性之前加以验证。第一,分类器是根据您带标签的图像重新训练的,而不是从 Alteryx 复制过来的,而且这种训练是非确定性的:对同一工作流的两次转换会产生略有不同的模型,因此预测只是忠实的近似,而不是逐位一致。第二,训练在 CPU 上运行,因此数百到数千张图像的集合需要几分钟。Image Recognition 按工作区启用;如果转换后的工作流报告它未启用,请联系管理员将其开启。
- AutoML 工具与 Classification 和 Regression 一样,融合为一个 ML:训练模型步骤。AutoML 不会记录其候选算法中哪一个在 Alteryx 运行时真正胜出,因此转换会选取 ML 训练支持的第一个已勾选算法并注明这一选择,而不是重现自动化搜索。请将转换后的 AutoML 步骤与您自己的 Alteryx 结果进行比较。
- 通过交互方式选择了模型(且从未保存到工作流文件中)的辅助建模向导无法转换:导入器会保留一个占位步骤,其备注记录了恢复出的目标变量,以便您手动构建 ML 训练步骤。
- 独立的独热编码阶段会在转换报告中被标记。融合后的 ML 训练步骤会在内部对分类特征进行独热编码,因此独立阶段通常不需要替代。
与每次转换一样,融合后的步骤会在转换报告和画布上带有其置信度和备注,因此很容易找到值得再次检查的管道。
查看转换覆盖范围
Section titled “查看转换覆盖范围”Alteryx 转换矩阵列出了每个受支持的 Alteryx 对象、其覆盖级别,以及转换期间使用的 PlaidCloud 操作。
可借助该矩阵了解导入器如何处理每个工具系列:
- 原生 DAG 步骤,适用于常见的数据准备、联接、筛选器、公式、排序、合并、抽样和重塑。
- 宏步骤,适用于宏输入、宏输出、宏调用、控制参数和宏并发。
- 受控的工作流变量,适用于分析应用的问题,例如复选框、下拉列表、文本框、单选按钮、文件夹选择器和文件选择器。
- 基于文档的文件操作,适用于输入、输出、目录和动态文件行为。
- 原生的 ML 训练和 ML 评分步骤,适用于辅助建模机器学习管道。
- 为每个 Alteryx Calgary 数据库提供的替代表,使 Calgary Loader、Input、Cross Count 和 Join 工具能够针对普通表转换,而不是被直接拒绝,参见 Calgary 数据库。
- 托管作业执行器,适用于专门的空间、模糊匹配、PDF、OCR、NLP、报表和产物工作。
- 云原生等效方案:由 PlaidCloud 创建持久、可共享的产物,而不是重现 Alteryx 特有的桌面渲染器或专有文件格式。
您的 Alteryx 覆盖率报告
Section titled “您的 Alteryx 覆盖率报告”注册之前,先了解您的 Alteryx 工作流中有什么。
- 打开公共页面
https://app.plaidcloud.com/#coverage-report,页面标题为 See what’s in your Alteryx workflows。 - 将文件拖放到 Drop an Alteryx workflow here,或选择选择文件。它接受最大 10 MB 的工作流(
.yxmd)、宏(.yxmc)或包(.yxzp)。PlaidCloud 会读取该文件,并显示它找到的工具以及使用最多的工具。文件中存储的凭据会被移除。 - 输入您的 Work email,接受服务条款和隐私政策,然后选择 Email me a verification link。
完整的报告会在您自己的免费 PlaidCloud 工作区中生成。PlaidCloud 会将上传的内容转换为名为 Alteryx migration 的项目,首位打开主页的工作区管理员会看到您的 Alteryx 覆盖率报告。它列出每个工作流,包括 PlaidCloud 识别并可转换的工具数量、待审核的数量,以及指向转换后工作流的打开按钮。数据文件不属于报告内容;请上传工作流读取的文件,然后再运行它们。报告中的按钮会通向使用您自己的数据仓库和验证您的迁移。上传的内容会保留 7 天。
如果您已有 PlaidCloud 账户,您输入的电子邮件地址会收到一封主题为 Your coverage report is ready — sign in to view it 的邮件,其中带有链接。登录后打开它,选择工作区,然后选择 Add the report。只有该工作区所属组织的管理员才能添加,报告将在您下次打开该工作区时显示。忽略这封邮件不会对您的工作区产生任何更改。无效或已过期的链接会如实提示,已过期的上传内容必须重新上传。
转换完成后,请对照您的 Alteryx 输出,验证其是否一致。
推荐的迁移实践
Section titled “推荐的迁移实践”对于大型工作流组合,请分批迁移:
- 将工作流和宏导入迁移项目。
- 在审核单个公式或业务逻辑之前,先补齐依赖包。
- 对整批工作流运行结构验证。
- 优先对生产工作流、监管工作流以及有下游使用方的工作流进行输出一致性验证。
- 将验证过的工作流提升到目标生产项目。
- 为生产运行设置计划,并监控运行历史。
- Alteryx 迁移就绪检查清单
- 打包 Alteryx 依赖项
- 验证转换后的 Alteryx 工作流
- 使用转换后的 Alteryx 应用
- 使用 MCP 编排 Alteryx 迁移
- 调优 Alteryx 导入
- 验证 Alteryx 报表和产物
- 迁移空间类 Alteryx 工作流
- 创建宏
- 运行工作流
- 管理工作流变量
- Alteryx 转换矩阵
对于较大规模的迁移,请将以下专题指南与本迁移指南配合使用:
- Alteryx 迁移就绪检查清单:用于迁移规划和包审核。
- 打包 Alteryx 依赖项:用于文件、文件夹、宏、空间数据附属文件和预期输出。
- 使用转换后的 Alteryx 应用:用于受控的工作流变量和应用式运行。
- 使用 MCP 编排 Alteryx 迁移:用于通过 AI 代理整理文件、使用已连接的共享存储,并借助 PlaidCloud 的 MCP 服务器协调大量转换。
- 调优 Alteryx 导入:用于依赖项补全、宏解析、变量、验证比较和执行器就绪状态备注。
- 验证 Alteryx 报表和产物:用于 PDF、图像、地图、图表、仪表板和模型产物。
- 迁移空间类 Alteryx 工作流:用于空间文件、SQL 几何逻辑、托管空间执行器和空间验证。