airflow.providers.mysql.hooks.mysql¶
This module allows to connect to a MySQL database.
Attributes¶
Classes¶
| Interact with MySQL. | 
Module Contents¶
- class airflow.providers.mysql.hooks.mysql.MySqlHook(*args, **kwargs)[source]¶
- Bases: - airflow.providers.common.sql.hooks.sql.DbApiHook- Interact with MySQL. - You can specify charset in the extra field of your connection as - {"charset": "utf8"}. Also you can choose cursor as- {"cursor": "SSCursor"}. Refer to the MySQLdb.cursors for more details.- Note: For AWS IAM authentication, use iam in the extra connection parameters and set it to true. Leave the password field empty. This will use the “aws_default” connection to get the temporary token unless you override in extras. extras example: - {"iam":true, "aws_conn_id":"my_aws_conn"}- You can also add “local_infile” parameter to determine whether local_infile feature of MySQL client is going to be enabled (it is disabled by default). - Parameters:
- schema – The MySQL database schema to connect to. 
- connection – The MySQL connection id used for MySQL credentials. 
- local_infile – Boolean flag determining if local_infile should be used 
- init_command – Initial command to issue to MySQL server upon connection 
 
 - set_autocommit(conn, autocommit)[source]¶
- Set autocommit. - mysqlclient uses an autocommit method rather than an autocommit property, so we need to override this to support it. - Parameters:
- conn (MySQLConnectionTypes) – connection to set autocommit setting 
- autocommit (bool) – autocommit setting 
 
 
 - get_autocommit(conn)[source]¶
- Whether autocommit is active. - mysqlclient uses an get_autocommit method rather than an autocommit property, so we need to override this to support it. - Parameters:
- conn (MySQLConnectionTypes) – connection to get autocommit setting from. 
- Returns:
- connection autocommit setting 
- Return type:
 
 - get_conn()[source]¶
- Get connection to a MySQL database. - Establishes a connection to a mysql database by extracting the connection configuration from the Airflow connection. - Note - By default it connects to the database via the mysqlclient library. But you can also choose the mysql-connector-python library which lets you connect through ssl without any further ssl parameters required. - Returns:
- a mysql connection object 
- Return type:
- MySQLConnectionTypes 
 
 - get_iam_token(conn)[source]¶
- Retrieve a temporary password to connect to MySQL. - Uses AWSHook to retrieve a temporary password to connect to MySQL Port is required. If none is provided, default 3306 is used 
 - bulk_load_custom(table, tmp_file, duplicate_key_handling='IGNORE', extra_options='')[source]¶
- Load local data from a file into the database in a more configurable way. - Warning - According to the mysql docs using this function is a security risk. If you want to use it anyway you can do so by setting a client-side + server-side option. This depends on the mysql client library used. - Parameters:
- table (str) – The table were the file will be loaded into. 
- tmp_file (str) – The file (name) that contains the data. 
- duplicate_key_handling (str) – - Specify what should happen to duplicate data. You can choose either IGNORE or REPLACE. 
- extra_options (str) – - More sql options to specify exactly how to load the data.