airflow.hooks.mysql_hook
¶
Module Contents¶
-
class
airflow.hooks.mysql_hook.
MySqlHook
(*args, **kwargs)[source]¶ Bases:
airflow.hooks.dbapi_hook.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 the “aws_default” connection to get the temporary token unless you override in extras. extras example:
{"iam":true, "aws_conn_id":"my_aws_conn"}
-
set_autocommit
(self, conn, autocommit)[source]¶ MySql connection sets autocommit in a different way.
-
get_autocommit
(self, conn)[source]¶ MySql connection gets autocommit in a different way.
- Parameters
conn (connection object.) – connection to get autocommit setting from.
- Returns
connection autocommit setting
- Return type
-
static
_serialize_cell
(cell, conn)[source]¶ MySQLdb converts an argument to a literal when passing those separately to execute. Hence, this method does nothing.
-
get_iam_token
(self, conn)[source]¶ 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
(self, table, tmp_file, duplicate_key_handling='IGNORE', extra_options='')[source]¶ A more configurable way to load local data from a file into the database.
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.
-