**Description**

`BigQueryInsertJobOperator` requires the submission of a `configuration` parameter in the form of a dict.  Unfortunately, if this contains a large SQL query - especially one that is formatted with new lines - then this cannot currently be rendered very nicely in the UI.

<img width="1670" alt="Screenshot 2021-07-15 at 15 39 33" src="https://user-images.githubusercontent.com/967119/125806943-839d57a9-d4a0-492d-b130-06432b095239.png">

**Use case / motivation**

The issue with this is that it's impossible to copy and paste the rendered query out of the Airflow UI, into a BigQuery browser and run it without lots of manual edits which is time wasted when troubleshooting problems.

**Are you willing to submit a PR?**

Yes.  My current thought process around this would be to add an optional SQL parameter to the operator which, if provided, would be added into the configuration and could therefore have its own template field and SQL renderer.

e.g.

<img width="1570" alt="Screenshot 2021-07-14 at 14 18 09" src="https://user-images.githubusercontent.com/967119/125808200-5f30b8f4-4def-48a7-8223-82afdc65c973.png">


airflow/providers/google/cloud/operators/bigquery.py
"""
    Executes a BigQuery job. Waits for the job to complete and returns job id.
    This operator work in the following way:
    - it calculates a unique hash of the job using job's configuration or uuid if ``force_rerun`` is True
    - creates ``job_id`` in form of
        ``[provided_job_id | airflow_{dag_id}_{task_id}_{exec_date}]_{uniqueness_suffix}``
    - submits a BigQuery job using the ``job_id``
    - if job with given id already exists then it tries to reattach to the job if its not done and its
        state is in ``reattach_states``. If the job is done the operator will raise ``AirflowException``.
    Using ``force_rerun`` will submit a new job every time without attaching to already existing ones.
    For job definition see here:
        https://cloud.google.com/bigquery/docs/reference/v2/jobs
    .. seealso::
        For more information on how to use this operator, take a look at the guide:
        :ref:`howto/operator:BigQueryInsertJobOperator`
    :param configuration: The configuration parameter maps directly to BigQuery's
        configuration field in the job  object. For more details see
        https://cloud.google.com/bigquery/docs/reference/v2/jobs
    :type configuration: Dict[str, Any]
    :param job_id: The ID of the job. It will be suffixed with hash of job configuration
        unless ``force_rerun`` is True.
        The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or
        dashes (-). The maximum length is 1,024 characters. If not provided then uuid will
        be generated.
    :type job_id: str
    :param force_rerun: If True then operator will use hash of uuid as job id suffix
    :type force_rerun: bool
    :param reattach_states: Set of BigQuery job's states in case of which we should reattach
        to the job. Should be other than final states.
    :param project_id: Google Cloud Project where the job is running