:py:mod:`airflow.providers.apache.drill.operators.drill`
========================================================

.. py:module:: airflow.providers.apache.drill.operators.drill


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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.apache.drill.operators.drill.DrillOperator




.. py:class:: DrillOperator(*, sql, drill_conn_id = 'drill_default', parameters = None, **kwargs)

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

   Executes the provided SQL in the identified Drill environment.

   .. seealso::
       For more information on how to use this operator, take a look at the guide:
       :ref:`howto/operator:DrillOperator`

   :param sql: the SQL code to be executed as a single string, or
       a list of str (sql statements), or a reference to a template file.
       Template references are recognized by str ending in '.sql'
   :param drill_conn_id: id of the connection config for the target Drill
       environment
   :param parameters: (optional) the parameters to render the SQL query with.

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

      

   .. py:attribute:: template_fields_renderers
      

      

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

      

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

      

   .. 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.



