【DAYU数据服务】默认分页与自定义分页的区别

举报
精灵小小小 发表于 2020/08/21 09:34:50 2020/08/21
【摘要】 1、 默认分页(1) 创建API时,取数方式为配置方式对于配置方式取数的API来说,当用户配置了API之后,DLM服务会在用户调试/调用的时候生成相应的SQL进行取数,其分页方式为默认分页。例如,如果将API的请求参数、返回参数、排序参数按照以下配置的话:DLM服务生成的SQL为: SELECT c,x FROM tableName Where c = {p} AND x = {h} ...

1、 默认分页

(1)    创建API时,取数方式为配置方式

对于配置方式取数的API来说,当用户配置了API之后,DLM服务会在用户调试/调用的时候生成相应的SQL进行取数,其分页方式为默认分页。例如,如果将API的请求参数、返回参数、排序参数按照以下配置的话:

DLM服务生成的SQL为:

 SELECT c,x FROM tableName Where c = {p} AND x = {h} ORDER BY c,x

(其中p,h为用户传入的p,h参数的实际值)

除此之后DLM针对配置方式的API还会加上默认的分页,从而转变成以下SQL:

SELECT c,x FROM tableName Where c = {p} AND x = {h} ORDER BY c,x limit {pageNum} offset {offsetValue }

(其中pageNum, offsetValue为基于用户传入参数的实际值)

如果用户未定义pageNum参数的话,DLM将默认给这个API设置一个pageNum参数。offsetValue是基于用户传入的pageSize参数计算得到的,同样如果用户未定义pagSize参数的话,DLM服务将默认给这个API设置一个pageSize参数。

用户未定义分页参数(page_num、page_size)时的调试页面

用户定义了分页参数(page_num、page_size)时的调试页面

如果用户是通过SDK、Postman或者其他方式调用时,如果不传page_num和page_size的值的话(page_size和page_num的位置都位于QUERY中),则默认page_num = 1并且page_size=100.(注意:取数方式为配置的API page_size最大支持500,取数方式为脚本的API page_size最大支持2000. )

(2)    创建API时,取数方式为脚本方式

创建API时,如果取数方式为脚本方式的话,其分页的方式可选择默认分页或者自定义分页,如下图所示:

默认分页是指用户在创建API时输入了SQL,DLM服务会自动基于SQL外层包装分页逻辑(注意:DLI、HIVE数据源不支持默认方式)。例如用户输入的SQL脚本为SELECT * FROM tableName, DLM服务在处理调试或者调用时,将自动在用户SQL外层包装分页逻辑从而变成以下SQL:

SELECT * FROM (SELECT * FROM tableName) LIMIT {pageSize} OFFSET {offsetValue }

(其中pageNum, offsetValue为基于用户传入参数的实际值,pageNum和pageSize相关说明请查看第一节内容)

自定义分页是指用户在创建API时,DLM服务将不对用户SQL进行处理,分页逻辑完全由用户定义。如果用户需要创建分页的API的话,则可以在写SQL时加入分页逻辑。例如:

SELECT * FROM tableName LIMIT {pageSize} OFFSET {offsetValue }

(其中pageNum, offsetValue为基于用户传入参数的实际值,pageNum和pageSize相关说明请查看第一节)


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。