Trino CLI

重要

現在、この機能はプレビュー段階にあります。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加の使用条件」に記載されています。 この特定のプレビューについては、Azure HDInsight on AKS のプレビュー情報に関する記事をご覧ください。 質問や機能の提案については、詳細を記載した要求を AskHDInsight で送信してください。また、その他の更新情報については、Azure HDInsight コミュニティのフォローをお願いいたします。

Trino CLI for HDInsight on AKS には、クエリを実行するためのターミナル ベースの対話型シェルが用意されています。

Windows へのインストール

Windows では、MSI を使用して Trino CLI for HDInsight on AKS がインストールされるので、Windows コマンド プロンプト (CMD) または PowerShell から CLI にアクセスできます。 Linux 用 Windows サブシステム (WSL) 向けにインストールする場合は、「Linux へのインストール」を参照してください。

必要条件

  • Java 8 または 11

  • PATH に java.exe を追加するか、JRE インストール ディレクトリーを指す JAVA_HOME 環境変数を %JAVA_HOME%\bin\java.exe が存在するように定義します。

インストールまたは更新

MSI パッケージは、Windows で Trino CLI for HDInsight on AKS をインストールまたは更新するために使用されます。

Trino CLI の最新のリリースをダウンロードしてインストールします。 インストーラーによって、コンピューターに変更を加えるかどうかを尋ねるメッセージが表示されたら、[はい] をクリックします。 インストールが完了したら、Trino CLI を使用するには、アクティブな Windows コマンド プロンプトまたは PowerShell のウィンドウを閉じてから再度開く必要があります。

Trino CLI のダウンロード: https://aka.ms/InstallTrinoCLIWindows

Trino CLI を実行する

コマンド プロンプトで "trino-cli" を使用して Trino CLI を実行し、クラスターに接続できます。

trino-cli --server <cluster_endpoint>

Note

ヘッドレス OS (Web ブラウザーなし) で実行する場合、Trino CLI では認証にデバイス コードを使用することが要求されます。 コマンド ライン パラメーターの --auth AzureDeviceCode を指定して、デバイス コードを強制的に使用することもできます。 この場合は、別のデバイス/OS でブラウザーを開き、表示されたコードを入力して認証した後、CLI に戻る必要があります。

トラブルシューティング

ここでは、Windows に Trino CLI をインストールする際に発生する一般的な問題をいくつか示します。

プロキシによる接続のブロック

プロキシにより接続がブロックされているため MSI インストーラーをダウンロードできない場合、プロキシを正しく構成していることを確認します。 Windows 10 の場合、これらの設定は、[設定] > [ネットワークとインターネット] > [プロキシ] ペインで管理されます。 必要な設定またはお使いのマシンの構成が管理されている状況や高度なセットアップが必要な状況については、システム管理者にお問い合わせください。

MSI を取得するには、プロキシで次のアドレスへの HTTPS 接続を許可する必要があります。

  • https://aka.ms/
  • https://hdionaksresources.blob.core.windows.net/

アンインストール

Windows の "アプリと機能" の一覧から Trino CLI をアンインストールできます。 アンインストールするには、次のようにします。

プラットフォーム Instructions
Windows 10 [スタート] > [設定] > [アプリ]
Windows 8 および Windows 7 [スタート] > [コントロール パネル] > [プログラム] > [プログラムのアンインストール]

この画面に移動したら、プログラムの検索バーに "Trino" と入力します。 アンインストールするプログラムは、"HDInsight Trino CLI <バージョン>" として表示されます。 このアプリケーションを選択し、[アンインストール] ボタンをクリックします。

Linux をインストールする

Trino CLI には、クエリを実行するためのターミナル ベースの対話型シェルが用意されています。 [インストール スクリプト] オプションを選択して、Trino CLI を Linux に手動でインストールできます。

必要条件

  • Java 8 または 11

  • PATH に java を追加するか、JRE インストール ディレクトリーを指す JAVA_HOME 環境変数を $JAVA_HOME/bin/java が存在するように定義します。

インストールまたは更新

CLI をインストールおよび更新するには、いずれの場合もインストール スクリプトを再実行する必要があります。 curl を実行して CLI をインストールします。

curl -L https://aka.ms/InstallTrinoCli | bash

スクリプトをダウンロードして、ローカルで実行することもできます。 変更を有効にするために、シェルの再起動が必要になる場合があります。

Trino CLI を実行する

シェルから "trino-cli" コマンドを使用して Trino CLI を実行し、クラスターに接続できます。

trino-cli --server <cluster_endpoint>

Note

ヘッドレス OS (Web ブラウザーなし) で実行する場合、Trino CLI では認証にデバイス コードを使用することが要求されます。 コマンド ライン パラメーターの --auth AzureDeviceCode を指定して、デバイス コードを強制的に使用することもできます。 この場合は、別のデバイス/OS でブラウザーを開き、表示されたコードを入力して認証した後、CLI に戻る必要があります。

トラブルシューティング

ここでは、手動インストール中に発生する一般的な問題をいくつか示します。

curl の "Object Moved" エラー

curl で -L パラメーターに関連するエラーが発生した場合や、"Object Moved" というテキストが含まれているエラー メッセージが表示された場合は、次のように、aka.ms リダイレクトの代わりに完全な URL を使用してみてください。

curl https://hdionaksresources.blob.core.windows.net/trino/cli/install.sh | bash

trino-cli コマンドが見つからない

hash -r

インストール後にシェルを再起動しなかった場合にも、この問題が発生することがあります。 trino-cli コマンドの場所 ($HOME/bin) が $PATH にあることを確認します。

プロキシによる接続のブロック

インストール スクリプトを取得するには、プロキシで次のアドレスへの HTTPS 接続を許可する必要があります。

  • https://aka.ms/
  • https://hdionaksresources.blob.core.windows.net/

Uninstall

すべての trino-cli ファイルを削除するには、次のコマンドを実行します。

rm $HOME/bin/trino-cli
rm -r $HOME/lib/trino-cli

認証

Trino CLI では、コマンド ライン パラメーターを使用した Microsoft Entra 認証のさまざまな方法がサポートされています。 次の表は、重要なパラメータと認証方法について説明するものです。詳細については、認証に関する記事を参照してください。

CLI でも使用できるパラメーターの説明:

trino-cli --help
パラメーター 意味 必須 説明
auth 認証方法の名前 いいえ ユーザー資格情報を指定する方法を決定します。 指定していない場合は AzureDefault が使用されます。
azure-client Client ID AzureClientSecret, AzureClientCertificate については、はい。 サービス プリンシパル/アプリケーションのクライアント ID。
azure-tenant テナント ID AzureClientSecret, AzureClientCertificate については、はい。 Microsoft Entra テナント ID。
azure-certificate-path 証明書へのファイル パス AzureClientCertificate については、はい。 証明書の pfx/pem ファイルへのパス。
azure-use-token-cache トークン キャッシュを使用するかどうか いいえ 指定した場合、アクセス トークンはキャッシュされ、AzureDefault, AzureInteractive, AzureDeviceCode モードで再利用されます。
azure-scope トークンのスコープ いいえ トークンを要求する Microsoft Entra スコープ文字列。
use-device-code デバイス コード メソッドを使用するかどうか いいえ これは、--auth AzureDeviceCode に相当します。
password サービス プリンシパルのクライアント シークレット AzureClientSecret については、はい。 AzureClientSecret モードを使用する場合のサービス プリンシパルのシークレット/パスワード。
access-token JWT のアクセス トークン いいえ 外部からアクセス トークンを取得する場合は、このパラメータを使用して指定できます。 この場合、auth パラメータは使用できません。

説明 CLI コマンド
AzureDefault trino-cli --server cluster1.pool1.region.projecthilo.net
対話型ブラウザーの認証 trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive
トークン キャッシュの使用 trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive --azure-use-token-cache
シークレットを持つサービス プリンシパル trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureClientSecret --azure-client 11111111-1111-1111-1111-111111111111 --azure-tenant 11111111-1111-1111-1111-111111111111 --password
サービス プリンシパルと保護された証明書 (パスワードが求められます) trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureClientCertificate --azure-client 11111111-1111-1111-1111-111111111111 --azure-certificate-path d:\tmp\cert.pfx --azure-tenant 11111111-1111-1111-1111-111111111111 --password

トラブルシューティング

MissingAccessToken または InvalidAccessToken

CLI には、次のいずれかのエラーが表示されます。

Error running command: Authentication failed: {
  "code": "MissingAccessToken",
  "message": "Unable to find the token or get the required claims from it."
}
Error running command: Error starting query at https://<cluster-endpoint>/v1/statement returned an invalid response: JsonResponse{statusCode=500, statusMessage=, headers={content-type=[application/json; charset=utf-8], date=[Fri, 16 Jun 2023 18:25:23 GMT], strict-transport-security=[max-age=15724800; includeSubDomains]}, hasValue=false} [Error: {
  "code": "InvalidAccessToken",
  "message": "Unable to find the token or get the required claims from it"
}]

この問題を解決するには、次の手順をお試しください。

  1. Trino CLI を終了します。
  2. az logout を実行します。
  3. az login -t <your-trino-cluster-tenantId> を実行します。
  4. これで、このコマンドが機能します。
trino-cli --server <cluster-endpoint>
  1. または、認証/テナント パラメーターを指定します。
trino-cli --server <cluster-endpoint> --auth AzureInteractive --azure-tenant <trino-cluster-tenantId>

403 無効

CLI に次のエラーが表示されます。

Error running command: Error starting query at  https://<cluster-endpoint>/v1/statement returned an invalid response: JsonResponse{statusCode=403, statusMessage=, headers={content-length=[146], content-type=[text/html], date=[Wed, 25 May 2023 16:49:24 GMT], strict-transport-security=[max-age=15724800; includeSubDomains]}, hasValue=false} [Error: <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>
]

この問題を解決するには、承認プロファイルにユーザーまたはグループを追加します。