class_docstr: Interact with Apache Drill via sqlalchemy-drill.
  
  You can specify the SQLAlchemy dialect and driver that sqlalchemy-drill
  will employ to communicate with Drill in the extras field of your
  connection, e.g. ``{"dialect_driver": "drill+sadrill"}`` for communication
  over Drill's REST API.  See the sqlalchemy-drill documentation for
  descriptions of the supported dialects and drivers.
  
  You can specify the default storage_plugin for the sqlalchemy-drill
  connection using the extras field e.g. ``{"storage_plugin": "dfs"}``.
docstr: Establish a connection to Drillbit.
code: def get_conn(self) -> Connection:
      """Establish a connection to Drillbit."""
      conn_md = self.get_connection(getattr(self, self.conn_name_attr))
      creds = (
          f"{conn_md.login}:{conn_md.password}@"
          if conn_md.login
          else ""
      )
      database_url = (
          f"{conn_md.extra_dejson.get('dialect_driver', 'drill+sadrill')}://{creds}"
          f"{conn_md.host}:{conn_md.port}/"
          f'{conn_md.extra_dejson.get("storage_plugin", "dfs")}'
      )
      if "?" in database_url:
          raise ValueError(
              "Drill database_url should not contain a '?'"
          )
      engine = create_engine(database_url)
  
      self.log.info(
          "Connected to the Drillbit at %s:%s as user %s",
          conn_md.host,
          conn_md.port,
          conn_md.login,
      )
      return engine.raw_connection()
  
file_path: airflow/airflow/providers/apache/drill/hooks/drill.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Any, Iterable
  from sqlalchemy import create_engine
  from airflow.providers.common.sql.hooks.sql import DbApiHook
label_desc: Use image node_id 1 for calling the DrillHook obj's underlying member method code with example usage: obj.get_conn() and returns: engine