I'm trying to connect langchain + aws athena, and facing the following error:
from langchain import SQLDatabase, SQLDatabaseChain
from sqlalchemy import create_engine
AWS_ACCESS_KEY_ID=###
AWS_SECRET_ACCESS_KEY=###
region_name=###
database=###
athena_url=f"awsathena+rest:///?AccessKey={AWS_ACCESS_KEY_ID}&SecretKey={AWS_SECRET_ACCESS_KEY}&Region={region_name}&Database={database}&S3StagingDirectory='s3://mybucket/'"
athena_engine = create_engine(athena_url)
db = SQLDatabase.from_uri(athena_engine)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[10], line 2
1 #db = SQLDatabase.from_uri(conString)
----> 2 db = SQLDatabase.from_uri(athena_engine)
File ~\.conda\envs\generativeai\lib\site-packages\langchain\sql_database.py:124, in SQLDatabase.from_uri(cls, database_uri, engine_args, **kwargs)
122 """Construct a SQLAlchemy engine from URI."""
123 _engine_args = engine_args or {}
--> 124 return cls(create_engine(database_uri, **_engine_args), **kwargs)
File <string>:2, in create_engine(url, **kwargs)
File ~\.conda\envs\generativeai\lib\site-packages\sqlalchemy\util\deprecations.py:281, in deprecated_params.<locals>.decorate.<locals>.warned(fn, *args, **kwargs)
274 if m in kwargs:
275 _warn_with_version(
276 messages[m],
277 versions[m],
278 version_warnings[m],
279 stacklevel=3,
280 )
--> 281 return fn(*args, **kwargs)
File ~\.conda\envs\generativeai\lib\site-packages\sqlalchemy\engine\create.py:550, in create_engine(url, **kwargs)
547 # create url.URL object
548 u = _url.make_url(url)
--> 550 u, plugins, kwargs = u._instantiate_plugins(kwargs)
552 entrypoint = u._get_entrypoint()
553 _is_async = kwargs.pop("_is_async", False)
AttributeError: 'Engine' object has no attribute '_instantiate_plugins'
I tried to upgrade versions from sqlalchemy, pyathena and langchain, no better results.
Does anybody have seen this?