《CDP企业数据云平台从入门到实践》——CDP之操作型数据库(2)

简介: 《CDP企业数据云平台从入门到实践》——CDP之操作型数据库(2)

《CDP企业数据云平台从入门到实践》——CDP之数据储存(1) https://developer.aliyun.com/article/1226442?groupCode=ClouderaCDP


4. OPDB 如何适应用户环境


如图所示,操作型数据库中的数据来源于不同的途径,有实时采集数据、离线批量转换数据等。因此,操作型数据库中的数据大致会包含两类:实时处理后的数据和批量处理后的数据。整理好的数据可以支持三类场景:


• 企业内部应用:CRUD、状态持久性、事务、操作报告等。

• 数据仓库:针对分析工作负载提取到 DW 做进一步的分析使用操作。

• 机器学习:构建特征仓库和模型服务等。


在企业内部应用和机器学习中更新的数据也会返回到操作型数据库中。


image.png


5. OPDB 数据摄取


下图了最的将数据载到 OPDB 工具

image.png


二、 通过 OPDB 构建应用


1. NoSQL 的含义


NoSQL = Not Only SQL,运用原生稀疏矩阵模型,以多种方式最优地表示数据。NoSQL 的类型包括:


• 时间序列:排序键和列访问允许高效存储和检索时间序列数据。

• 图:可以用多种方式表示,最常见的是使用一个表来表示顶点,另一个表示边。

• 关系:关系表、行和列可以通过 Phoenix 直接映射到它们的 OPDB 等价物。

• 文档:可以存储多媒体文件等二进制文件,也可以使用列来分解文档来表示属

性。


2. OPDB SQL 特性


1) 基于 SQL 的接口

用户可以使用符合 ANSI 的 SQL 简化数据访问。


下图列举了相同任务(Task)使用 HBase Java API 和使用 SQL 操作的代码,可以看到使用 SQL 的代码更简便:


image.png

2) Schema 演变


Schema 的演变实现更少的数据建模,更多的模型数据。

下面列举了实例中的三个操作进行讲解:


操作一:

CreateatableCREATETABLEusers (idINTEGERPRIMARYKEY, usernameVARCHAR);
UPSERTINTOusers (id, username) VALUES (1, 'admin ');
SELECT*FROMusers;

image.png



操作二:

Addanewcolumn(withoutredefiningthetable)UPSERTINTOusers (id, username, stateVARCHAR) VALUES (2, 'KM ',  
'CA ');
SELECT*FROMusers;

image.png


操作三:

QuerythenewcolumnSELECT*FROMusers (stateVARCHAR);
--orCREATEVIEWv1ASSELECT*FROMusers (stateVARCHAR);
SELECT*fromv1;


image.png


通过以上方式进行数据 Schema 的演变,可以有效的减少 Schema 的维护以及数据迁移操作。


3) 多行事务


Phonix 的 SQL 代码与 MySQL 的代码相同:通过这种方式可以支持数据作为事务提交。


4) 二级索引


二级索引是非主键谓词的点查找和扫描。


OPDB 存储按主键顺序索引的数据,使用主键谓词的点查找和范围扫描速度很快。使用二级索引可以避免由于没有主键谓词的查询而导致的全表扫描,从而提高查询速度。


创建二级索引:


CREATETABLEuser (idBIGINTPRIMARYKEY, emailVARCHAR, pwVARBINARY, fnVARCHAR, lnVARCHAR);
CREATEINDEXidxONuser (email);
IncludefrequentlyaccessedcolumnswithcoveringindexesCREATEINDEXidxONuser (email) INCLUDE (pw);
SELECTemail, pwFROMuserWHEREemail='user@phoenix.apache.org  ';
UsearbitraryexpressionswithfunctionalindexesCREATEINDEXidxONuser (UPPER(ln||' '||fn)) INCLUDE (email) ;
SELECTemailFROMuserWHEREUPPER(ln||' '||fn) ='ALICE BOB ' ;


5) 时间旅行查询


时间旅行查询是查询过去状态的数据。


时间旅行对过去任何时间戳发出的相同查询将忽略自指定时间戳以来的任何更新,比如指定时间戳是去年一月,查询将忽略一月以后的数据更新,因此每次都会产生相同的结果。


常见的时间旅行用例:


• 调查:某些活动(例如欺诈调查)受益于能够检查特定时间点的记录状态。


• 机器学习:模型训练需要可重现。 时间旅行查询消除了提取和持久化训练数据的需要,大大简化了流程。


通过将 CurrentSCN 会话属性设置为过去的时间戳来发出时间旅行查询:


LongoneHourAgo=System.currentTimeMillis() -60*60*1000 ;
props.setProperty("CurrentSCN", oneHourAgo);
Connectionconn=DriverManager.connect(myUrl, props);
conn.createStatement().execute("SELECT * FROM users WHERE email =  'users@phoenix.apache.org '");


《CDP企业数据云平台从入门到实践》——CDP之数据储存(3) https://developer.aliyun.com/article/1226404?groupCode=ClouderaCDP




目录
相关文章
|
2月前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
85 3
SpringBoot入门 - 添加内存数据库H2
|
2月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
2月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
57 4
SpringBoot入门(4) - 添加内存数据库H2
|
2月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
194 61
|
5天前
|
存储 安全 数据管理
时序数据库TDengine 与中移软件达成兼容性互认证,推动虚拟化云平台与时序数据库的深度融合
在数字化转型和智能化升级的浪潮下,企业对数据的需求日益增长,尤其是在物联网、大数据和实时分析等领域。随着设备数量的激增,时序数据的管理和处理变得愈发复杂,企业亟需高效、稳定的数据解决方案来应对这一挑战。时序数据库作为专门处理时间序列数据的工具,正逐渐成为各行业数字化转型的重要支撑。
22 4
|
5天前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
17 1
|
10天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
13天前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
42 5
|
2月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
169 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
2月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据