airflow.providers.mysql.hooks.mysql

此模块允许连接到 MySQL 数据库。

属性

logger

MySQLConnectionTypes

MySqlHook

与 MySQL 交互。

模块内容

airflow.providers.mysql.hooks.mysql.logger[source]
airflow.providers.mysql.hooks.mysql.MySQLConnectionTypes[source]
class airflow.providers.mysql.hooks.mysql.MySqlHook(*args, **kwargs)[source]

基类: airflow.providers.common.sql.hooks.sql.DbApiHook

与 MySQL 交互。

您可以在连接的 extra 字段中指定字符集,例如 {"charset": "utf8"}。您还可以选择游标类型,例如 {"cursor": "SSCursor"}。有关更多详细信息,请参阅 MySQLdb.cursors。

注意:对于 AWS IAM 认证,请在连接的 extra 参数中使用 iam 并将其设置为 true。将密码字段留空。除非您在 extras 中覆盖,否则这将使用“aws_default”连接获取临时令牌。extras 示例:{"iam":true, "aws_conn_id":"my_aws_conn"}

您还可以添加“local_infile”参数来确定是否启用 MySQL 客户端的 local_infile 功能(默认禁用)。

参数:
  • schema – 要连接的 MySQL 数据库模式。

  • connection – 用于 MySQL 凭据的 MySQL 连接 ID

  • local_infile – 确定是否应使用 local_infile 的布尔标志

  • init_command – 连接到 MySQL 服务器时要执行的初始命令

conn_name_attr = 'mysql_conn_id'[source]
default_conn_name = 'mysql_default'[source]
conn_type = 'mysql'[source]
hook_name = 'MySQL'[source]
supports_autocommit = True[source]
schema[source]
local_infile[source]
init_command[source]
set_autocommit(conn, autocommit)[source]

设置 autocommit。

mysqlclient 使用 autocommit 方法而不是 autocommit 属性,因此我们需要重写此方法来支持它。

参数:
  • conn (MySQLConnectionTypes) – 要设置 autocommit 设置的连接

  • autocommit (bool) – autocommit 设置

get_autocommit(conn)[source]

autocommit 是否处于活动状态。

mysqlclient 使用 get_autocommit 方法而不是 autocommit 属性,因此我们需要重写此方法来支持它。

参数:

conn (MySQLConnectionTypes) – 要从中获取 autocommit 设置的连接。

返回:

连接 autocommit 设置

返回类型:

bool

get_conn()[source]

获取 MySQL 数据库连接。

通过从 Airflow 连接中提取连接配置来建立到 mysql 数据库的连接。

注意

默认情况下,它通过 mysqlclient 库连接到数据库。但您也可以选择 mysql-connector-python 库,该库允许您通过 ssl 进行连接,而无需任何其他 ssl 参数。

返回:

一个 mysql 连接对象

返回类型:

MySQLConnectionTypes

bulk_load(table, tmp_file)[source]

将制表符分隔的文件加载到数据库表中。

bulk_dump(table, tmp_file)[source]

将数据库表转储到制表符分隔的文件中。

get_iam_token(conn)[source]

检索连接到 MySQL 的临时密码。

使用 AWSHook 检索连接到 MySQL 的临时密码。端口是必需的。如果未提供,则使用默认端口 3306

bulk_load_custom(table, tmp_file, duplicate_key_handling='IGNORE', extra_options='')[source]

以更可配置的方式将本地文件数据加载到数据库中。

警告

根据 mysql 文档,使用此函数存在 安全风险。如果您仍想使用它,可以通过设置客户端和服务端选项来实现。这取决于所使用的 mysql 客户端库。

参数:
get_openlineage_database_info(connection)[source]

返回 OpenLineage 的 MySQL 特定信息。

get_openlineage_database_dialect(_)[source]

返回数据库方言。

get_openlineage_default_schema()[source]

MySQL 没有模式(schema)的概念。

get_uri()[source]

获取 MySQL 连接的 URI。

此条目有帮助吗?