LoginSignup
7
0

More than 1 year has passed since last update.

Teradata Jupyter ExtensionsをJupyter Hubにデプロイする方法

Last updated at Posted at 2022-10-14

著者 Hailing Jiang
最終更新日 2021年11月17日

警告
本記事はTeradata CorporationによるGetting Startedに掲載された内容を抄訳したものです。掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。正確な内容については、原本をご参照下さい。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。

概要

独自のJupyterHubクラスターをお持ちのお客様には、Teradata Jupyterエクステンションを既存のクラスターに統合するための2つのオプションがあります。

① Teradata Jupyter Docker イメージを使用する。
② 既存のDockerイメージをカスタマイズしてTeradataエクステンションを含める。

このページでは、2つのオプションの詳細な手順を説明します。手順は、お客様のJupyterHubのデプロイがZero to JupyterHub with Kubernetesをベースにしていることを前提にしています。

Vantageの新しいインスタンスが必要な場合は、Google CloudAzureAWSのクラウドにVantage Expressという無料版をインストールすることができます。また、VMwareVirtualBox、またはUTMを使用して、ローカルマシン上でVantage Expressを実行することもできます。

Teradata Jupyter Docker イメージの使用

Teradataは、jupyter/datascience-notebookイメージをベースにした、すぐに実行可能なDockerイメージを提供しています。Teradata SQLカーネル、Teradata PythonおよびRライブラリとドライバー、Teradata Jupyter拡張をバンドルし、Teradataデータベースと対話しながら生産性を向上させることができます。また、このイメージには、SQLカーネル、拡張機能、Teradataライブラリの使用方法を示すサンプルノートブックが含まれています。

このイメージは以下のように使用することができます。

・ローカルのDockerコンテナで個人用Jupyter Notebookサーバを起動する。
・JupyterHubを使用したチーム向けJupyterLabサーバの実行

ローカルDockerコンテナで個人用JupyterLabサーバーを起動する手順については、インストールガイドをご覧ください。ここでは、お客様の既存のJupyterHub環境でTeradata Jupyter Dockerイメージを使用する方法を中心に説明します。

Teradata Jupyter Docker イメージをレジストリにインストールします。

Vantage Modules for Jupyter のページにアクセスし、Docker イメージをダウンロードします。tarballで、teradatajupyterlabext_VERSION.tar.gzという形式になっています。

② イメージをロードします。

docker_load.sh
docker load -i teradatajupyterlabext_VERSION.tar.gz

③ イメージをDockerレジストリにプッシュします。

docker_push
docker push

シンプルにするために、読み込んだ画像の名前を変更することを検討するとよいでしょう。

docker_tag
docker tag OLD_IMAGE_NAME NEW_IMAGE_NAME

JupyterHubでTeradata Jupyter Docker イメージを使用する

① Teradata Jupyter DockerイメージをJupyterHubクラスタで直接使用するには、JupyterHubドキュメントに記載されているようにoverrideファイルを変更します。REGISTRY_URLVERSIONを上記の手順で適切な値に置き換えてください。

chg_override
singleuser:
  image:
  name: REGISTRY_URL/teradatajupyterlabext_VERSION
  tag: latest

JupyterHubのドキュメントに記載されているように、クラスタに変更を適用

複数のプロファイルを使用することで、ユーザーがJupyterHubにログインする際に使用する画像を選択することができます。複数のプロファイルを設定する詳細な手順と例については、JupyterHubのドキュメントを参照してください。

Teradata Jupyter Dockerイメージのカスタマイズ

Teradata Jupyter Dockerイメージにバンドルされていないパッケージやノートブックが必要な場合、Teradataイメージをベースイメージとして使用し、その上に新しいイメージをビルドすることをお勧めします。

以下は、Teradataイメージの上にビルドし、追加のパッケージとノートブックを追加するDockerfileの例です。Dockerfileを使用して新しいDockerイメージを構築し、イメージを指定のレジストリにプッシュし、新しいイメージをシングルユーザーイメージとして使用するために上記のようにオーバーライドファイルを変更し、上記のようにクラスタに変更を適用します。REGISTRY_URL と VERSION は適切な値に置き換えてください。

add_pkg
FROM REGISTRY_URL/teradatajupyterlabext_VERSION:latest

# install additional packages
RUN pip install --no-cache-dir astropy

# copy notebooks
COPY notebooks/. /tmp/JupyterLabRoot/DemoNotebooks/

既存のDockerイメージをカスタマイズしてTeradataの拡張機能を含める

Teradata SQLカーネルとエクステンションは、現在使用している既存のイメージに含めることができます。

Vantage Modules for Jupyterページから、zip圧縮されたTeradata Jupyter extensionsパッケージバンドルがダウンロードできます。 既存のDockerイメージがLinuxベースである場合は、Linux版のダウンロードを使用します。 そうでない場合は、使用しているプラットフォーム用にダウンロードします。 .zipファイルには、Teradata SQL Kernel、エクステンション、サンプルノートブックが含まれています。

② バンドルファイルを作業ディレクトリに解凍してください。

③ 以下は、既存のDockerイメージにTeradata Jupyterエクステンションを追加するためのDockerfileの例です。Dockerfileを使用して新しいDockerイメージを構築し、イメージを指定のレジストリにプッシュし、新しいイメージをシングルユーザーイメージとして使用するために上記のようにオーバーライドファイルを変更し、変更をクラスタに適用します。

dockerfile_add
FROM REGISTRY_URL/your-existing-image:tag
ENV NB_USER=jovyan \
  HOME=/home/jovyan \
  EXT_DIR=/opt/teradata/jupyterext/packages

USER root

##############################################################
# Install kernel and copy supporting files
##############################################################

# Copy the kernel
COPY ./teradatakernel /usr/local/bin
RUN chmod 755 /usr/local/bin/teradatakernel

# Copy directory with kernel.json file into image
COPY ./teradatasql teradatasql/

##############################################################
# Switch to user jovyan to copy the notebooks and license files.
##############################################################

USER $NB_USER

# Copy notebooks
COPY ./notebooks/ /tmp/JupyterLabRoot/TeradataSampleNotebooks/

# Copy license files
COPY ./ThirdPartyLicenses /tmp/JupyterLabRoot/ThirdPartyLicenses/

USER root

# Install the kernel file to /opt/conda jupyter lab instance
RUN jupyter kernelspec install ./teradatasql --prefix=/opt/conda

##############################################################
# Install Teradata extensions
##############################################################

COPY ./teradata_*.tgz $EXT_DIR

WORKDIR $EXT_DIR

RUN jupyter labextension install --no-build teradata_database* && \
  jupyter labextension install --no-build teradata_resultset* && \
  jupyter labextension install --no-build teradata_sqlhighlighter* && \
  jupyter labextension install --no-build teradata_connection_manager* && \
  jupyter labextension install --no-build teradata_preferences* && \
  jupyter lab build --dev-build=False --minimize=False && \
  rm -rf *

WORKDIR $HOME

# Give back ownership of /opt/conda to  jovyan
RUN chown -R jovyan:users /opt/conda

# Jupyter will create .local directory
RUN rm -rf $HOME/.local

④ Teradata package for PythonとTeradata package for Rはオプションでインストールすることができます。
Teradata Package for Python - teradataml download page
Teradata Package for R - tdplyr download page

さらに詳しく

Teradata Jupyter Extensions Website
Teradata Vantage™ Modules for Jupyter Installation Guide
Teradata® Package for Python User Guide

Teradata Vantageへのお問合せ

Teradata Vantage へのお問合せ

7
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0