airflow.providers.snowflake.utils.openlineage

属性

log

函数

fix_account_name(name)

将账号名称修正为以下格式:<account_id>.<region>.<cloud>。

fix_snowflake_sqlalchemy_uri(uri)

将 Snowflake sqlalchemy 连接 URI 修正为 OpenLineage 结构。

emit_openlineage_events_for_snowflake_queries(...[, ...])

为已执行的 Snowflake 查询发出 OpenLineage 事件。

模块内容

airflow.providers.snowflake.utils.openlineage.log[源]
airflow.providers.snowflake.utils.openlineage.fix_account_name(name)[源]

将账号名称修正为以下格式:<account_id>.<region>.<cloud>。

airflow.providers.snowflake.utils.openlineage.fix_snowflake_sqlalchemy_uri(uri)[源]

将 Snowflake sqlalchemy 连接 URI 修正为 OpenLineage 结构。

Snowflake sqlalchemy 连接 URI 具有以下结构:“snowflake://<user_login_name>:<password>@<account_identifier>/<database_name>/<schema_name>?warehouse=<warehouse_name>&role=<role_name>”。我们希望账号标识符是标准化的。它可以有两种形式:- 较新的形式:<organization>-<id>。在这种情况下我们不做任何操作。- 较旧的形式:由 <id>-<region>-<cloud> 组成,其中 region 和 cloud 在某些情况下是可选的。如果省略 <cloud>,则为 AWS。如果同时省略 region 和 cloud,则为 AWS us-west-1。

airflow.providers.snowflake.utils.openlineage.emit_openlineage_events_for_snowflake_queries(query_ids, query_source_namespace, task_instance, hook=None, additional_run_facets=None, additional_job_facets=None)[源]

为已执行的 Snowflake 查询发出 OpenLineage 事件。

只有在提供了 SnowflakeHook 时,才会尝试从 Snowflake 中检索元数据。如果元数据可用,事件中将包含执行详情,例如开始时间、结束时间、执行状态、错误消息和 SQL 文本。如果未找到元数据,函数将默认使用 Airflow 任务实例的状态和当前时间戳。

请注意,每个查询的 START 和 COMPLETE 事件将同时发出。如果能够查询 Snowflake 以获取查询执行元数据,事件时间将与实际查询执行时间对应。

参数

query_ids: 要为其发出事件的 Snowflake 查询 ID 列表。query_source_namespace: 要包含在 ExternalQueryRunFacet 中的命名空间。task_instance: 运行这些查询的 Airflow 任务实例。hook: 用于在元数据可用时检索查询元数据的 SnowflakeHook 实例。additional_run_facets: 要包含在 OpenLineage 事件中的附加运行 Facets。additional_job_facets: 要包含在 OpenLineage 事件中的附加作业 Facets。

本条目有帮助吗?