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: Return the connection URI.
  
  e.g: ``drill://localhost:8047/dfs``
code: def get_uri(self) -> str:
      """
      Return the connection URI.
  
      e.g: ``drill://localhost:8047/dfs``
      """
      conn_md = self.get_connection(getattr(self, self.conn_name_attr))
      host = conn_md.host
      if conn_md.port is not None:
          host += f":{conn_md.port}"
      conn_type = conn_md.conn_type or "drill"
      dialect_driver = conn_md.extra_dejson.get(
          "dialect_driver", "drill+sadrill"
      )
      storage_plugin = conn_md.extra_dejson.get("storage_plugin", "dfs")
      return f"{conn_type}://{host}/{storage_plugin}?dialect_driver={dialect_driver}"
  
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 2 for calling the DrillHook obj's underlying member method code with example usage: obj.get_uri() and returns: conn_type, str, host, str, storage_plugin, str, dialect_driver