docs: def execute_dry_run(self, dialect=None, billing_tier=None):
      """Dry run a query, to check the validity of the query and return some useful statistics.
  
      Args:
        dialect : {'legacy', 'standard'}, default 'legacy'
            'legacy' : Use BigQuery's legacy SQL dialect.
            'standard' : Use BigQuery's standard SQL (beta), which is
            compliant with the SQL 2011 standard.
        billing_tier: Limits the billing tier for this job. Queries that have resource
            usage beyond this tier will fail (without incurring a charge). If unspecified, this
            will be set to your project default. This can also be used to override your
            project-wide default billing tier on a per-query basis.
      Returns:
        A dict with 'cacheHit' and 'totalBytesProcessed' fields.
      Raises:
        An exception if the query was malformed.
      """
      try:
        query_result = self._api.jobs_insert_query(self._sql, self._code, self._imports,
                                                   dry_run=True,
                                                   table_definitions=self._external_tables,
                                                   dialect=dialect, billing_tier=billing_tier)
      except Exception as e:
        raise e
      return query_result['statistics']['query']