一:安装
①hue.ini文件修改
name=ClickHouse
interface=sqlalchemy
options='{"url":"clickhouse://user:password@localhost:8123/default"}'
②安装依赖库
pip install infi.clickhouse-orm==1.0.3 sqlalchemy-clickhouse
③以上是对最新版的docker hue镜像 docker安装修改配置**
FROM gethue/hue:latest
RUN /usr/share/hue/build/env/bin/python2.7 -m pip install --upgrade pip -i https://pypi.douban.com/simple && \
./build/env/bin/pip install infi.clickhouse-orm==1.0.3 sqlalchemy-clickhouse -i https://pypi.douban.com/simple
#COPY sql_alchemy.py /usr/share/hue/desktop/libs/notebook/src/notebook/connectors/sql_alchemy.py
最新版的hue 镜像已经修好了这个问题 直接安装俩库即可。
还如果有关于这个的问题:self.interpreter.get('dialect_properties', {}).get('has_use_statement')按下面修改即可
if self.options['url'].startswith('phoenix://') or self.options['url'].startswith('presto://') or \
self.interpreter.get('dialect_properties') and self.interpreter['dialect_properties']['trim_statement_semicolon']:
statement = statement.strip().rstrip(';')
#if self.interpreter.get('dialect_properties', {}).get('has_use_statement') and snippet.get('database'):
# connection.execute('USE ' + snippet['database'])
result = connection.execute(statement)
④hue重启
二:踩坑记录
①infi.clickhouse-orm2.0.1 sqlalchemy-clickhouse0.1.4.post0
import connector
File "/usr/share/hue/build/env/local/lib/python2.7/site-packages/sqlalchemy_clickhouse/connector.py", line 12, in <module>
from infi.clickhouse_orm.models import ModelBase
File "/usr/share/hue/build/env/local/lib/python2.7/site-packages/infi/clickhouse_orm/__init__.py", line 3, in <module>
from infi.clickhouse_orm.database import *
File "/usr/share/hue/build/env/local/lib/python2.7/site-packages/infi/clickhouse_orm/database.py", line 6, in <module>
from .models import ModelBase
File "/usr/share/hue/build/env/local/lib/python2.7/site-packages/infi/clickhouse_orm/models.py", line 127
class Model(metaclass=ModelBase):
^
SyntaxError: invalid syntax
[11/Dec/2020 22:46:43 +0800] decorators ERROR Error running execute
②infi.clickhouse-orm1.4.0 sqlalchemy-clickhouse0.1.4.post0
Exception: Code: 516, e.displayText() = DB::Exception: default: Authentication failed: password is incorrect or there is no user with such name (version 20.3.21.2 (official build))