- 发行说明
- 在开始之前
- 入门指南
- 管理访问权限
- 使用流程应用程序
- 创建流程应用程序
- 正在加载数据
- 自定义流程应用程序
- 数据转换
- TemplateOne 应用程序模板
- “购买到付款”应用程序模板
- “订单到现金”应用模板
- Basic troubleshooting guide
Editing transformations
数据转换用于将输入数据转换为适合Process Mining的数据。 Process Mining中的转换将写入dbt项目。
本页介绍 dbt。 有关更多详细信息,请参阅 官方 dbt 文档。
pm_utils
的dbt包。 此pm-utils
包包含适用于 Process Mining dbt项目的实用程序函数和宏。 有关pm_utils
的更多信息,请参阅ProcessMining-pm-utils 。
pm-utils
包。
pm-utils
包的新版本时,建议您更新转换中使用的版本,以确保使用 pm-utils
包的最新函数和宏。
pm-utils
包的最新版本的版本号。
pm-utils
版本。
-
下载
pm-utils
版本中的源代码 (zip)。 -
提取
zip
文件并将文件夹重命名为pm_utils 。 -
从内联的数据转换编辑器导出转换并提取文件。
-
将导出的转换中的pm_utils文件夹替换为新的pm_utils文件夹。
-
再次压缩转换的内容,并将其导入到数据转换编辑器中。
流程应用程序的转换包含一个 dbt 项目。 下面是 dbt 项目文件夹内容的说明。
文件夹/文件 |
包含 |
---|---|
|
pm_utils 包及其宏。
|
|
运行 dbt时创建的日志。 |
|
自定义宏。 |
|
.sql 文件,用于定义转换。
|
|
.yml 文件,用于定义数据测试。
|
|
.csv 包含配置设置的文件。
|
|
dbt项目的设置。 |
请参见下图。
models\
目录的.sql
文件中定义。 数据转换组织在一组标准的子目录中:
1_input
,2_entities
,3_events
,4_event_logs
,5_business_logic
。
请参阅转换结构。
.sql
文件以 Jinja SQL 编写,允许您在普通 SQL 查询中插入 Jinja 语句。 当 dbt 运行所有.sql
文件时,每个.sql
文件都会在数据库中生成一个新视图或新表。
.sql
文件具有以下结构:
-
With 语句:一个或多个 with 语句,用于包含所需的子表。
{{ ref(‘My_table) }}
引用由另一个 .sql 文件定义的表 文件。{{ source(var("schema_sources"), 'My_table') }}
引用输入表。
- 主查询:定义新表的查询。
-
最终查询:通常在最后使用
Select * from table
等查询。 这样可以在调试时轻松进行子选择。
有关如何有效编写转换的更多提示,请参阅关于编写 SQL 的提示
models\schema\sources.yml
中。 这样,其他模型可以使用{{ source(var("schema_sources"), 'My_table_raw') }}
引用它。 有关示例,请参见下图。
sources.yml
中列出每个新的源表。
加载数据时,会将后缀 _raw 添加到源表的表名称中。 例如,名为 my_table 的表应称为 my_table_raw。
有关更多详细信息,请参阅有关来源的 官方 dbt 文档 。
数据转换必须输出相应应用程序所需的数据模型;每个预期的表格和字段都必须存在。
models\5_business_logic
中的表。 此外,不应删除相应查询中的输出字段。
如果要向流程应用程序添加新字段,可以使用可用于流程应用程序的自定义字段。 将转换中的字段映射到自定义字段,以使其在输出中可用。 确保按照流程应用程序的数据模型中的说明在输出中命名自定义字段。
dbt docs
命令为 dbt 项目生成文档站点,并在默认浏览器中打开该站点。该文档站点还包含一个沿袭图,此图提供了一个实体关系图,以图形方式表示项目中每个数据表之间的沿袭。
dbt docs
上的官方 dbt 文档。
宏使重用常见 SQL 结构变得容易。 有关详细信息,请参阅有关 Jinja 宏的 官方 dbt 文档 。
pm_utils.optional()
宏的 Jinja 代码示例。
csv
文件。 有关详细信息,请参阅有关 Jinja 种子的官方 dbt 文档。
在 Process Mining中,这通常用于在转换中轻松配置映射。
编辑种子文件后,这些文件不会立即在数据库中自动更新。 要指示 dbt 将新的种子文件内容加载到数据库中,请运行
dbt seed
- 仅更新种子文件表,或-
dbt build
- 还将运行所有模型和测试。注意: 如果种子文件最初没有数据记录,则数据库中的数据类型可能未正确设置。 要解决此问题,请调用run dbt seed --full-refresh
。 这还将更新数据库中的列集。
sources.yml
中的测试。 这样做是为了检查输入数据的格式是否正确。