Jupyter连接Kylin

看到一个插件ipython-sql , 可以在Jupyter中直接运行SQL语句. 测试了一下, 操作MySQL成功.

疑问

项目中我们主要使用Kylin. 能否用Jupyter连接Kylin?

思考

ipython-sql文档中写到:

Connect to a database, using SQLAlchemy connect strings, then issue SQL commands within IPython or IPython Notebook.

ipython-sql使用SQLAlchemy连接数据库.

kylin官网中介绍了一个python驱动,kylinpy, 它支持sqlalchemy.

官方给的例子:

    $ python
    >>> import sqlalchemy as sa
    >>> kylin_engine = sa.create_engine('kylin://username:password@hostname:7070/learn_kylin?version=v1')
    >>> results = kylin_engine.execute('SELECT count(*) FROM KYLIN_SALES')
    >>> [e for e in results]

猜测

通过 kylinpy+ipython-sql可以实现在Jupyter中查询Kylin.

测试验证

首先, 安装 kylinpy

pip install --upgrade kylinpy

Jupyter 中:

  1. 加载SQL解析器. 连接 Kylin
%load_ext sql

%sql kylin://username:password@hostname:7070/learn_kylin
  1. 在cell 中执行SQL
%%sql
select * from tab_x

执行报错: 语法错误.
通过抓包,发现 ipython-sql会在语句后, 自动追加一条 commit语句. kylin不支持commit, 所以报错!

最终方案

翻文档, 找到了禁用自动提交的方法. 修改成如下:

#  加载 SQL 解释器
%load_ext sql

# 禁用自动提交
%config SqlMagic.autocommit=false

# 连接kylin
%sql kylin://username:password@hostname:7070/learn_kylin

执行SQL语句

%%sql
select * from tab_x

执行成功 !

思考

Jupyterzeppelin相比. 画图功能有点繁琐, 不过页面响应速度比较快 :)

Jupyter适合部署到生产环境合适吗?

你可能感兴趣的:(Jupyter连接Kylin)