見出し画像

環境構築はいつも面倒だ#04: Teradata用のJupyter Lab拡張機能セットアップ

Jupyter Labで利用できるTeradata SQL Kernelをセットアップします。これは何かというと、Jupyter LabのノートブックにSQLを書いて実行することができる代物です。基本的には以下にあるインストレーションガイドに沿ってセットアップすれば良いのですが、以下のインストレーションガイドには二つの実装形態が記載されており、一つはDocker版、もう一つが今回ご紹介する形態です。Docker版はPython、Jupyter Lab, R、そしてTeradata SQL Kernelがすでにセットアップされたものを起動するだけなので便利は便利なのですが、Rのggplot2を使っていたらグラフの日本語が文字化けしてしまうため、これを嫌がってもう一つのマニュアルセットアップの方法を使ってみました。

なお、環境はWindows10で、以下の通りPython, Jupyter Labをインストール済みです

そしてTeradataもインストール済み


node.js / npmのインストール

まず、環境として必要となるnode.js(含むnpm)をインストールします。以下からインストールファイルをダウンロード、記載時点ではnode-v18.17.1-x64.msiというファイルを落としました。基本道なり、Tool for Native Modules, Automatically install the necessary tools.はチェックを入れていません

バージョンの確認が必要とのことで確認。上述のインストレーションガイドには以下とある:

  • JupyterLab 3.0 or later

  • Node v12.0 or later

  • npm 6.9.0 or later

一方で確認されたバージョンは以下。いずれも大丈夫ですね

  • Jupyter Lab (コマンドプロンプトからjupyter lab --version): 4.0.5

  • Node.js (コマンドプロンプトからnode --version): v18.17.1

  • npm (コマンドプロンプトからnpm --version): 9.6.7


Teradata SQL Kernelのインストール

以下から、Windows Desktopをクリックしてファイルをダウンロード(会員登録が必要です)。ファイル名は記載時点でteradatasqlwin_3.4.1-d05242023.zipです

そしてこれを解凍。以下のようなフォルダが作成され、その中にいろいろファイルが解凍されます。
teradatasqlwin_3.4.1-d05242023

解凍場所はどこでもいいですが、一応以降では以下に解凍した体で話を進めます
C:\Users\yourusername\teradatasqlwin_3.4.1-d05242023

そして解凍したファイルの一つに、teradatakernel.exeがあります(C:\Users\yourusername\teradatasqlwin_3.4.1-d05242023\teradatakernel.exe)。
これがある場所(C:\Users\yourusername\teradatasqlwin_3.4.1-d05242023)を環境変数に記述しておきます。検索(Win+s)から環境変数と入力して[環境変数を編集]を選択。開いたウィンドウの上側[yourusernameのユーザー環境変数]内 > Pathをクリック > 編集 > 上述のパスを新規で追加します。ユーザー名やディレクトリ名が異なる場合はそれに応じて、teradatakernel.exeがある場所をセットします

コマンドプロンプトからteradatakernel --versionと打ち込み、以下のようなメッセージが出ればパスが通っています

init 1720
Version = 3.4.1-d05242023

続いてコマンドプロンプトからteradatakernel.exeがあるディレクトリに移動し、以下を実行します。Windowsのエクスプローラーからそのディレクトリのパス窓にcmdと打ち込むとそのディレクトリ配下でコマンドプロンプトが起動して便利です

jupyter kernelspec install teradatasql

以下のようなメッセージが出ます

[InstallKernelSpec] Installed kernelspec teradatasql 
in C:\ProgramData\jupyter\kernels\teradatasql

これでカーネル自体はインストールされたはずですので、コマンドプロンプトから以下を実行して確認します

jupyter kernelspec list

以下のようなメッセージが出ます。肝はAvailable kernels:以降の3行目で、これによるとirはRを、python3はPythonを、そして3行目はTeradata SQL Kernelがあることを意味します

0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
Available kernels:
ir             C:\Users\yourusername\AppData\Roaming\jupyter\kernels\ir
python3        C:\Users\yourusername\AppData\Local\Programs\Python\Python311\share\jupyter\kernels\python3
teradatasql    C:\ProgramData\jupyter\kernels\teradatasql

ただし、これで終わりではありません。いくつか追加のアドインをセットアップする必要があります。そしてその前にLong Pathを使えるように設定を変更します。検索(Win+s)からregeditと入力してレジストリエディタを開き、以下をたどって、LongPathsEnabledにたどり着き、値のデータを1にセットします
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled

そしてコマンドプロンプトから以下を実行します。以下のファイルはいずれも上述のteradatakernel.exeがある場所と同じ場所に解凍されてあるはずですので、そこに移動して実行しましょう。まあまあ時間がかかるので気長にお待ちください

jupyter labextension install teradata_database_explorer-v3.4.1.tgz
jupyter labextension install teradata_resultset_renderer-v3.4.1.tgz
jupyter labextension install teradata_sqlhighlighter-v3.4.1.tgz
jupyter labextension install teradata_connection_manager-v3.4.1.tgz
jupyter labextension install teradata_preferences-v3.4.1.tgz

続いて以下も実行。これもまあまあ時間がかかります。インストレーションガイドでは上記の作業とどちらかで良いのか、両方必要なのかいまいち判別がつかないため、両方実施しました。重複作業なのかもしれませんが両方やって問題はなかったです。ファイルは同じくteradatakernel.exeがある場所と同じ場所に解凍されてあるはずです

pip install teradata_database_explorer_prebuilt-3.4.1.tar.gz
pip install teradata_resultset_renderer_prebuilt-3.4.1.tar.gz
pip install teradata_sqlhighlighter_prebuilt-3.4.1.tar.gz
pip install teradata_connection_manager_prebuilt-3.4.1.tar.gz
pip install teradata_preferences_prebuilt-3.4.1.tar.gz

完了したら以下を実行して確認

jupyter labextension list

すると以下のようなメッセージが出るかと思います

JupyterLab v3.6.5
C:\Users\yourusername\AppData\Local\Programs\Python\Python311\share\jupyter\labextensions
jupyterlab_pygments v0.2.2 enabled ok (python, jupyterlab_pygments)
teradata_connection_manager v3.4.1 enabled ok (python, teradata_connection_manager)
teradata_database_explorer v3.4.1 enabled ok (python, teradata_database_explorer)
teradata_preferences v3.4.1 enabled ok (python, teradata_preferences)
teradata_resultset_renderer v3.4.1 enabled ok (python, teradata_resultset_renderer)
teradata_sqlhighlighter v3.4.1 enabled ok (python, teradata_sqlhighlighter)
@jupyter-widgets/jupyterlab-manager v5.0.8 enabled ok (python, jupyterlab_widgets)
Other labextensions (built into JupyterLab)
app dir: C:\Users\yourusername\AppData\Local\Programs\Python\Python311\share\jupyter\lab

これでJupyter Labを実行し、以下のようにTeradata SQLのアイコン(オレンジ色の丸に白い字でt)が表示されたら完了しているはずです

Jupyter Labのランチャー画面、Teradata SQL Kernel追加後

これで動くはずですが、一応最新バージョンにしておきます。Jupyter Labの最新化

pip install --upgrade IPython ipykernel ipywidgets jupyter_client jupyter_core jupyter_server jupyterlab nbclient nbconvert nbformat notebook qtconsole traitlets

そして上記を実行すると上述のTeradata SQL Kernel系の拡張機能ががアップデートされていない旨メッセージが出るので、こちらも最新に

pip install --upgrade teradata-connection-manager-prebuilt teradata-database-explorer-prebuilt teradata-preferences-prebuilt teradata-resultset-renderer-prebuilt teradata-sqlhighlighter-prebuilt

ここら辺の詳細は以下にまとめました

きちんと動くかどうかは別の記事のウォークスルーで確認しましょう

取り急ぎ以上です。ぐるりのあたりをうろうろしていたら、割と大きめのネズミが飛び出してきて、前を走っていたマラソンランナーが驚いていました。ネズミがそのまま海に飛び込んで、それをスズキが大きな口で捕食するさまを夢想したのですが、ネズミはどこかに去っていきました。

#teradata #teradatasqlkernel #jupyterlab  

///


この記事が気に入ったらサポートをしてみませんか?