THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

Davide Mauri

A place for my thoughts and experiences the Microsoft Data Platform

Apache Zeppelin 0.7 for SQL Server

During the weekend I’ve updated my SQL Server interpreter for the amazing Apache Zeppelin to be compatible with the latest version — 0.7— that has been released just couple of days ago:

Apache Zeppelin Release 0.7.0

This new release has a lot of nice features (customizable charts, better multi-user support, improved tables and many others) and in order to start to use the new features also with SQL Server and SQL Azure, the first step was to sync the existing interpreter with version 0.7. Well, that’s done.


You can download the source code and build it yourself from here:

GitHub - yorek/zeppelin: Apache Zeppelin with support for SQL Server

or get the Docker image with everything already built, for maximum comfort:

If you’re new to Apache Zeppelin, you can take a look at the articles I’ve already written to help people to get started:

Breaking Changes

In order to take advantage of automatic interpreter discovery and native syntax highlight introduced in version 0.7, I had to rename the interpreter group and the interpreter name to sqlserver from tsql. This means that any binding to the tsql interpreter will be invalid which, in turn, means that all notebook using it won’t work. Luckily fixing this situation is easy: just create a new interpreter binding, using sqlserver as interpreter group and give it the same name you used before. Make sure the notebooks affected use this new binding (as the default one if in your notebooks you didn’t use the %interpreter notation) and you’re done.

Updating Docker Container to version 0.7

If you were already running a docker container with Apache Zeppelin for SQL Server, you may have notebook and interpreter configurations that you want to keep.

The process to update everything without losing any existing work is the following (just be sure also to read the “Breaking Changes” section above!):

Get the updated image

docker pull yorek/zeppelin-sqlserver:v0.7

Once it’s downloaded, check if you have any running container

docker ps

If you see an Apache Zeppelin container is running (it is named zeppelin if you followed my tutorials), stop it

docker stop zeppelin

Now create a new container pointing to the volumes of the previous version. The new container will automatically use the updated image

docker run -name zeppelin2 -p 8080:8080 -volumes-from zeppelin -d yorek/zeppelin-sqlserver:v0.7

List again all the existing containers (running and not running)

docker ps -a

Note that the old zeppelin container the is still there and if not needed can be removed

docker rm zeppelin

The new container can now be renamed to the usual name

docker rename zeppelin2 zeppelin

The old image can also be removed to free disk space

docker rmi yorek/zeppelin-sqlserver:v0.6.2

Now check that only one zeppelin container, with the version 0.7, is available:

docker ps

Upgrade done! Now you can start Apache Zeppelin for SQL Server with the usual command:

docker start zeppelin

and you’ll have access to all your existing notebooks and interpreter bindings.

Published Wednesday, February 22, 2017 4:55 AM by Davide Mauri

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS


No Comments

Leave a Comment


About Davide Mauri

Davide Mauri - MCP, MCAD, MCDBA, MCT, MVP on SQL Server - has worked with SQL Server since version 6.5, and his interests cover the whole platform, from the Relational Engine to Analysis Services, from architecture definition to performance tuning. He also has a strong knowledge of XML, .NET and the Object Oriented Design principles, which allows him to have the correct vision and experience to handle development of complex business intelligence solutions. Having worked as a Microsoft Certified Teacher for many years, Davide is able to pass all his knowledge to his co-workers, allowing his team to deliver high-quality solutions. He currently works as a Mentor for SolidQ and can be found speaking in many Italian and internationals events.

This Blog


Privacy Statement