airflow.providers.openlineage.sqlparser
¶
模块内容¶
类¶
get_table_schemas 参数。 |
|
包含处理 SQL 语句解析结果所需的数据库特定信息。 |
|
openlineage-sql 的接口。 |
函数¶
|
属性¶
- airflow.providers.openlineage.sqlparser.DEFAULT_INFORMATION_SCHEMA_COLUMNS = ['table_schema', 'table_name', 'column_name', 'ordinal_position', 'udt_name'][源代码]¶
- airflow.providers.openlineage.sqlparser.DEFAULT_INFORMATION_SCHEMA_TABLE_NAME = 'information_schema.columns'[源代码]¶
- class airflow.providers.openlineage.sqlparser.GetTableSchemasParams[源代码]¶
基类:
airflow.typing_compat.TypedDict
get_table_schemas 参数。
- class airflow.providers.openlineage.sqlparser.DatabaseInfo[源代码]¶
包含处理 SQL 语句解析结果所需的数据库特定信息。
- 参数
scheme – OpenLineage 命名空间中 URI 的方案部分。
authority – OpenLineage 命名空间中 URI 的授权部分。在大多数情况下,它应该返回 Airflow 连接的 {host}:{port} 部分。请参阅:https://github.com/OpenLineage/OpenLineage/blob/main/spec/Naming.md
database – 优先于解析的数据库名称。
information_schema_columns – 来自信息模式表的列名列表。
information_schema_table_name – 信息模式表名称。
use_flat_cross_db_query – 指定是否应该将单个信息模式表用于跨数据库查询(例如,对于 Redshift)。
is_information_schema_cross_db – 指定信息模式是否包含跨数据库数据。
is_uppercase_names – 指定数据库是否仅接受大写名称(例如,Snowflake)。
normalize_name_method – 用于规范化数据库、模式和表名称的方法。默认为 name.lower()。
- airflow.providers.openlineage.sqlparser.from_table_meta(table_meta, database, namespace, is_uppercase)[source]¶
- class airflow.providers.openlineage.sqlparser.SQLParser(dialect=None, default_schema=None)[source]¶
基类:
airflow.utils.log.logging_mixin.LoggingMixin
openlineage-sql 的接口。
- parse_table_schemas(hook, inputs, outputs, database_info, namespace=DEFAULT_NAMESPACE, database=None, sqlalchemy_engine=None)[source]¶
解析输入和输出表的架构。
- get_metadata_from_parser(inputs, outputs, database_info, namespace=DEFAULT_NAMESPACE, database=None)[source]¶
- attach_column_lineage(datasets, database, parse_result)[source]¶
将列血缘关系 facet 附加到数据集列表中。
请注意,目前每个数据集都设置了相同的列血缘关系信息。这将在 OpenLineage SQL Parser 改进后进行更改。
- generate_openlineage_metadata_from_sql(sql, hook, database_info, database=None, sqlalchemy_engine=None, use_connection=True)[source]¶
解析 SQL 语句并生成 OpenLineage 元数据。
生成的 OpenLineage 元数据包含
带有已解析架构的输入表
带有已解析架构的输出表
运行 facets
作业 facets。
- 参数
hook (airflow.hooks.base.BaseHook) – 用于连接数据库的 Airflow Hook
database_info (DatabaseInfo) – 数据库特定信息
database (str | None) – 当传递此参数时,它将优先于解析的数据库名称
sqlalchemy_engine (sqlalchemy.engine.Engine | None) – 当传递此参数时,引擎的方言将用于编译 SQL 查询