CSDN乘风破浪的 SQL( 五 )

其中 , MATCH 子句用于遍历图形结构并返回匹配的模式 , 语法和 Neo4j 的 Cypher 查询语言中的 MATCH 子句非常类似 。 以上查询返回的结果如下:
+++| account_holder | total_transacted_with_Nikita |++|| Camille | 1000.00 || Oracle | 4501.00 |随着 SQL 标准第 16 部分(SQL/PGQ)即将出现 , 我们可以在关系数据库中直接存储属性图结构数据 , 并且在 SQL 中进行属性图模式匹配 , 例如最短路径查找和最佳路径查找;SQL/PGQ 的另一个优势就是可以支持分组(GROUP BY)、聚合(AVG、SUM、COUNT 等)、排序(ORDER BY)以及许多其他的 SQL 功能 。
SQL 与流数据处理
流数据是一组顺序、大量、快速、连续到达的数据序列 , 一般情况下可被视为一个随时间延续而无限增长的动态数据集合 。 常见的流数据包括应用程序日志文件、网购数据、游戏玩家互动数据、社交网站信息、金融交易实时数据或地理空间服务 , 以及来自数据中心内所连接设备或仪器的遥测数据等 。
目前 , 常用的大数据流处理平台 Spark Streaming、Storm、Flink、ksqlDB 等都提供了 SQL 流数据处理功能;同时 , 一个关于流数据处理的 SQL 标准部分正在准备中 。
其中 , ksqlDB 是一个基于 Apache Kafka 的事件流数据库 , 提供了轻量级的 SQL 语句 , 大大降低了构建流处理应用程序所需的操作复杂性 。
CSDN乘风破浪的 SQL
本文插图
客户端应用程序可以采用拉取查询(pull query)和推送查询(push query)两种方式查看和订阅数据流变化 。
在 ksqlDB 中创建一个数据流并运行连续查询的简单示例如下:
CREATE STREAM riderLocations (profileId VARCHAR, latitude DOUBLE, longitude DOUBLE) WITH (kafka_topic='locations', value_format='json', partitions=1);-- Mountain View lat, long: 37.4133, -122.1162SELECT * FROM riderLocations WHERE GEO_DISTANCE(latitude, longitude, 37.4133, -122.1162) <= 5 EMIT CHANGES;首先 , 通过一个 Kafka 主题创建一个数据流 riderLocations(骑手位置);消息内容采用 json 格式存储 , 例如 {“profileId”: “c2309eec”, “latitude”: 37.7877, “longitude”: -122.4205} 。
然后 , 针对 riderLocations 数据流运行一个连续查询 , 返回距离 Mountain View(加州山景城)5 英里之内的骑手 。 该查询会一直运行 , 直到被终止;并且随着事件被写入 riderLocations , 它会将结果推送到客户端 。
此时 , 如果我们打开另一个会话连接到 ksqlDB , 生成一些数据流:
INSERT INTO riderLocations (profileId, latitude, longitude) VALUES ('c2309eec', 37.7877, -122.4205);INSERT INTOVALUES ('18f4ea86', 37.3903, -122.0643);INSERT INTOVALUES ('4ab5cbad', 37.3952, -122.0813);INSERT INTOVALUES ('8b6eae59', 37.3944, -122.0813);INSERT INTOVALUES ('4a7c7b41', 37.4049, -122.0822);INSERT INTOVALUES ('4ddad000', 37.7857, -122.4011);随着每次事件的生成 , 流查询语句将会在第一个会话中实时输出匹配的数据行 。
总结
随着互联网和大数据等新技术的发展 , SQL 早已不仅仅是当年的关系数据库查询语言了;无论是面向对象特性(例如自定义类型)、文档数据(XML、JSON)的存储和处理、时态数据的存储和处理、复杂事件和流数据处理、数据科学中的多维数组以及图形数据库等各种 NoSQL 功能已经或者即将成为 SQL 标准中的一部分 , One SQL to Rule Them All!
版权声明:本文为CSDN博主「不剪发的Tony老师」的原创文章 。
原文:https://blog.csdn.net/horses/article/details/107185387


推荐阅读