はじめに
ibm-lh-clientパッケージには、watsonx.dataへのアクセスや、watsonx.dataと連携するアプリケーションを開発するための便利なユーティリティとライブラリが含まれています。
ここでは ibm-lh-clientパッケージを使用してwatsonx.dataのPrestoへ接続するためのエンジンの登録方法を紹介します。
環境
使用したサーバ環境は以下になります。
・Red Hat OpenShift Container Platform 4.14
・IBM Cloud Pak for Data (CP4D) 5.0.3
・IBM watsonx.data 2.0.3
・Presto (Java) v0.286
使用したクラアント環境は以下になります。
・Red Hat Enterprise Linux release 8.10 (Ootpa)
・Podman version 4.9.4-rhel
事前準備
ibm-lh-clientを設定する前に、ibm-lh-clientをインストールして下さい。ibm-lh-clientのインストールについて、次のQiita記事をご参照ください: ibm-lh-clientのインストール。この記事では、ibm-lh-clientパッケージを${HOME}/watsonxdata
ディレクトリの下にインストールしました。
設定手順
1.必要情報収集
今回ibm-lh-clientパッケージで次の作業を行います。
- connect-lhを使用してPrestoエンジンを登録設定する
- cert-mgmtを使用してSSL接続証明書を作成する
- watsonx.dataへの接続を設定する
そのために、まずは必要な情報を収集します。
(1)watsonx.dataのusernameとpasswordの確認
usernameは、watsonx.dataソフトウェアまたはIBM Cloud Pak for Data (CP4D)上のwatsonx.dataを使用できるユーザーです。passwordはそのユーザーのパスワードです。
(2)Prestoエンジンのhost名の確認
確認方法1: watosnx.dataのインフラストラクチャー・マネージャーで、Prestoエンジンの外部ホストを確認します。この外部ホストは今回使うhost名です。
確認方法2: ocコマンドをインストールしてあれば、ocコマンドでもPrestoエンジンのhost名を取得可能です。以下の出力のibm-lh-lakehouse-presto-01-presto-svc-cpd-operands.apps.XXXXX.ocp.techzone.ibm.com
はhost名です。
[user01@client ~]$ oc get route ibm-lh-lakehouse-presto-01-presto-svc
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
ibm-lh-lakehouse-presto-01-presto-svc ibm-lh-lakehouse-presto-01-presto-svc-cpd-operands.apps.XXXXX.ocp.techzone.ibm.com ibm-lh-lakehouse-presto-01-presto-svc 8443 reencrypt None
(3)Prestoエンジンのportの確認
今回デフォルトのportを使います。watsonx.dataソフトウェアおよびIBM Cloud Pak for Data (CP4D)上のwatsonx.dataのデフォルトportは443です。
(4)watsonx.dataのinstance_nameの確認
IBM Cloud Pak for Data (CP4D)のページでインスタンス
をクリックし、次のページを開くとインスタンスの名前(instance_name)lakehouse
を確認できます。
2.Prestoエンジンを登録設定する
次にibm-lh-clientパッケージのconnect-lhを使用して、接続情報を登録します。connect-lhの構文は次の通りです。
connect-lh --op=add \
--name=<alias> \
--host=<host> \
--port=<port> \
--username=<username> \
--password=<password>
以下の例では、PrestoエンジンにPRESTO01
という別名をつけます。
[user01@client ~]$ cd ${HOME}/watsonxdata
[user01@client watsonxdata]$cd ibm-lh-client
[user01@client watsonxdata]$cd bin
[user01@client bin]$./connect-lh --op=add --name=PRESTO01 --host=ibm-lh-lakehouse-presto-01-presto-svc-cpd-operands.apps.XXXXX.ocp.techzone.ibm.com --port=443 --username=cpadmin --password=XXXX
registering engine PRESTO01 ..
registered PRESTO01.
以下のコマンドで、現在登録されているPrestoエンジンをリストできます。
[user01@client bin]./connect-lh --op=list
PRESTO01
3.cert-mgmtを使用してSSL接続証明書を作成する
ここでは、cert-mgmtを利用してSSL接続証明書を作成します。詳細については、cert-mgmtを確認してください。cert-mgmtの構文は以下の通りです。
./cert-mgmt --op=add --host=<hostname> --port=<port>
以下の例では、上の必要情報収集で収集したhost名とportを使います。
[user01@client bin]$ ./cert-mgmt --op=add --host=ibm-lh-lakehouse-presto-01-presto-svc-cpd-operands.apps.XXXXX.ocp.techzone.ibm.com --port=443
importing certificate ..
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R11
verify return:1
depth=0 CN = XXXXX.ocp.techzone.ibm.com
verify return:1
DONE
Certificate was added to keystore
ibm-lh-lakehouse-presto-01-presto-svc-cpd-operands.apps.XXXXX.ocp.techzone.ibm.com:443, Sep 30, 2024, trustedCertEntry,
Certificate fingerprint (SHA-256): C8:94:5D:AC:70:EA:14:37:AB:43:68:4A:FA:35:AD:E8:2B:87:60:15:D3:7D:45:16:4D:ED:DB:B2:81:82:93:FA
/mnt/infra/tls/truststore.jks updated.
注意点:IBM watsonx.data on IBM Cloud
に接続する場合、このステップはスキップできます。
4.watsonx.dataへの接続を設定する
watsonx.dataのタイプに応じて、異なるコマンドを利用します。詳細については、Setting up the ibm-lh utility:Configure connectivity to watsonx.data.を確認してださい。今回はIBM watsonx.data on Cloud Pak for Data
を利用しているので、以下のコマンドを利用します。
./ibm-lh config add_cpd --name <instance_name> --host <hostname> --port <port>
以下の例では、上の必要情報収集で収集したinstance_name、host名とportを使います。
[user01@client bin]$ ./ibm-lh config add_cpd --name lakehouse --host=ibm-lh-lakehouse-presto-01-presto-svc-cpd-operands.apps.XXXXX.ocp.techzone.ibm.com --port=443
{'component': 'config', 'action': 'add_cpd', 'name': 'lakehouse', 'host': 'ibm-lh-lakehouse-presto-01-presto-svc-cpd-operands.apps.XXXXX.ocp.techzone.ibm.com', 'port': '443'}
Config file updated with Host : ibm-lh-lakehouse-presto-01-presto-svc-cpd-operands.apps.XXXXX.ocp.techzone.ibm.com and Port : 443
以上、この4つのステップで、ibm-lh-clientの設定が完了しました。
参考資料
ibm-lh-clientの設定について、Setting up the ibm-lh utilityを参考してください。