与Jupyterlab的Omnisci集成

jupyterlab-omnisci的Python项目详细描述


综合实验室

连接到omnisci,查询它们的数据库,并呈现omnisci风格的vega规范, 都在朱庇特实验室。

binder logo

example

安装

首先,安装jupyterlab和pymapd以及jupyterlab-omniscipython包:

conda install -c conda-forge pymapd nodejs

pip install jupyterlab-omnisci

然后安装jupyterlab-omniscijupyterlab扩展:

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

omnisciurl参数使用会话id启动一些应该准备就绪的活动。 ^ {< CD9> } URL参数清除将要加载的任何现有工作区, 因为我们要用自己的来代替它。 如果一切正常,您应该看到如下内容:

session

4.高级配置

OmniSciSessionManager是会话id的默认提供程序, 但这可以配置并由其他实现替代。 例如,如果要从另一个位置获取连接数据 除了环境变量和本地文件之外,您可以将其替换为 自己实现。

为此,您需要编写一个新的会话管理器来实现接口 在this文件中给出, 并将笔记本服务器配置为在^{}:

c.OmniSciConfig.session_manager="your_new_module.YourImplementation"

常见问题解答

  1. 有些事情不对劲。我该怎么办? 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java Webstart“javaws open”标志不适用于多个参数   java ArrayList声明和处理   获取数组中值的百分比(Java)   java将ArrayList转换为字符串以存储在共享首选项中   Java8Lambdas与泛型的结合使用   Scala数组到Java   如何使用java知道webcontainer的路径?   java使用“收集”和“合并”的组背后的算法是什么   java OSGi:在两个不同的包中具有相同的包路径   java混淆了swt画布。重画   java正则表达式,用于5位数逗号分隔的值,例如047000480004900   使用HttpClient显示非ASCI字符的java   水塔计算程序Java中球体体积的计算   java根据给定值调整框架中所有组件的大小   java Builder类中的其他方法(lombok注释)