海量数据下Lindorm查询实践

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介: 本教程将提供一台ECS 和云数据库Lindorm集群,带您体验通过 Lindorm SQL来查询信用卡客户的模拟数据,查看高并发请求下的,Lindorm响应时间的稳定性。

海量数据下Lindorm查询实践


1. 创建资源

开始实验之前,您需要先创建ECS实例资源。

  1. 在实验室页面,单击创建资源
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。

说明:创建过程需要约15分钟左右,请您耐心等待。


2. 实验背景说明


本步骤无需操作,可观看后进入下一步骤。

  1. 该实验会创建 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控制台

  1. 资源创建成功以后,左侧”实验手册“下方会显示子用户的基本信息

  1. 双击屏幕中的 “Chromium” 浏览器,选择实验手册下的用户名,点击“下一步

  1. 复制用户名下的“子用户密码”,在密码输入框鼠标右键单击(实验室端里面,ctrl+v 快捷键无法生效),选择“粘贴“, 选择”登录“

  1. 进入控制台,搜索框输入“lindorm”,会显示 ”云原生多模数据库Lindorm“ 的控制台。或者直接在实验浏览器输入以下地址就可以访问上海地区的控制台。
https://lindorm.console.aliyun.com/cn-shanghai/cluster

  1. 选择对应的“地域”-华东2(上海),找到对应的“Lindorm实例”,单击实例链接,进入”实例详情“页面注意实例ID 要和左侧的“云产品资源” TAB栏下的Lindorm 实例ID一致,地域也要保持一致(默认一般是上海)。

  1. 进去以后需要用户确认”可运维时间段“,点击”确认“即可。

二、访问WebTerminal

  1. 鼠标点击右上角的“切换至Web Terminal”,,登录到ECS

  1. 执行 ls可以看到 /root 目录有一个初始化好的导入jar 包

  1. 执行 yum install -y java 安装 JDK(安装需要30s左右,请您耐心等待),安装结束以后,执行 java -version 来确认 JDK1.8 安装成功

  1. 安装结束以后,找到“云产品资源下面的 “Lindorm实例ID” , 复制 Lindorm实例ID并替换掉下面的实例id 部分即可。

备注:实例ID 请替换成实际的Lindorm实例ID,否则会没法导入数据。

  1. 然后执行下面命令:
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 &
  1. 如果显示如下截图,没有报错,表明加载程序在运行中。


4. 在线演示

本步骤将指导您访问 Lindorm Insight 管理页面,在该平台上体验 Lindorm SQL 查询数据。

访问Lindorm Insight

  1. 点击右上角 “切换到远程桌面”

  1. 添加 IP 白名单
  1. 浏览器新开一个Tab,访问 `https://tool.lu/ip/` ,看到自己的外网ip 地址,例如 `140.205.11.13`

  1. 浏览器窗口切换回Lindorm控制台
  1. 选择 “访问控制”-“白名单”,点击“修改分组白名单“,输入上一步获取的外网ip,(如果白名单已经存在多个ip ,直接在尾部添加逗号和ip )

  1. 点击”确认“以后,大概10-30秒左右,集群状态会变为”运行中“,表示添加白名单成功。

  1. 选择“宽表引擎”-“集群管理”,第一次访问,需要“重置UI访问密码

  1. 用户名、密码都输入 root ,点击“确定“。

  1. 选择 ”ClusterManager公网“,如果弹出添加ip白名单的提示框,点击”确认“。

  1. 第一次登录Lindorm Insight,需要输入刚刚重置的用户名、密码(默认是root),点击”登录
  1. 如果一直弹不出登录框,请确保前面”添加ip白名单“步骤已经完成。

  1. 访问Lindorm Insight,进入“数据查询”-“SQL执行器”,namespace 选择“default", 右边就会展示当前namespace 存在的表:uci_credit_card/uci_credit_card_bak

说明:uci_credit_card 表记录的是台湾某年的信用卡模拟数据。

  1. 可在sql窗口内执行sql查询语句,以下为部分实例(可选部分进行操作)
  2. 查看用户 ID = 10000的个人数据
select * from uci_credit_card  where ID = 10000;

查询结果:

  1. 查询信用额度 > 20000 的有多少人。
select count(*) from uci_credit_card where  LIMIT_BAL > 20000.0 ;

查询结果:

  1. 查看 2005年9月的还款状态-1(正常付款)、1(延迟一个月)的总人数。
select count(*) from uci_credit_card where  PAY_0 in (-1,1)

查询结果:

  1. 查询年龄25-40岁之间的最大、平均、最小信贷额度。
select max(LIMIT_BAL), avg(LIMIT_BAL),min(LIMIT_BAL) from uci_credit_card where  AGE >= 25 and AGE <= 30

查询结果:

  1. 查看年龄在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

查询结果:

  1. 查询表的总数。
select count(*) from uci_credit_card

查询结果:

  1. 查看每个年龄下信贷额度的平均值。
SELECT avg(LIMIT_BAL),AGE FROM uci_credit_card group by AGE order by AGE;

查询结果:


5. 查看集群监控

本步骤将指导您访问Lindorm 的集群监控,查看模拟数据请求下集群的多项监控指标。

一、查看集群监控

  1. 在实验终端中,复制监控查看地址到在浏览器地址窗口后跳转,然后将<实例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 可以通过”云产品资源“查看,如下面的截图所示。


  1. 输入需要登录的账号密码(粘帖请用鼠标右键,然后选择粘贴),点击”LogIn" 登录。

账号:lindorm_monitor

密码:lindorm_monitor@aliyun


  1. 通过展示的监控可以看到,在最小规格的计算节点上,单机 1.9w QPS,17MB/S 的模拟查询请求压力下,集群整体RT 基本相对稳定在0.01-0.04 ms 范围内。

特别说明:集群的整体能力和业务的数据访问模式关系较大,当前实验只是一个模拟的访问case,具体情况以业务压测和实际线上服务为准。


6. 实验总结

一、实验总结

本实验主要是让用户体验用SQL 的方式来查询Lindorm 的宽表引擎的数据;并向用户展示了在特定计算资源规格以及集群较大规模请求情况下,集群响应时间(RT)的稳定性。

实验链接:https://developer.aliyun.com/adc/scenario/b557e9afe03f4ec09650a45a40e4bcb5


相关文章
|
时序数据库
influxDB时序数据库2.0FLUX查询语法使用记录
influxDB时序数据库2.0FLUX查询语法使用记录
|
8月前
|
SQL 数据处理 数据库
时序数据库 TDengine SQL 查询语法规则汇总,官方教程奉上!
TDengine 采用 SQL 作为查询语言,本文将就部分查询细则做分析。
321 1
|
3天前
|
数据可视化 数据格式 索引
lindorm时序数据引擎可否将查询结果导成excel格式?
lindorm时序数据引擎可否将查询结果导成excel格式?
40 0
|
12月前
|
SQL 存储 分布式计算
【时序数据库】时间序列数据和MongoDB第三部分-查询、分析和呈现时间序列数据
【时序数据库】时间序列数据和MongoDB第三部分-查询、分析和呈现时间序列数据
|
SQL 时序数据库
《时序数据库TSDB新功能 - 如何用SQL进行时序查询》电子版地址
时序数据库TSDB新功能 - 如何用SQL进行时序查询
112 0
《时序数据库TSDB新功能 - 如何用SQL进行时序查询》电子版地址
|
存储 弹性计算 运维
Lindorm-Operator云原生实践
Kubernetes 的CRD 机制(CustomResourceDefinition)支持通过自定义的controller来管理资源的生命周期,这样就可以像操作pod,deployment一样来方便的管理运维一些复杂的资源对象。伴随着云原生这股技术浪潮,lindorm-operator充分利用k8s底座的特点与优势,在云环境(包括公共云、私有云和混合云)极大提升了Lindorm数据库的生产和运维效率
391 0
|
存储 弹性计算 多模数据库
10.26直播预告|云原生多模数据库Lindorm的设计与实践
本次议题将介绍其背后的技术设计,分享如何解决类似hbase、elasticsearch、influxdb等系统混合使用的复杂问题。
3842 0
10.26直播预告|云原生多模数据库Lindorm的设计与实践
|
SQL 关系型数据库 数据库
PostgreSQL 设计优化case - 大宽表任意字段组合查询索引如何选择(btree, gin, rum) - (含单个索引列数超过32列的方法)
标签 PostgreSQL , adhoc查询 , 大宽表 , 任意字段组合查询 , 索引 , btree , gin , rum 背景 大宽表,任意字段组合查询,透视。是实时分析系统中的常见需求: 1、实时写入。
2508 0
|
3天前
|
存储 人工智能 Cloud Native
阿里云瑶池数据库训练营权益:《玩转Lindorm》学习资料开放下载!
阿里云瑶池数据库训练营权益:《玩转Lindorm》学习资料开放下载!
|
8月前
|
存储 SQL 机器学习/深度学习
VLDB论文解读|一文剖析阿里云Lindorm数据库在DB for AI领域的探索
论文主要针对大规模监控场景下海量时序数据的存储、访问、分析和管理带来的挑战,描述了阿里云多模数据库 Lindorm 带来的一站式解决方案。