从运行查询Presto(C++) CLI 或查询工作区

IBM® watsonx.data允许运行 SQL 查询Presto(C++)CLI 或通过查询工作区或不使用查询优化器

关于本任务

您可以选择运行Presto(C++)使用或不使用的 CLI 查询查询优化器运算符watsonx.data使用以下步骤。

跑步Presto(C++)查询:

  1. 选项 1:跑步Presto(C++)使用以下方式进行查询查询优化器

    a. 运行以下命令进入目录 "ibm-lh-client/bin

    cd ibm-lh-client/bin
    

    b. 创建 SQL 文件并将文件路径导出为 "LH_SANDBOX_DIR。 例如,文件名为 "sql-files

    export LH_SANDBOX_DIR=<path to sql-files>
    

    c. 获取引擎名称列表并选择要使用的引擎名称。 例如,发动机名称为 "engine1

    ./manage-engines --op=list
     export engine_name=engine1
    

    d. 运行以下命令运行Presto(C++)使用以下方式查询查询优化器

    ./presto-run --engine=$engine_name --session is_query_rewriter_plugin_enabled=true -f $LH_SANDBOX_DIR/sql-files.sql
    

    必须在 USE 语句中使用全限定名称(3 部分名称,如 "<catalog.schema.table>)或 2 部分名称来限定目录和模式。

    举例说明:3 部分名称:"select * from "catalog".schema.table;

    2 零件名称:"use "catalog".schema; followed by select * from schema.table;

  2. 选项 2:跑步Presto(C++)不使用 CLI 查询查询优化器

    a. 运行以下命令进入目录 ibm-lh-client/bin:

    cd ibm-lh-client/bin
    

    b. 创建 SQL 文件并将文件路径导出为 "LH_SANDBOX_DIR。 例如,文件名为 "sql-files

    export LH_SANDBOX_DIR=<path to sql-files>
    

    c. 获取引擎名称列表并选择要使用的引擎名称。 例如,发动机名称为 "engine1

    ./manage-engines --op=list
    export engine_name=engine1
    

    d. 运行以下命令可在不使用查询优化器的情况下运行 Presto (C++) 查询。

    ./presto-run --engine=$engine_name --session is_query_rewriter_plugin_enabled=false -f $LH_SANDBOX_DIR/sql-files.sql
    

    如果会话参数 is_query_rewriter_plugin_enabled 设置为 false,则无法执行 ExecuteWxdQueryOptimizer 命令。

  3. 按照步骤获取查询详情,并验证执行的查询是否经过优化:

    1. 登录控制台 watsonx.data。

    2. 从导航菜单打开基础设施管理器页面。

    3. 单击Presto(C++) 引擎,打开组件详细信息页面。

    4. 复制并浏览主机 URL 的 Presto (C++)引擎的详细信息页面,打开集群概览外部网页。

    5. 输入用户名和密码登录群集概览页面。

      用户名:用户名为“ibmlhapikey 或”ibmlhapikey_<watsonx.datauser_id>。 密码:watsonx.data用户的 API 密钥。 有关检索 API 密钥的更多信息,请参阅 生成 API 密钥

      从 watsonx.data 版本 开始,使用 ibmlhapikeyibmlhtoken 作为 2.2.0 用户名的身份验证已被弃用。 这些格式将在发布 2.3.0 中逐步淘汰。 为确保与即将推出的版本兼容,请使用新格式:ibmlhapikey_<username>ibmlhtoken_<username>

    6. 单击要验证的查询 ID。 这将打开查询详细信息页面。

    7. "查询详情"页面打开 JSON 文件,验证参数 "is_query_rewriter_plugin_succeeded 的值是否为 "true 或 "false。 优化查询的参数值设置为 "true