環境構築はいつも面倒だ#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の最新化
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
///
この記事が気に入ったらサポートをしてみませんか?