You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "serverdevil (via GitHub)" <gi...@apache.org> on 2025/07/07 06:41:27 UTC
Re: [I] Support AWS OpenSearch / Elasticsearch [superset]
serverdevil commented on issue #16723:
URL: https://github.com/apache/superset/issues/16723#issuecomment-3043656400
> I'm getting errors with Superset 4.1.2 and AWS Opensearch. I've tried [@Unanimad](https://github.com/Unanimad) 's solution and installed the required libraries in the docker file:
>
> pip install elasticsearch==7.13.4 sqlalchemy==1.4.9 elasticsearch-dbapi[opendistro] opensearch-py
>
> I used the following URL syntax for database connection:
>
> odelasticsearch+https://username:password$@my-opensearch-domain.my-region.es.amazonaws.com:443
>
> I can create a database connection, but while trying to create a dataset, I get the following error (the index that I'm trying to connect is named "cloudwatch", and that's an alias btw) (there are backticks around default keyword, formatting removes them):
>
> > 2025-05-26 07:51:37,370:WARNING:superset.views.error_handling:SupersetErrorException
> > Traceback (most recent call last):
> > File "/app/superset/sql/parse.py", line 257, in _parse
> > return sqlglot.parse(script, dialect=dialect)
> > File "/usr/local/lib/python3.10/site-packages/sqlglot/**init**.py", line 102, in parse
> > return Dialect.get_or_raise(read or dialect).parse(sql, **opts)
> > File "/usr/local/lib/python3.10/site-packages/sqlglot/dialects/dialect.py", line 919, in parse
> > return self.parser(**opts).parse(self.tokenize(sql), sql)
> > File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 1395, in parse
> > return self._parse(
> > File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 1467, in _parse
> > self.raise_error("Invalid expression / Unexpected token")
> > File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 1508, in raise_error
> > raise error
> > sqlglot.errors.ParseError: Invalid expression / Unexpected token. Line 2, Col: 14.
> > SELECT *
> > FROM `` `default` ``.cloudwatch
> > LIMIT 100
> > The above exception was the direct cause of the following exception:
> > Traceback (most recent call last):
> > File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
> > rv = self.dispatch_request()
> > File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
> > return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
> > File "/usr/local/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 95, in wraps
> > return f(self, *args, **kwargs)
> > File "/app/superset/views/base_api.py", line 119, in wraps
> > duration, response = time_function(f, self, *args, **kwargs)
> > File "/app/superset/utils/core.py", line 1364, in time_function
> > response = func(*args, **kwargs)
> > File "/app/superset/utils/log.py", line 303, in wrapper
> > value = f(*args, **kwargs)
> > File "/app/superset/databases/api.py", line 1024, in table_metadata
> > payload = database.db_engine_spec.get_table_metadata(database, table)
> > File "/app/superset/db_engine_specs/base.py", line 1079, in get_table_metadata
> > return get_table_metadata(database, table)
> > File "/app/superset/databases/utils.py", line 100, in get_table_metadata
> > "selectStar": database.select_star(
> > File "/app/superset/models/core.py", line 719, in select_star
> > return self.db_engine_spec.select_star(
> > File "/app/superset/db_engine_specs/base.py", line 1689, in select_star
> > sql = SQLScript(sql, engine=cls.engine).format()
> > File "/app/superset/sql/parse.py", line 612, in **init**
> > self.statements = statement_class.split_script(script, engine)
> > File "/app/superset/sql/parse.py", line 317, in split_script
> > ast = cls._parse(remainder, engine)[0]
> > File "/app/superset/sql/parse.py", line 260, in _parse
> > raise SupersetParseError(
> > superset.exceptions.SupersetParseError: Error parsing near '`' at line 2:14
+1. Same issue with a local opensearch deployment. How do I control what dialect sqlglot's usage in Superset assumes for this scenario?
Any help or nudge towards further investigation would be helpful.
versions in play:
superset: 5.0.0
opensearch: 3.1.0
opensearch-dbapi and opensearch-dbapi[opendistro] added to superset image
```superset | 2025-07-07 06:22:33,293:INFO:elasticsearch:GET http://opensearch:9200/logs/_mapping?format=json [status:200 request:0.005s]
superset | 2025-07-07 06:22:33,319:WARNING:superset.views.error_handling:SupersetErrorException
superset | Traceback (most recent call last):
superset | File "/app/.venv/lib/python3.10/site-packages/superset/sql/parse.py", line 267, in _parse
superset | return sqlglot.parse(script, dialect=dialect)
superset | File "/app/.venv/lib/python3.10/site-packages/sqlglot/__init__.py", line 102, in parse
superset | return Dialect.get_or_raise(read or dialect).parse(sql, **opts)
superset | File "/app/.venv/lib/python3.10/site-packages/sqlglot/dialects/dialect.py", line 991, in parse
superset | return self.parser(**opts).parse(self.tokenize(sql), sql)
superset | File "/app/.venv/lib/python3.10/site-packages/sqlglot/parser.py", line 1507, in parse
superset | return self._parse(
superset | File "/app/.venv/lib/python3.10/site-packages/sqlglot/parser.py", line 1579, in _parse
superset | self.raise_error("Invalid expression / Unexpected token")
superset | File "/app/.venv/lib/python3.10/site-packages/sqlglot/parser.py", line 1620, in raise_error
superset | raise error
superset | sqlglot.errors.ParseError: Invalid expression / Unexpected token. Line 2, Col: 14.
superset | SELECT *
superset | FROM `default`.logs
superset | LIMIT 100
superset |
superset | The above exception was the direct cause of the following exception:
superset |
superset | Traceback (most recent call last):
superset | File "/app/.venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
superset | rv = self.dispatch_request()
superset | File "/app/.venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
superset | return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
superset | File "/app/.venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 109, in wraps
superset | return f(self, *args, **kwargs)
superset | File "/app/.venv/lib/python3.10/site-packages/superset/views/base_api.py", line 120, in wraps
superset | duration, response = time_function(f, self, *args, **kwargs)
superset | File "/app/.venv/lib/python3.10/site-packages/superset/utils/core.py", line 1369, in time_function
superset | response = func(*args, **kwargs)
superset | File "/app/.venv/lib/python3.10/site-packages/superset/utils/log.py", line 304, in wrapper
superset | value = f(*args, **kwargs)
superset | File "/app/.venv/lib/python3.10/site-packages/superset/databases/api.py", line 1013, in table_metadata
superset | payload = database.db_engine_spec.get_table_metadata(database, table)
superset | File "/app/.venv/lib/python3.10/site-packages/superset/db_engine_specs/base.py", line 1087, in get_table_metadata
superset | return get_table_metadata(database, table)
superset | File "/app/.venv/lib/python3.10/site-packages/superset/databases/utils.py", line 100, in get_table_metadata
superset | "selectStar": database.select_star(
superset | File "/app/.venv/lib/python3.10/site-packages/superset/models/core.py", line 771, in select_star
superset | return self.db_engine_spec.select_star(
superset | File "/app/.venv/lib/python3.10/site-packages/superset/db_engine_specs/base.py", line 1706, in select_star
superset | sql = SQLScript(sql, engine=cls.engine).format()
superset | File "/app/.venv/lib/python3.10/site-packages/superset/sql/parse.py", line 670, in __init__
superset | self.statements = statement_class.split_script(script, engine)
superset | File "/app/.venv/lib/python3.10/site-packages/superset/sql/parse.py", line 327, in split_script
superset | ast = cls._parse(remainder, engine)[0]
superset | File "/app/.venv/lib/python3.10/site-packages/superset/sql/parse.py", line 270, in _parse
superset | raise SupersetParseError(
superset | superset.exceptions.SupersetParseError: Error parsing near '`' at line 2:14```
--
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.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
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