:py:mod:`airflow.providers.apache.hive.transfers.hive_to_mysql`
===============================================================

.. py:module:: airflow.providers.apache.hive.transfers.hive_to_mysql

.. autoapi-nested-parse::

   This module contains an operator to move data from Hive to MySQL.



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.apache.hive.transfers.hive_to_mysql.HiveToMySqlOperator




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.apache.hive.transfers.hive_to_mysql.MYSQL_RENDERER


.. py:data:: MYSQL_RENDERER
   

   

.. py:class:: HiveToMySqlOperator(*, sql, mysql_table, hiveserver2_conn_id = 'hiveserver2_default', mysql_conn_id = 'mysql_default', mysql_preoperator = None, mysql_postoperator = None, bulk_load = False, hive_conf = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Moves data from Hive to MySQL, note that for now the data is loaded
   into memory before being pushed to MySQL, so this operator should
   be used for smallish amount of data.

   :param sql: SQL query to execute against Hive server. (templated)
   :param mysql_table: target MySQL table, use dot notation to target a
       specific database. (templated)
   :param mysql_conn_id: source mysql connection
   :param hiveserver2_conn_id: Reference to the
       :ref:`Hive Server2 thrift service connection id <howto/connection:hiveserver2>`.
   :param mysql_preoperator: sql statement to run against mysql prior to
       import, typically use to truncate of delete in place
       of the data coming in, allowing the task to be idempotent (running
       the task twice won't double load data). (templated)
   :param mysql_postoperator: sql statement to run against mysql after the
       import, typically used to move data from staging to
       production and issue cleanup commands. (templated)
   :param bulk_load: flag to use bulk_load option.  This loads mysql directly
       from a tab-delimited text file using the LOAD DATA LOCAL INFILE command.
       This option requires an extra connection parameter for the
       destination MySQL connection: {'local_infile': true}.
   :param hive_conf:

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['sql', 'mysql_table', 'mysql_preoperator', 'mysql_postoperator']

      

   .. py:attribute:: template_ext
      :annotation: :Sequence[str] = ['.sql']

      

   .. py:attribute:: template_fields_renderers
      

      

   .. py:attribute:: ui_color
      :annotation: = #a0e08c

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



