process-mining
2023.10
false
- 发行说明
- 在开始之前
- 入门指南
- 集成
- 使用流程应用程序
- 创建应用程序
- 正在加载数据
- 自定义流程应用程序
- 应用程序模板
- 其他资源
Tips for writing SQL
重要 :
请注意此内容已使用机器翻译进行了部分本地化。
Process Mining
Last updated 2024年10月17日
Tips for writing SQL
- 在联合中,字段的名称和顺序必须完全匹配。 可能需要使用
select
语句null as "Field_X"
在部分并集上创建空字段,以对齐所有字段。 - 为 SQL Server 编写 dbt 时,所有 Jinja 语句都将编译为 SQL 代码,无论它们是否在 SQL 注释中。 例如,在以下
-- {{ ref('Table1') }}
中,Jinja 将被编译为 SQL 代码。 - 不要对数字进行四舍五入,这可能会导致不一致。 只要显示值需要,平台就会自动执行此操作。
在 SQL 中,并非所有转换都可以在同一个表中计算。原因可能是无法在单个 SELECT 语句中表示聚合或属性。您可以为此创建支持表格。在数据库中创建支持表可让您在多个转换中使用该模型。如果不需要重用模型,也可以将支持转换添加为现有表中的预处理查询。
要区分支持转换和其他转换,可以将它们分组到单独的子目录中。
要加快查询执行速度,请执行以下操作:
-
在使用
where
子句也可以构建聚合并仅获取一条记录的情况下,请避免使用select distinct
。 - 使用
union all
而不是union
。 使用union all
可连接表格中的记录,而union
可删除重复项。 - 如果您正在处理大型数据集,则可以限制在开发期间使用的数据。
-
dbt 会将所有模型(
1_input
目录中的模型除外)具体化为表格。 这是所有 Process Mining 连接器的默认设置。 有关更多信息,请参阅有关具体 化 的 dbt 文档。 - 生成 ID 字段时,请使用 pm-utils中提供的
id()
宏。 示例可在 devkit-connector中找到。
以下样式指南用于开发Process Mining应用程序模板。 为保持一致性和可读性,建议遵循这些准则。
- 以小写形式编写 SQL 命令和函数。
-
对
select
、from
、where
、join
等使用相同级别的缩进,以便更轻松地理解模型的结构。- 如果这样可以提高可读性,请在使用函数时使用缩进。例如,对
case
函数中的每个语句使用缩进。
- 如果这样可以提高可读性,请在使用函数时使用缩进。例如,对
-
对表和字段使用一致的命名约定,以防止 SQL 错误指示数据库中不存在表或字段。 请遵守以下准则:
- 表格和字段以大写字母开头。
- 在表格和字段中的单独单词之间使用下划线
_
。 - 所有字段都包含引号。
- 表格没有引号。 与带引号的字段结合使用时,这可以提高可读性。
- 所有字段均以其来源表作为前缀,以使模型更易于理解和扩展。
- 用于分隔字段的逗号放置在行尾。
- 当需要解释某些结构时,请使用内联注释。 完成此操作后,请确保注释增加了价值。
- 为提高可读性和可维护性,请在查询的转换部分使用显式选择语句,并且不要使用
select *
。 尤其是对于并集,使用select *
可能会产生错误。