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適合部署到生產環境合適嗎?

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載,覺得這篇寫 SQLAlchemy Core,寫得非常不錯。不過后續他沒寫SQLAlchemy ORM... ...
    非夢nj閱讀 5,470評論 1 14
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發此異常。 O...
    我想起個好名字閱讀 5,429評論 0 9
  • MySQL&python交互 一、Python操作MySQL步驟(原始的執行SQL語句) 引入pymysql模塊 ...
    夢醒家先生閱讀 714評論 0 0
  • 常用語句: sql/plus sqlplus 'amdocs/Amdocs.Jx.China.110#@ysdb1...
    好好學習的蝸牛閱讀 3,069評論 0 0
  • 我很難過,我的同仁們在拿出十分的敬業精神在拼中招,而我的學生們卻悠哉悠哉地沒有自主性地散漫地自欺欺人地裝模作樣地學...
    復古劉海閱讀 208評論 0 2