このトピックでは、CLI を使用して Presto に接続し、Presto を使用してデータをクエリする方法について説明します。
前提条件
Presto サービスがデプロイされた V3.45.0、V5.11.0 以降のマイナーバージョンの E-MapReduce(EMR)クラスターが作成されていること。詳細については、クラスターの作成をご参照ください。
共通クラスター
クラスターの作成時に [kerberos 認証] を有効にしていない場合、クラスターは共通クラスターです。
SSH モードで目的のクラスターにログオンします。詳細については、クラスターへのログオンをご参照ください。
次のコマンドを実行して、Presto CLI を開きます。
presto --server master-1-1:8889次のステートメントを実行して、テーブルデータを表示します。
select * from <catalog>.<schema>.<table>;上記のステートメントのパラメーター:
<catalog>:接続先のデータソースの名前を指定します。show catalogs;コマンドを実行して、すべてのカタログを表示できます。また、EMR コンソールの Presto サービスページの [構成] タブですべてのカタログを表示することもできます。<schema>:データをクエリするデータベースの名前を指定します。<table>:データをクエリするテーブルの名前を指定します。たとえば、Hive のデフォルトデータベースの
testテーブルからデータをクエリする場合、select * from hive.default.test;ステートメントを実行できます。
オプション。
quit;コマンドを実行して、Presto CLI を終了します。
高セキュリティクラスター
クラスターの作成時に [kerberos 認証] を有効にした場合、クラスターは高セキュリティクラスターです。
SSH モードで目的のクラスターにログオンします。詳細については、クラスターへのログオンをご参照ください。
次のコマンドを実行して、Presto CLI を開きます。
presto --server https://${FQDN}:7779 \ --krb5-config-path /etc/krb5.conf \ --keystore-path /etc/emr/presto-conf/keystore \ --keystore-password ${pwd} \ --krb5-keytab-path /etc/emr/presto-conf/presto.keytab \ --krb5-principal presto/${FQDN}@${REALM} \ --krb5-remote-service-name presto \ --user presto/${FQDN}重要高セキュリティクラスターの Presto サービスには、HTTPS 経由でのみアクセスできます。HTTP ポート 8889 はアクセスできず、指定された http-server.http.port は http-server.https.port によって上書きされます。HTTPS ポート 7779 のみを使用して Presto サービスにアクセスできます。
パラメーター
説明
${FQDN}
master-1-1 ノードの完全修飾ドメイン名(FQDN)。FQDN は
master-1-1.c-xxxxxxx.cn-xxxxxx.emr.aliyuncs.com形式である必要があります。hostname -fコマンドを実行して FQDN を取得できます。--krb5-config-path
config.properties ファイルの
http.authentication.krb5.configパラメーターの値。値は/etc/krb5.confに固定されています。--keystore-path
config.properties ファイルの
http-server.https.keystore.pathパラメーターの値。値は/etc/emr/presto-conf/keystoreに固定されています。--keystore-password
config.properties ファイルの
http-server.https.keystore.keyパラメーターの値。この例では、値は ${pwd} です。値は自分で取得する必要があります。master-1-1 ノードでawk -F= '/http-server.https.keystore.key/{print $2}' ${PRESTO_CONF_DIR}/config.propertiesコマンドを実行して値を取得できます。--krb5-keytab-path
config.properties ファイルの
http-server.authentication.krb5.keytabパラメーターの値。値は/etc/emr/presto-conf/presto.keytabに固定されています。${REALM}
Kerberos レルム。値は自分で取得する必要があります。Trino の Kerberos レルムとは異なり、Presto の Kerberos レルムは構成ファイルでは構成されていません。
/etcディレクトリに保存されている krb5.conf ファイルで Kerberos レルムを表示できます。EMR では、Kerberos レルムはEMR.C-XXXXXX.COM形式です。--krb5-remote-service-name
config.properties ファイルの
http.server.authentication.krb5.service-nameパラメーターの値。値はprestoに固定されています。次のステートメントを実行して、テーブルデータを表示します。
select * from <catalog>.<schema>.<table>;上記のステートメントのパラメーター:
<catalog>:接続先のデータソースの名前を指定します。show catalogs;コマンドを実行して、すべてのカタログを表示できます。また、EMR コンソールの Presto サービスページの [構成] タブですべてのカタログを表示することもできます。<schema>:データをクエリするデータベースの名前を指定します。<table>:データをクエリするテーブルの名前を指定します。たとえば、Hive のデフォルトデータベースの
testテーブルからデータをクエリする場合、select * from hive.default.test;ステートメントを実行できます。
オプション。
quit;コマンドを実行して、Presto CLI を終了します。
参照
Java Database Connectivity(JDBC)を使用して Presto に接続し、複雑なデータのクエリ、分析、処理、またはクエリ結果を Java アプリケーションに統合できます。詳細については、JDBC の使用をご参照ください。