airflow.providers.openlineage.utils.sql

模块内容

ColumnIndex

枚举信息模式视图中列的索引。

TableSchema

用于构造 OpenLineage 数据集的临时对象。

函数

get_table_schemas(hook, namespace, schema, database, ...)

查询数据库以获取表模式。

parse_query_result(cursor)

从 DB-API 2.0 游标中获取结果并创建表模式列表。

create_information_schema_query(columns, ...[, ...])

创建从信息模式获取表模式的查询。

create_filter_clauses(mapping, information_schema_table)

为一个数据库中的所有表创建全面的过滤器子句。

属性

log

TablesHierarchy

airflow.providers.openlineage.utils.sql.log[source]
class airflow.providers.openlineage.utils.sql.ColumnIndex[source]

基类:enum.IntEnum

枚举信息模式视图中列的索引。

SCHEMA = 0[source]
TABLE_NAME = 1[source]
COLUMN_NAME = 2[source]
ORDINAL_POSITION = 3[source]
UDT_NAME = 4[source]
DATABASE = 5[source]
airflow.providers.openlineage.utils.sql.TablesHierarchy[source]
class airflow.providers.openlineage.utils.sql.TableSchema[source]

用于构造 OpenLineage 数据集的临时对象。

table: str[source]
schema: str | None[source]
database: str | None[source]
fields: list[openlineage.client.facet_v2.schema_dataset.SchemaDatasetFacetFields][source]
to_dataset(namespace, database=None, schema=None)[source]
airflow.providers.openlineage.utils.sql.get_table_schemas(hook, namespace, schema, database, in_query, out_query)[source]

查询数据库以获取表模式。

使用提供的钩子。为此函数提供查询的责任在于特定的提取器。如果未提供输入或输出表的查询,则跳过该查询。

airflow.providers.openlineage.utils.sql.parse_query_result(cursor)[source]

从 DB-API 2.0 游标中获取结果并创建表模式列表。

对于每一行,它都会创建一个 TableSchema

airflow.providers.openlineage.utils.sql.create_information_schema_query(columns, information_schema_table_name, tables_hierarchy, uppercase_names=False, use_flat_cross_db_query=False, sqlalchemy_engine=None)[source]

创建从信息模式获取表模式的查询。

airflow.providers.openlineage.utils.sql.create_filter_clauses(mapping, information_schema_table, uppercase_names=False)[source]

为一个数据库中的所有表创建全面的过滤器子句。

参数
  • mapping (dict) – 数据库、模式名称和每个模式中表列表的嵌套字典

  • information_schema_table (sqlalchemy.Table) – sqlalchemy.Table 实例,用于构造子句。对于大多数 SQL 数据库,它包含 table_nametable_schema 列,因此期望该表定义了这些列。

  • uppercase_names (bool) – 如果为 True,则使用大写的模式和表名

此条目是否有帮助?