You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by GitBox <gi...@apache.org> on 2020/12/21 11:04:11 UTC

[GitHub] [incubator-superset] iercan opened a new issue #12155: Getting error while trying to connect mongo via drill

iercan opened a new issue #12155:
URL: https://github.com/apache/incubator-superset/issues/12155


   Hi. I configured drill so that I can read mongodb via superset. I'm getting error when sqllab try to get tables.
   
   ### Expected results
   
   Send  sql requests successfully to mongo by using sql_lab
   
   ### Actual results
   
   Superset throws below error. 
   
   ```
   superset_1  | DEBUG:root:Mapping column TABLE_NAME of Drill type VARCHAR to dtype string
   superset_1  | module 'sqlalchemy_drill.drilldbapi' has no attribute 'Error'
   superset_1  | Traceback (most recent call last):
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
   superset_1  |     self.dialect.do_execute(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
   superset_1  |     cursor.execute(statement, parameters)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy_drill/drilldbapi/_drilldbapi.py", line 65, in func_wrapper
   superset_1  |     return func(self, *args, **kwargs)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy_drill/drilldbapi/_drilldbapi.py", line 164, in execute
   superset_1  |     elif str(df[col_name].iloc[0]).startswith("[") and str(df[col_name].iloc[0]).endswith("]"):
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/pandas/core/indexing.py", line 879, in __getitem__
   superset_1  |     return self._getitem_axis(maybe_callable, axis=axis)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/pandas/core/indexing.py", line 1496, in _getitem_axis
   superset_1  |     self._validate_integer(key, axis)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/pandas/core/indexing.py", line 1437, in _validate_integer
   superset_1  |     raise IndexError("single positional indexer is out-of-bounds")
   superset_1  | IndexError: single positional indexer is out-of-bounds
   superset_1  | 
   superset_1  | During handling of the above exception, another exception occurred:
   superset_1  | 
   superset_1  | Traceback (most recent call last):
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/superset/models/core.py", line 537, in get_all_view_names_in_schema
   superset_1  |     views = self.db_engine_spec.get_view_names(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/superset/db_engine_specs/base.py", line 651, in get_view_names
   superset_1  |     views = inspector.get_view_names(schema)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/reflection.py", line 325, in get_view_names
   superset_1  |     return self.dialect.get_view_names(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy_drill/base.py", line 318, in get_view_names
   superset_1  |     curs = connection.execute("SELECT `TABLE_NAME` FROM INFORMATION_SCHEMA.views WHERE table_schema='" + schema + "'")
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2235, in execute
   superset_1  |     return connection.execute(statement, *multiparams, **params)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1003, in execute
   superset_1  |     return self._execute_text(object_, multiparams, params)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1172, in _execute_text
   superset_1  |     ret = self._execute_context(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
   superset_1  |     self._handle_dbapi_exception(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1390, in _handle_dbapi_exception
   superset_1  |     isinstance(e, self.dialect.dbapi.Error)
   superset_1  | AttributeError: module 'sqlalchemy_drill.drilldbapi' has no attribute 'Error'
   superset_1  | ERROR:superset.models.core:module 'sqlalchemy_drill.drilldbapi' has no attribute 'Error'
   superset_1  | Traceback (most recent call last):
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
   superset_1  |     self.dialect.do_execute(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
   superset_1  |     cursor.execute(statement, parameters)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy_drill/drilldbapi/_drilldbapi.py", line 65, in func_wrapper
   superset_1  |     return func(self, *args, **kwargs)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy_drill/drilldbapi/_drilldbapi.py", line 164, in execute
   superset_1  |     elif str(df[col_name].iloc[0]).startswith("[") and str(df[col_name].iloc[0]).endswith("]"):
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/pandas/core/indexing.py", line 879, in __getitem__
   superset_1  |     return self._getitem_axis(maybe_callable, axis=axis)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/pandas/core/indexing.py", line 1496, in _getitem_axis
   superset_1  |     self._validate_integer(key, axis)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/pandas/core/indexing.py", line 1437, in _validate_integer
   superset_1  |     raise IndexError("single positional indexer is out-of-bounds")
   superset_1  | IndexError: single positional indexer is out-of-bounds
   superset_1  | 
   superset_1  | During handling of the above exception, another exception occurred:
   superset_1  | 
   superset_1  | Traceback (most recent call last):
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/superset/models/core.py", line 537, in get_all_view_names_in_schema
   superset_1  |     views = self.db_engine_spec.get_view_names(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/superset/db_engine_specs/base.py", line 651, in get_view_names
   superset_1  |     views = inspector.get_view_names(schema)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/reflection.py", line 325, in get_view_names
   superset_1  |     return self.dialect.get_view_names(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy_drill/base.py", line 318, in get_view_names
   superset_1  |     curs = connection.execute("SELECT `TABLE_NAME` FROM INFORMATION_SCHEMA.views WHERE table_schema='" + schema + "'")
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2235, in execute
   superset_1  |     return connection.execute(statement, *multiparams, **params)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1003, in execute
   superset_1  |     return self._execute_text(object_, multiparams, params)
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1172, in _execute_text
   superset_1  |     ret = self._execute_context(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
   superset_1  |     self._handle_dbapi_exception(
   superset_1  |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1390, in _handle_dbapi_exception
   superset_1  |     isinstance(e, self.dialect.dbapi.Error)
   superset_1  | AttributeError: module 'sqlalchemy_drill.drilldbapi' has no attribute 'Error'
   ```
   
   #### How to reproduce the bug
   
   1. Configure drill so that it can request mongodb
   2. Add drill datasource to superset
   3. Try to send request from sqllab
   
   ### Environment
   
   - superset version: 0.38
   - python version: 3.8.6
   - drill version: 1.18
   - sqlalchemy-drill version: 0.2.2.dev0
   
   ### Checklist
   
   Make sure to follow these steps before submitting your issue - thank you!
   
   - [x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
   - [x] I have reproduced the issue with at least the latest released version of superset.
   - [x] I have checked the issue tracker for the same issue and I haven't found one similar.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org