Export External Database Tables 步骤
通过连接将项目表写入外部数据库,而不是写入文件。可用于将建模结果推送回报表数据库、数据仓库或运营系统。
它与导入外部数据库表互为镜像:一个步骤可移动多张表,目标表可以显式选择,也可以按搜索模式匹配。
独有的配置项
Section titled “独有的配置项”标识目标数据库的数据连接。
写入行之前如何准备每个目标表:
- 仅追加 — 向现有表添加行;如果表不存在则失败。
- 截断后追加 — 清空表,保留其结构,然后写入。
- 创建后追加 — 如果表缺失则创建,然后写入。
- 删除、创建后追加 — 删除并重新创建表,然后写入。源架构发生变化时使用。
步骤运行时所使用的框架名称。
使用添加和移除目标按钮构建目标表列表。选择一个目标即可在右侧窗格中对其进行配置,并使用切换所选项启用或禁用所选目标的导出。导出不会扫描目标数据库中的表;请自行添加每个目标。导入外部数据库表是用于发现外部数据库中表的步骤。
所选目标有三个选项卡。
选择要导出的项目表及其写入位置。
- 源 — 指定表指定一张项目表,动态选项用于在运行时才确定名称的情况。匹配搜索的表会导出通过搜索路径和搜索文本找到的每张项目表,匹配方式为精确、开头为、包含或结尾为。
- 目标外部表 — 启用导出用于开启或关闭该目标。目标架构和目标表指定目标表的名称。使用与源表相同的名称会沿用每个源表的名称。
目标的列映射器,位于独立的全高选项卡上。检查源会将项目源表的列读入映射器。
筛选写入目标的行。
数据映射器配置

数据映射器用于将源数据中的列映射到目标数据表。
检查并填充映射器
使用 检查源 菜单按钮可以通过更多方式将源中的列映射到目标:
- 填充两个映射表:将源数据表中的所有值传播到目标数据表。这是默认行为。
- 仅填充源映射表:仅映射源数据表中的所有值。当源列结构发生变化而需要修改现有工作流时,此选项很有用。
- 仅填充目标映射表:仅将所有值传播到目标数据表。
如果上述源列和目标列选项仍不够用,还可以通过以下几种方式向目标数据表添加其他列:
- 全部传播 会将所有源列插入目标数据表,无论这些列是否已存在。
- 传播所选项 仅插入所选的源列。
- 在目标侧右键单击并选择 插入行,可在当前所选行的正上方插入一行。
- 在目标侧右键单击并选择 追加行,可在目标数据表的底部(最右侧)插入一行。
删除列
要从目标数据表中删除列,请选择所需的列,然后右键单击并选择 删除。
不再列出的源列
目标行可能指定了某个 源列,而源数据表已不再列出该列,例如在重新检查源之后。步骤绝不会自动移除这样的行,而是将列名显示为红色,并在前面加上 ⚠ 警告标志;将鼠标悬停在其上,会提示该列不在源列中。在包含多个表的步骤(如联合)中,每个表都会分别对照其自身的源列进行检查。
带有 常量、表达式 或 计数(含空值) 汇总的行不会被标记,因为步骤不会读取其源列。当源数据表没有列出任何列时(例如首次检查源之前),也不会标记任何内容。
保存仍含有已标记行的步骤时,会出现 发现过时列 对话框,按其所在的选项卡或表列出这些行,并提供三个选项:
- 全部移除并保存 — 移除已标记的行,然后保存。
- 仍然保存 — 按现状保存步骤。
- 取消 — 返回步骤,不保存。
要保留某一行并清除其警告,请将该列重新添加到源数据表,或选择源数据表中列出的某一列。
列数据类型
每个目标列都带有一个 类型。从源传播而来的列沿用源列的类型;手动添加的行起初为 文本,需要设置 类型 来指明其实际类型 — 打算求和或排序的列需要使用数值或日期类型,因为文本会按文本方式排序和求和。
保存时没有任何类型的列,步骤仍可运行。类型会在步骤启动时根据该列所读取的源列确定。如果无处可读,则视为文本:提取 SQL 步骤的列来自您编写的查询,而不是映射的源;如果多个源中存在同名列但类型不一致,则使用文本,而不是随意选择其中一种 — 猜错会产生仓库可能拒绝的转换,而任何类型都可以转换为文本。
自行设置 类型 仍然是指明列应为何种类型的方式。不设置则意味着接受源列恰好具有的类型。
更改列顺序
要重新排列目标数据表中的列,请选择所需的列。可以使用以下任一方式:
- 批量移动箭头:从右上角的箭头中选择所需的移动选项
- 上下文菜单:右键单击并选择 移到顶部、上移、下移 或 移到底部。
仅返回非重复记录
要仅返回非重复的选项,请选择 非重复 菜单选项。这会为源中的每一列切换显示一组复选框。只需勾选相应列旁边的复选框,即可仅返回非重复的结果。
视情况而定,您可能需要考虑改用汇总。
非重复处理会保留找到的第一条唯一记录,并丢弃其余记录。如果运行之间的一致性很重要,可能需要对数据进行排序。
聚合与分组
要聚合结果,请选择 汇总 菜单选项。这会为目标数据表中的每一列切换显示一组选择框。请为每一列选择合适的汇总方法。
当 检查源 填充列时,如果数值列的名称读起来像标识符(例如 id、customer_id、Order No 或 CustomerKey),或者其所在表将其设为键,或者联接将其用作键,则该列起初为 分组依据,而不是 求和。
- 分组依据
- 求和
- 最小值
- 最大值
- 第一个
- 最后一个
- 计数
- 计数(含空值)
- 平均值
- 标准差
- 样本标准差
- 总体标准差
- 方差
- 样本方差
- 总体方差
- 高级非分组
有关表达式、清理和常量等高级数据映射器用法,请参阅高级数据映射器用法

为了获得最大的灵活性,源数据和目标数据都可以使用数据筛选器。对于较大的数据集,在源端筛选掉部分行尤其有益,这样后续操作只需处理较小的数据集。
选择数据子集
此筛选器类型用于根据指定条件筛选传入的源数据。
对结果数据应用二次筛选器
此筛选器类型用于根据指定条件对转换后的结果数据应用筛选器。 对转换后的结果应用筛选器,可以基于复杂计算、汇总或窗口函数的结果进行排除。
最终数据表切片(限制)
行切片功能可根据范围和起始点限制结果集中的行数。
筛选器语法
筛选器语法使用 Python SQLAlchemy,与其他表达式的语法相同。
有关示例和表达式函数,请参阅表达式部分。