在设置 Apache-Superset 时(我通过 pypi 在 Ubuntu 22.04 上安装了 Superset,对于使用 pinotdb 的连接器,将 Superset 连接到 apache-pinot 数据库。)执行以下命令后遇到以下错误:
superset db upgrade
2024-07-05 08:39:44,620:ERROR:flask_appbuilder.security.sqla.manager:DB Creation and initialization failed: (pinotdb.exceptions.DatabaseError) {'errorCode': 150,
'message': 'SQLParsingError:\n'
'org.apache.pinot.sql.parsers.SqlCompilationException: Caught '
'exception while parsing query: CREATE TABLE ab_permission (\n'
'\tid NUMERIC NOT NULL, \n'
'\t"name" VARCHAR NOT NULL, \n'
'\tPRIMARY KEY (id), \n'
'\tUNIQUE ("name")\n'
'...\n'
'Caused by: org.apache.pinot.sql.parsers.parser.ParseException: '
'Encountered "" at line 1, column 1.\n'
'\tat '
'org.apache.pinot.sql.parsers.parser.SqlParserImpl.generateParseException(SqlParserImpl.java:38633)\n'
'\tat '
'org.apache.pinot.sql.parsers.parser.SqlParserImpl.jj_consume_token(SqlParserImpl.java:38430)\n'
'\tat '
'org.apache.pinot.sql.parsers.parser.SqlParserImpl.SqlStmt(SqlParserImpl.java:931)\n'
'\tat '
'org.apache.pinot.sql.parsers.parser.SqlParserImpl.SqlStmtsEof(SqlParserImpl.java:1017)'}
[SQL:
CREATE TABLE ab_permission (
id NUMERIC NOT NULL,
"name" VARCHAR NOT NULL,
PRIMARY KEY (id),
UNIQUE ("name")
)
]
(Background on this error at: https://sqlalche.me/e/14/4xp6)
尝试以下命令时也会出现错误:
superset init
或superset fab create-admin
Superset 允许配置两种类型的数据库连接:
支持的元数据后端有 SQLite、MySQL 和 PostgreSQL。看起来好像您已将 pinotdb 配置为元数据数据库。
我建议在 config.py 中将元数据数据库 URL 保留为其默认值:
# to enforce single-threaded access, which may be problematic in some edge cases
SQLALCHEMY_DATABASE_URI = 'sqlite:////path/to/superset.db?check_same_thread=false'
一旦超集启动并运行,就通过 UI 配置 pinotdb 连接。