SQL独享版是日志服务提供的计费资源,用于SQL分析。SQL独享版针对日志服务免费的SQL分析功能存在的操作并发数限制和分析数据量限制进行了优化。

前提条件

背景信息

当您在使用SQL分析时,如果数据量较大,日志服务无法在一次查询中完整扫描这个时间段内的所有日志。为了快速返回结果,日志服务限制了每个Shard扫描的数据量,先返回部分不精确的结果。针对该问题,推荐您增加Shard数量,以增加计算资源。但该方法存在如下问题:增加Shard后只对新写入的数据生效,不能解决旧数据的读取问题。另外,增加Shard会影响数据消费,导致消费的客户端过多。

日志服务推出SQL独享版,用于SQL分析。SQL独享版为计费资源,支持更强大的SQL分析;SQL普通版为免费资源,存在更多的资源限制。更多信息,请参见使用限制
说明 SQL独享版和普通版同时存在,您可以在查询和分析时指定所要使用的版本。

优势

日志服务推出的SQL独享版,支持更强大的SQL分析。与普通版相比,具有如下优势:
  • 高性能且无数据量限制,支持千亿级数据的高性能分析。
  • 高并发数,单个Project支持的最大分析操作并发数从15个调整为100个。
  • 独享资源,性能不受其他用户突发流量影响。

应用场景

SQL独享版主要应用于以下场景:
  • 分析性能要求高的场景,例如实时数据分析。
  • 长周期的数据分析场景,例如月维度的数据分析。
  • 大规模业务的数据分析场景,例如每天TB级别的数据分析。
  • 通过日志服务实现多指标多维度(SQL并发数大于15个)的报表需求场景。

开启SQL独享版

日志服务支持如下两种开启方式。
  • 单次开启:在执行查询和分析操作时,单击SQL独享版图标。仅当前Logstore下的查询和分析操作使用SQL独享版。
  • 默认开启:打开是否默认开启的开关,则当前Project下的SQL独享版为开启状态,即当前Project下所有查询和分析操作(包括告警、仪表盘等)都默认使用SQL独享版。

单次开启SQL独享版

  1. 登录日志服务控制台
  2. 在Project列表区域,单击目标Project。
  3. 日志存储 > 日志库页签中,单击目标Logstore。
  4. 单击SQL独享版图标。
    开启SQL独享版后,您可以使用SQL独享版执行查询和分析操作。具体操作,请参见查询和分析日志

默认开启SQL独享版

  1. 登录日志服务控制台
  2. 在Project列表区域,单击目标Project。
  3. 单击项目概览图标。
  4. 将鼠标悬浮在SQL独享版CU数上,然后单击设置
    SQL独享版
  5. 编辑SQL独享版CU数面板中,打开是否默认开启的开关,然后单击确定

SDK示例

常见问题

  • 如何通过API开启SQL独享版?

    您可以在GetLogs接口中,通过powerSql参数或query参数开启SQL独享版。更多信息,请参见GetLogs

  • 如何获取CPU时间?
    执行查询和分析操作后,将鼠标悬浮在分析结果上,查看CPU时间,如下图所示。计费
  • SQL独享版的费用是否可控?
    日志服务通过SQL独享版的CU数来控制SQL独享版的费用。您可以在目标Project的概览页面中,配置SQL独享版CU数,如下图所示。
    说明 CU(Compute Unit)是SQL独享版运行过程中可以并行使用的计算核数。
    核数
  • 使用一次SQL独享版的费用是多少?

    在不同的数据量中执行不同的查询和分析语句,会产生不同的SQL独享版费用,案例如下表所示。

    查询和分析语句数据量(行)平均每次的费用(美元
    * | select avg(double_0) from stress_s1_mil140亿0.004435
    * | select avg(double_0), sum(double_0), max(double_0), min(double_0), count(double_0) from stress_s1_mil140亿0.006504
    * | select avg(double_0), sum(double_1), max(double_2), min(double_3), count(double_4) from stress_s1_mil140亿0.013600
    * | select key_0 , avg(double_0) as pv from stress_s1_mil1 group by key_0 order by pv desc limit 100040亿0.011826
    * | select long_0, avg(double_0) as pv from stress_s1_mil1 group by long_0 order by pv desc limit 100040亿0.011087
    * | select long_0, long_1, avg(double_0) as pv from stress_s1_mil1 group by long_0,long_1 order by pv desc limit 1000 3亿0.010791
    * | select avg(double_0) from stress_s1_mil1 where key_0='key_987'40亿0.00007