海量数据下Lindorm查询实践
1. 创建资源
开始实验之前,您需要先创建ECS实例资源。
- 在实验室页面,单击创建资源。
- (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。
说明:创建过程需要约15分钟左右,请您耐心等待。
2. 实验背景说明
本步骤无需操作,可观看后进入下一步骤。
- 该实验会创建 uci_credit_card 表,该表是信用卡客户的模拟数据,字段的详细描述请参考下面描述:
ID:每个客户的ID LIMIT_BAL:以新台币计的给定信用额度(包括个人和家庭/辅助信用额) 性别:性别(1 =男性,2 =女性) 教育程度:(1 =研究生院,2 =大学,3 =高中,4 =其他,5 =未知,6 =未知) 婚姻:婚姻状况(1 =已婚,2 =单,3 =其他) 年龄:岁 PAY_0:2005年9月的还款状态(-1 =正常付款,1 =延迟一个月的付款,2 =延迟两个月的付款,…8 =延迟八个月的付款,9 =延迟9个月以上的付款) PAY_2:2005年8月的还款状态(与上述相同) PAY_3:2005年7月的还款状态(与上述相同) PAY_4:2005年6月的还款状态(与上面相同) PAY_5:2005年5月的还款状态(与上述相同) PAY_6:2005年4月的还款状态(与上述相同) BILL_AMT1:2005年9月的帐单金额(新台币) BILL_AMT2:2005年8月的对帐单金额(新台币) BILL_AMT3:2005年7月的帐单金额(新台币) BILL_AMT4:2005年6月的帐单金额(新台币) BILL_AMT5:2005年5月的对帐单金额(新台币) BILL_AMT6:2005年4月的帐单金额(新台币) PAY_AMT1:2005年9月的先前付款金额(新台币) PAY_AMT2:2005年8月的先前付款金额(新台币) PAY_AMT3:2005年7月的先前付款金额(新台币) PAY_AMT4:2005年6月的先前付款金额(新台币) PAY_AMT5:2005年5月的先前付款金额(新台币) PAY_AMT6:2005年4月的先前付款金额(新台币) default.payment.next.month:默认付款(1 =是,0 =否)
3. 初始化数据
本步骤将指导您登录Lindorm 控制台,为后面的控制台操作做准备。然后指导您执行数据初始化脚本,为后面的SQL查询提供表数据以及提供监控数据模拟请求。
一、登录Lindorm控制台
- 资源创建成功以后,左侧”实验手册“下方会显示子用户的基本信息
- 双击屏幕中的 “Chromium” 浏览器,选择实验手册下的用户名,点击“下一步”
- 复制用户名下的“子用户密码”,在密码输入框鼠标右键单击(实验室端里面,ctrl+v 快捷键无法生效),选择“粘贴“, 选择”登录“
- 进入控制台,搜索框输入“lindorm”,会显示 ”云原生多模数据库Lindorm“ 的控制台。或者直接在实验浏览器输入以下地址就可以访问上海地区的控制台。
https://lindorm.console.aliyun.com/cn-shanghai/cluster
- 选择对应的“地域”-华东2(上海),找到对应的“Lindorm实例”,单击实例链接,进入”实例详情“页面注意实例ID 要和左侧的“云产品资源” TAB栏下的Lindorm 实例ID一致,地域也要保持一致(默认一般是上海)。
- 进去以后需要用户确认”可运维时间段“,点击”确认“即可。
二、访问WebTerminal
- 鼠标点击右上角的“切换至Web Terminal”,,登录到ECS
- 执行 ls可以看到 /root 目录有一个初始化好的导入jar 包
- 执行 yum install -y java 安装 JDK(安装需要30s左右,请您耐心等待),安装结束以后,执行 java -version 来确认 JDK1.8 安装成功
- 安装结束以后,找到“云产品资源”下面的 “Lindorm实例ID” , 复制 Lindorm实例ID并替换掉下面的实例id 部分即可。
备注:实例ID 请替换成实际的Lindorm实例ID,否则会没法导入数据。
- 然后执行下面命令:
cd ~ nohup java -Xms1G -Xmx1G -Durl="jdbc:lindorm:table:url=http://实例id-proxy-lindorm.lindorm.rds.aliyuncs.com:30060" -Dlindorm_user="root" -Dlindorm_password="root" -jar credit_demo.jar &
- 如果显示如下截图,没有报错,表明加载程序在运行中。
4. 在线演示
本步骤将指导您访问 Lindorm Insight 管理页面,在该平台上体验 Lindorm SQL 查询数据。
一、访问Lindorm Insight
- 点击右上角 “切换到远程桌面”
- 添加 IP 白名单
- 浏览器新开一个Tab,访问 `https://tool.lu/ip/` ,看到自己的外网ip 地址,例如 `140.205.11.13`
- 浏览器窗口切换回Lindorm控制台
- 选择 “访问控制”-“白名单”,点击“修改分组白名单“,输入上一步获取的外网ip,(如果白名单已经存在多个ip ,直接在尾部添加逗号和ip )
- 点击”确认“以后,大概10-30秒左右,集群状态会变为”运行中“,表示添加白名单成功。
- 选择“宽表引擎”-“集群管理”,第一次访问,需要“重置UI访问密码”
- 用户名、密码都输入 root ,点击“确定“。
- 选择 ”ClusterManager公网“,如果弹出添加ip白名单的提示框,点击”确认“。
- 第一次登录Lindorm Insight,需要输入刚刚重置的用户名、密码(默认是root),点击”登录“
- 如果一直弹不出登录框,请确保前面”添加ip白名单“步骤已经完成。
- 访问Lindorm Insight,进入“数据查询”-“SQL执行器”,namespace 选择“default", 右边就会展示当前namespace 存在的表:uci_credit_card/uci_credit_card_bak
说明:uci_credit_card 表记录的是台湾某年的信用卡模拟数据。
- 可在sql窗口内执行sql查询语句,以下为部分实例(可选部分进行操作)
- 查看用户 ID = 10000的个人数据
select * from uci_credit_card where ID = 10000;
查询结果:
- 查询信用额度 > 20000 的有多少人。
select count(*) from uci_credit_card where LIMIT_BAL > 20000.0 ;
查询结果:
- 查看 2005年9月的还款状态-1(正常付款)、1(延迟一个月)的总人数。
select count(*) from uci_credit_card where PAY_0 in (-1,1)
查询结果:
- 查询年龄25-40岁之间的最大、平均、最小信贷额度。
select max(LIMIT_BAL), avg(LIMIT_BAL),min(LIMIT_BAL) from uci_credit_card where AGE >= 25 and AGE <= 30
查询结果:
- 查看年龄在30-45岁之间的平均信贷额度与婚姻关系。
SELECT AVG(LIMIT_BAL),MARRIAGE FROM uci_credit_card WHERE MARRIAGE in( 1,2,3) and AGE >= 30 and AGE <= 45 group by MARRIAGE
查询结果:
- 查询表的总数。
select count(*) from uci_credit_card
查询结果:
- 查看每个年龄下信贷额度的平均值。
SELECT avg(LIMIT_BAL),AGE FROM uci_credit_card group by AGE order by AGE;
查询结果:
5. 查看集群监控
本步骤将指导您访问Lindorm 的集群监控,查看模拟数据请求下集群的多项监控指标。
一、查看集群监控
- 在实验终端中,复制监控查看地址到在浏览器地址窗口后跳转,然后将<实例ID>更换为云产品资源所提供的lindorm实例ID,监控查看地址: http://grafana-rngjexgxwel4p12m1v.grafana.aliyuncs.com/d/-rPQ2Q1q_7k/lindorm-armsda-pan?orgId=3&from=now-30m&to=now&var-instance=<实例ID> 。实例ID 可以通过”云产品资源“查看,如下面的截图所示。
- 输入需要登录的账号密码(粘帖请用鼠标右键,然后选择粘贴),点击”LogIn" 登录。
账号:lindorm_monitor
密码:lindorm_monitor@aliyun
- 通过展示的监控可以看到,在最小规格的计算节点上,单机 1.9w QPS,17MB/S 的模拟查询请求压力下,集群整体RT 基本相对稳定在0.01-0.04 ms 范围内。
特别说明:集群的整体能力和业务的数据访问模式关系较大,当前实验只是一个模拟的访问case,具体情况以业务压测和实际线上服务为准。
6. 实验总结
一、实验总结
本实验主要是让用户体验用SQL 的方式来查询Lindorm 的宽表引擎的数据;并向用户展示了在特定计算资源规格以及集群较大规模请求情况下,集群响应时间(RT)的稳定性。
实验链接:https://developer.aliyun.com/adc/scenario/b557e9afe03f4ec09650a45a40e4bcb5