Ошибка Apache Superset 1.3 при подключении к Presto через SASL
Попытка подключить Apache Superset 1.3 к Trino / Presto с помощью Kerberos. Возможность успешно установить плагины с помощью pip install pyhive['presto']==0.6.2, также пробовал другие версии.
При попытке выполнить тест подключения я получаю следующую ошибку
[SupersetError(message='(builtins.NoneType) None\ n (Справочная информация об этой ошибке на: http://sqlalche.me/e/13/dbapi)', error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR:'GENERIC_DB_ENGINE_ERROR:' GENERIC_DB_ENGINE_ERRINE], level = <ErrorLevel.ERROR: 'error'>, extra ={'engine_name': 'Presto', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - База данных вернула непредвиденную ошибку.' }]})]2021-09-03 10:22:54,708: ПРЕДУПРЕЖДЕНИЕ: superset.views.base:[SupersetError(message='(builtins.NoneType) None\ n (Справочная информация об этой ошибке на: http: // sqlalche.me / e / 13 / dbapi)', error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR:' GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR:' error '>, extra={'engine_name ':' Prestodes ',' issue: [{'код': 1002, 'сообщение': 'Проблема 1002 - база данных вернула непредвиденную ошибку
Я пробовал эту конфигурацию в своем engine_params
"kerberos_principal" : "myuser@MYDOMAIN.COM", "requests_kwargs": {"verify":""}}}
В документации над набором указано, что это проблема с серверной БД, то есть Presto https://superset.apache.org/docs/miscellaneous/issue-codes
Нет абсолютно никаких проблем с тем, чтобы эта работа работала с LDAP, т.е. имя пользователя: пароль . Проблема только в использовании Kerberos.
Чтобы отладить это дальше, на уровне python и SQLAlchemy я попробовал эти шаги. Работает безупречно с LDAP.
>>> from sqlalchemy import *
>>> from sqlalchemy.engine import create_engine
>>> from sqlalchemy.schema import *
>>> engine = create_engine('presto://myuser:mypassword@presto-coordinator:8080/hive/default', connect_args={'protocol': 'https','port' : 8080,'auth':'Kerberos','Kerberos_Config_Path':'/etc/krb5.conf','Kerberos_Keyta
b_Path':'/opt/superset/mykeytab.keytab','Kerberos_Principal':'myuser@MYDOMAIN.COM','Kerberos_Remote_Service_Name':'presto'})
Однако одна за другой мы продолжаем получать ошибку, когда специфические свойства kerberos являются «unknown», начинаются с «auth», а затем жалуются на все ключи kerberos, например, «kerberos_principal», «kerberos_config_path» и т. Д.
Traceback (most recent call last):
File "/opt/app-root/lib64/python3.8/site-packages/sqlalchemy/engine/base.py", line 1204, in _execute_context
context = constructor(dialect, self, conn, *args)
File "/opt/app-root/lib64/python3.8/site-packages/sqlalchemy/engine/default.py", line 1044, in _init_statement
self.cursor = self.create_cursor()
File "/opt/app-root/lib64/python3.8/site-packages/sqlalchemy/engine/default.py", line 1177, in create_cursor
return self._dbapi_connection.cursor()
File "/opt/app-root/lib64/python3.8/site-packages/sqlalchemy/pool/base.py", line 1000, in cursor
return self.connection.cursor(*args, **kwargs)
File "/opt/app-root/lib64/python3.8/site-packages/pyhive/presto.py", line 67, in cursor
return Cursor(*self._args, **self._kwargs)
TypeError: __init__() got an unexpected keyword argument 'auth'
Может ли кто-нибудь поделиться, если у вас был подобный опыт ??