服务访问

更新时间:
复制 MD 格式

Lindorm 支持直连 OLAP 资源组和通过宽表引擎智能路由两种服务访问方式,分别适用于纯数据分析和业务查询兼顾分析的场景。根据业务需求选择合适的访问方式,即可连接 OLAP 资源组执行分析查询。

选择访问方式

根据业务场景选择合适的访问方式。

访问方式

适用场景

连接对象

是否需要 Hint

直连 OLAP 资源组

纯粹的数据分析场景,例如对接 BI 报表工具、探索性查询

OLAP 资源组

通过宽表引擎智能路由

日常业务查询(高并发点查)兼顾复杂分析查询

宽表引擎

方式一(SQL Hint)需要;方式二(连接串参数)不需要

前提条件

  • 已完成服务的开通与授权,并已创建 OLAP 资源组。如未完成,参考开通与管理

  • 已将客户端 IP 地址添加至 Lindorm 白名单

直连 OLAP 资源组服务

适用场景:纯粹的数据分析场景,例如对接 BI 报表工具、数据分析师进行探索性查询等。

工作原理:直接使用 OLAP 资源组的独立地址进行连接。

操作步骤

  1. 登录 Lindorm 管理控制台。

  2. 在页面左上角,选择实例所属的地域。

  3. 在实例列表页,单击目标实例 ID 或者目标实例所在行操作列的管理

  4. 在左侧导航栏,选择配置与管理 > 数据库连接

  5. 在顶部选择计算引擎页签,在 OLAP连接方式区域找到目标资源组,获取其专有网络连接地址。获取的连接地址格式为 主机名:端口号,例如 ld-bp1dv4****-proxy-ldps.lindorm.aliyuncs.com:9030

  6. 配置 MySQL 客户端

  7. 通过 MySQL 协议连接 OLAP 资源组。将步骤 5 获取的连接地址拆分为主机名和端口号,分别通过 -h-P 参数指定,使用 Lindorm 宽表引擎的用户名和密码登录。

    mysql -hld-bp1dv4****-proxy-ldps.lindorm.aliyuncs.com -P9030 -uroot -p
  8. 验证连接是否成功。执行以上命令后,如果显示 MySQL 命令行提示符,表示已成功连接到 OLAP 资源组,即可输入需要执行的 SQL 语句。

通过宽表引擎智能路由查询

适用场景:在日常业务查询(高并发点查)的同时,偶尔需要执行复杂的分析查询。

工作原理:连接宽表引擎,通过为 SQL 添加特定注释(Hint)或指定连接串参数,将复杂查询路由到 OLAP 资源组执行。连接宽表引擎的方式参见通过 Lindorm-cli 连接通过 MySQL 协议连接

可以通过以下两种方式将查询路由到 OLAP 资源组:

  • 方式一(SQL Hint):为每条查询语句添加 Hint,灵活控制单条 SQL 是否转发以及转发到哪个资源组。

  • 方式二(连接串参数):在建立连接时指定参数,连接建立后所有查询自动路由到指定的 OLAP 资源组。

方式一:通过 SQL Hint 转发查询

通过 MySQL 客户端或 Lindorm-cli 连接到 Lindorm 宽表引擎后,可以使用 _use_ldps_ Hint 将特定 SQL 转发至 OLAP 资源组执行。

语法格式

/*+ _use_ldps_($olap_cg_name) */
重要

此 Hint 必须紧跟在 SELECT 关键字之后。

代码示例

-- 使用数据库
USE db01;

-- 将查询转发到默认 OLAP 资源组
SELECT /*+ _use_ldps_ */ * FROM tb01 LIMIT 5;

-- 将查询转发到指定 OLAP 资源组
SELECT /*+ _use_ldps_(olap_cg0) */ * FROM tb01 LIMIT 5;

参数说明

变量

类型

默认值

说明

olap_cg_name

String

默认 OLAP 资源组

指定查询要转发到的 OLAP 资源组名称。如果未指定,查询会被转发到默认资源组。

设置默认 OLAP 资源组的方式参考开通与管理

在转发时动态设置会话变量

将查询转发到 OLAP 资源组时,还可以通过 SET_VAR Hint 控制 OLAP 引擎执行该查询时的行为,例如调整并发度、开启优化选项等。

语法格式

/*+ SET_VAR(key1 = value1, key2 = value2) */
重要

SET_VAR Hint 必须紧跟在 _use_ldps_ Hint 之后,且不能与转发 Hint 共用一个注释块。

代码示例

-- 指定多个查询的会话变量
SELECT /*+ _use_ldps_ */ /*+ SET_VAR(query_timeout = 60, enable_profile = true) */ * FROM tb01 LIMIT 5;

参数说明

变量

类型

默认值

说明

适用场景建议

query_timeout

INT

-

设置查询超时时间,单位为秒。

需要限制长时间查询的执行时长时使用。

enable_profile

BOOL

FALSE

开启查询 Profile 功能,用于分析查询执行过程。

排查查询性能问题时使用。

方式二:通过连接串指定 OLAP 资源组

连接宽表引擎时,通过连接串指定 _use_ldps_=truecompute-group=<资源组名称> 参数,可将该连接的所有查询自动路由到指定的 OLAP 资源组,无需逐条 SQL 添加 Hint。

通过 Lindorm-cli 连接

通过 Lindorm-cli 连接宽表引擎时,在 JDBC URL 后添加 ?_use_ldps_=true&compute-group=<OLAP 资源组名称> 参数,并在 URL 参数前后添加半角双引号。示例如下:

./lindorm-cli -url "jdbc:lindorm:table:url=http://ld-bp12pt80qr38p****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060?_use_ldps_=true&compute-group=olapcg1" -username <用户名> -password <密码>

连接成功后,执行查询语句即可自动使用指定的 OLAP 资源组,具体查询操作可参考数据访问说明。查询语法格式如下:

SELECT * FROM <Catalog名称>.<目标数据库名>.<目标表名>;

其中 <Catalog名称> 为数据目录名称,通常为 lindorm_columnar。如果使用默认数据库 default,查询时需要为数据库名添加反引号。示例如下:

SELECT * FROM lindorm_columnar.`default`.test_table;

通过 JDBC 连接

通过 MySQL 协议连接宽表引擎时,通过 JDBC URL 的 connectionAttributes 参数指定 _use_ldps_:truecompute-group:<资源组名称>。假设 OLAP 资源组名称为 olapcg1,连接串示例如下:

jdbc:mysql://ld-bp17j28j2y7pm****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com:33060/?connectionAttributes=_use_ldps_:true,compute-group:olapcg1
说明

关于 JDBC 应用开发的详细信息,参见通过 MySQL 协议连接和使用 MySQL 协议(推荐)