与Jupyterlab的Omnisci集成
jupyterlab-omnisci的Python项目详细描述
综合实验室
连接到omnisci,查询它们的数据库,并呈现omnisci风格的vega规范, 都在朱庇特实验室。
安装
首先,安装jupyterlab和pymapd
以及jupyterlab-omnisci
python包:
conda install -c conda-forge pymapd nodejs pip install jupyterlab-omnisci
然后安装jupyterlab-omnisci
jupyterlab扩展:
jupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build jupyter labextension install jupyterlab-omnisci
然后启动jupyterlab:
jupyter lab
执行SQL查询
通过转到file>;new>;omnici sql editor或单击启动程序上的图标,可以打开omicsi sql编辑器。
通过单击右侧的蓝色图标输入数据库凭据:
然后您可以输入一个sql查询并点击三角形以查看结果:
若要设置将被保存并用于新编辑器的默认连接,请转到settings>;设置默认omnici连接…。
IBIS入门
一旦设置了默认连接,就可以运行inject ibis omnisci connection命令,在单元格前面加上ibis连接。
创建可视化效果
查看introduction notebook了解如何在笔记本中使用omnisci 。
使用会话ID
在某些上下文中,用户可能来自另一个上下文(例如omnisci immerge) 他们已经有一个到Omnisci数据库的认证会话。 此扩展提供了一种将会话信息传递给jupyterlab的方法,以便 可以继续不间断地进行数据分析。 但是,设置此设置需要一些步骤:
1.启用会话管理器服务器扩展。
我们必须扩展到jupyterlab服务器,它知道如何找到会话
然后可以传递给前端应用程序的信息。
一旦安装了包jupyterlab_omnisci
,就可以通过运行
jupyter serverextension enable --sys-prefix jupyterlab_omnisci.serverextension
如果这有效,则不应看到任何错误消息,并且可以验证 它是通过运行
jupyter serverextension list
2.设置用户环境
用户环境应该为扩展做好准备,以获取必要的信息。
此设置可能发生在容器启动期间,或在生成jupyter服务器进程之后。
默认情况下,扩展查找omnisci服务器的协议、主机和端口
在环境变量中。
这些变量的名称可以在用户的jupyter_notebook_config.py
:
c.OmniSciSessionManager.protocol='OMNISCI_PROTOCOL'c.OmniSciSessionManager.host='OMNISCI_HOST'c.OmniSciSessionManager.port='OMNISCI_PORT'
会话id更为短暂。扩展名在磁盘上的文件中查找该信息。
此文件应为纯文本,并包含会话ID和其他内容。
必须在jupyter_notebook_config.py
文件中配置此文件的位置,
否则它将不知道在哪里找到会话:
c.OmniSciSessionManager.session_file='/path/to/session/file'
3将用户定向到会话
启用服务器扩展并配置用户环境后,
它应该可以随时使用。
您可以将用户发送到可以使用的工作区
指向此url(其中BASE_URL
是服务器根目录):
{BASE_URL}/lab?omnisci&reset
omnisci
url参数使用会话id启动一些应该准备就绪的活动。
^ {< CD9> } URL参数清除将要加载的任何现有工作区,
因为我们要用自己的来代替它。
如果一切正常,您应该看到如下内容:
4.高级配置
OmniSciSessionManager
是会话id的默认提供程序,
但这可以配置并由其他实现替代。
例如,如果要从另一个位置获取连接数据
除了环境变量和本地文件之外,您可以将其替换为
自己实现。
为此,您需要编写一个新的会话管理器来实现接口
在this文件中给出,
并将笔记本服务器配置为在^{
c.OmniSciConfig.session_manager="your_new_module.YourImplementation"
常见问题解答
- 有些事情不对劲。我该怎么办? Open an issue!这可能不是你的错,许多集成是新的,我们需要你的反馈来理解什么用例是重要的。
从源安装
要从源安装,请在终端中运行以下命令:
git clone git@github.com:Quansight/jupyterlab-omnisci.git cd jupyterlab-omnisci conda env create -f binder/environment.yml conda activate jupyterlab-omnisci jlpm install jlpm run build jupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build jupyter labextension install . jupyter serverextension enable --sys-prefix jupyterlab_omnisci.serverextension
释放
首先创建一个测试环境:
conda create -n tmp -c conda-forge pymapd nodejs conda activate tmp
然后在setup.py
中弹出python版本并上载测试版本:
pip install --upgrade setuptools wheel twine rm -rf dist/ python setup.py sdist bdist_wheel twine upload --repository-url https://test.pypi.org/legacy/ dist/*
在新环境中安装测试版本:
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple jupyterlab_omnisci
现在在package.json
中增加javascript包的版本。运行生成,
创建一个tarball,并将其作为jupyterlab扩展安装:
yarn run build yarn pack --filename out.tgz jupyter labextension install @jupyter-widgets/jupyterlab-manager@0.40.x --no-build jupyter labextension install out.tgz
现在打开jupyterlab并运行notebooks
中的所有笔记本,以确保
它们仍然正确渲染。
现在您可以发布python包:
twine upload dist/*
并发布节点包:
npm publish out.tgz