- 博客(159)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合Elasticsearch----脚本和运行时字段Scripted and runtime fields
Spring Data Elasticsearch支持脚本(scripted)字段和运行时(runtime)字段。有关此方面的详细信息,请参阅有关脚本的和。在Spring Data Elasticsearch的上下文中,你可以使用。
2024-03-20 11:31:40
1297
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合Elasticsearch----实体回调Entity Callbacks
Spring Data基础结构提供了钩子,用于在调用某些方法之前和之后修改实体。这些所谓的EntityCallback实例提供了一种方便的方式来检查并可能以回调风格修改实体。EntityCallback看起来很像一个专门的ApplicationListener。一些Spring Data模块发布特定于存储的事件(如BeforeSaveEvent),允许修改给定的实体。在某些情况下,例如在处理不可变类型时,这些事件可能会造成麻烦。
2024-03-19 11:05:07
1493
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合Elasticsearch----Elasticsearch操作
Spring Data Elasticsearch使用多个接口来定义可以针对Elasticsearch索引调用的操作(有关响应(reactive)接口的描述,请参阅这些接口对应于的结构。索引管理以及索引和映射的自动创建IndexOperations接口和提供的实现可以从ElasticsearchOperations实例中获得,例如通过调用operations.indexOps(clazz),用户可以在Elasticsearch集群中创建索引、放置映射或存储模板和别名信息。
2024-03-18 17:07:32
1239
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring Data的Repositories----Query by Example
本章介绍了Query by Example,并解释了如何使用它。Query by Example(QBE)是一种接口简单、用户友好的查询技术。它允许动态创建查询,不需要编写包含字段名的查询。事实上,QBE根本不需要您使用特定于存储的查询语言来编写查询。
2024-03-08 17:00:24
1132
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合MongoDB----Template API之保存、更新和删除Documents
MongoTemplate / ReactiveMongoTemplatge允许你保存、更新和删除域对象,并将这些对象映射到存储在MongoDB中的documents。命令式和反应式(reactive)API的API签名大部分相同,只是返回类型不同。当同步API使用void、single Object和List时,反应式(reactive)对应地由Mono< Void>, Mono< Object> and Flux组成。
2024-03-01 08:27:51
1339
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring Data的Repositories----存储库方法的null处理
从Spring Data 2.0开始,返回单个聚合实例的存储库CRUD方法使用Java 8的Optional来指示潜在的值缺失。或者,查询方法可以选择根本不使用包装类型。然后通过返回null来指示没有查询结果。保证返回collections, collection alternatives, wrappers和 streams的存储库方法永远不会返回null,而是返回相应的空表示。有关详细信息,请参阅章节“二十、存储库查询返回类型”。
2024-02-26 19:48:14
1108
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring Data的Repositories----投影Projections
Spring Data查询方法通常返回由存储库管理的聚合根(aggregate root)的一个或多个实例。但是,有时可能需要基于这些类型的某些属性来创建投影。Spring Data允许对专用的返回类型进行建模,以便更有选择地检索托管聚合(managed aggregates)的部分视图。参见一个存储库和聚合根类型,例如以下示例:聚合和存储库示例现在假设我们只想检索人的姓名属性。Spring Data提供了什么方法来实现这一点?本章的其余部分将回答这个问题。
2024-02-26 19:28:13
1054
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring Data的Repositories----定义Repository接口
有几种变体可以帮助你开始使用repository接口。典型的方法是继承CrudRepository,它为你提供了CRUD功能的方法。CRUD代表创建、读取、更新、删除。在3.0版本中,框架还引入了ListCrudRepository,它与CrudRepository非常相似,但对于那些返回多个实体的方法,它返回的是List,而不是Iterable,你可能会发现它更容易使用。
2024-02-26 19:11:52
1128
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合MongoDB----Template API 查询Documents
你可以使用Query和Criteria类来表达查询。它们的方法名称反映了native MongoDB操作名称,如lt、lte、is和其他名称。Query和Criteria类遵循fluent API风格,因此你可以将多个方法标准和查询链接在一起,同时拥有易于理解的代码。为了提高可读性,静态导入可以避免在创建查询和条件实例时使用“new”关键字。你还可以使用BasicQuery从纯JSON字符串创建Query实例,如下例所示:例1:从纯JSON字符串创建查询实例。
2024-02-26 16:31:37
1594
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合MongoDB----Aggregation Framework支持
Spring Data MongoDB为MongoDB 2.2版引入的聚合框架提供了支持。有关更多信息,请参阅MongoDB的聚合框架和其他数据聚合工具的完整。
2024-02-26 15:49:01
1178
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合MongoDB(一)----快速指南
虽然MongoClient是MongoDB驱动程序API的入口点,但连接到特定的MongoDB数据库实例需要额外的信息,例如数据库名称和可选的用户名和密码。与直接实例化MongoClient实例相比,FactoryBean还有一个额外的优势,即还为容器提供了ExceptionTranslator实现,该实现将MongoDB异常转换为Spring的可移植DataAccessException层次结构中的异常,用于@Repository注解的数据访问类。首先,需要设置一个正在运行的MongoDB服务器。
2024-02-19 21:37:50
1691
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合Redis(二)----关于连接工厂
使用Redis和Spring的首要任务之一是通过IoC容器连接到存储。为此,需要一个Java连接器(或绑定)。无论你选择哪个库,你只需要使用一组Spring Data Redis api(它在所有连接器上的行为一致)。org.springframework.data.redis.connection包及其RedisConnection和RedisConnectionFactory接口,用于与Redis一同工作,并检索Redis的active连接。
2024-01-30 11:50:16
1940
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合Kafka(二十一)----提示,技巧和例子
有关详细信息,请参阅。假设你希望始终从所有分区读取所有记录(例如,当使用compacted topic加载分布式缓存时),手动分配分区而不使用Kafka的组管理会很有用。如果希望使用属性配置序列化器/反序列化器,但又希望使用自定义的ObjectMapper,只需创建一个子类并将自定义映射器传递给super构造函数。如果Kafka事务提交失败,记录将被重新deliver,因此数据库更新应该是幂等的。KafkaTemplate会将自己的事务与DB的事务同步,提交/回滚发生在数据库的行为之后。
2024-01-29 21:14:16
1362
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合Kafka(十九)----Apache Kafka Streams支持
从1.1.4版本开始,Spring for Apache Kafka为Kafka Streams提供了非常好的支持。要从Spring应用程序中使用它,kafka-streams jar必须存在于类路径中。它是Spring for Apache Kafka项目的一个可选依赖项,不会自动下载。
2024-01-29 11:29:32
2059
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring整合Kafka(三)----接收消息
例如,如果你有3个topic,每topic5个分区,你希望使用concurrency=15,但是结果你只能看到5个活跃的consumer,每个consumer分配了每个topic的一个分区,留下10个空闲的consumer。此类采用RecordFilterStrategy的实现,在该实现中,你可以实现filter方法来发出消息是重复的并且应该丢弃的信号。另一个一个方便的方法getAllListenerContainers(),它返回所有容器的集合,包括由registry管理的容器和声明为bean的容器。
2024-01-08 09:34:56
1348
1
原创 Spark SQL----SORT BY子句
SORT BY子句用于返回按用户指定的顺序在每个分区中排序的结果行。当有多个分区时,SORT BY可能返回部分排序(partially ordered)的结果。这与ORDER BY子句不同,后者保证输出的总顺序。
2024-07-26 07:51:06
183
原创 Spark SQL----Set Operators集合运算符
EXCEPT和EXCEPT ALL返回在一个关系中找到的行,但不返回另一个关系。EXCEPT(或者,EXCEPT DISTINCT)只接受不同的行,而EXCEPT ALL不从结果行中删除重复的行。INTERSECT (或者,INTERSECT DISTINCT)只取不同的行,而INTERSECT ALL不从结果行中删除重复的行。UNION和UNION ALL返回在其中一个关系中找到的行。UNION (或者UNION DISTINCT)只接受不同的行,而UNION ALL不会从结果行中删除重复的行。
2024-07-25 08:44:39
373
原创 Spark SQL----ORDER BY子句
ORDER BY子句用于按照用户指定的顺序以排序的方式返回结果行。与SORT BY子句不同,此子句保证输出中的总顺序。
2024-07-25 08:44:17
575
原创 Spark SQL----OFFSET子句
OFFSET子句用于指定在开始返回SELECT语句返回的行之前要跳过的行数。通常,此子句与ORDER BY一起使用,以确保结果是确定性的。
2024-07-24 08:22:11
176
原创 Spark SQL----LIMIT子句
LIMIT子句用于约束SELECT语句返回的行数。通常,此子句与ORDER BY一起使用,以确保结果是确定性的。
2024-07-24 08:21:47
263
原创 Spark SQL----LIKE Predicate谓词
LIKE谓词用于搜索特定的pattern。该谓词还支持多种pattern,量词包括ANY、SOME和ALL。
2024-07-23 08:49:20
390
原创 Spark SQL----JOIN
SQL连接用于根据join criteria组合来自两个关系的行。以下部分描述了整个join语法,子部分介绍了不同类型的连接以及示例。右连接返回来自右关系的所有值和来自左关系的匹配值,如果没有匹配,则追加NULL。左连接返回左关系中的所有值和右关系中的匹配值,如果没有匹配,则追加NULL。它选择在两个关系中具有匹配值的行。全连接返回两个关系中的所有值,并在没有匹配的一侧附加NULL值。反连接返回与右关系不匹配的左关系中的值。半连接从关系的左侧返回与右侧匹配的值。交叉连接返回两个关系的笛卡尔积。
2024-07-23 08:48:36
481
原创 Spark SQL----Hints
Join提示允许用户建议Spark应该使用的join策略。当在join的两侧都指定了不同的join策略提示时,Spark会按以下顺序对提示进行优先级排序:BROADCAST > MERGE > SHUFFLE_HASH > SHUFFLE_REPLICATE_NL。当两侧都使用BROADCAST提示或SHUFFLE_HASH提示时,Spark会根据join类型和relations的大小来选择构建侧。由于给定的策略可能不支持所有的join类型,因此不能保证Spark使用提示建议的join策略。
2024-07-21 07:49:50
908
原创 Spark SQL----GROUP BY子句
GROUP BY子句用于根据一组指定的分组表达式对行进行分组,并根据一个或多个指定的聚合函数计算行组上的聚合。Spark还支持高级聚合,通过GROUPING SETS、CUBE、ROLLUP子句对同一输入记录集进行多个聚合。分组表达式和高级聚合可以混合在GROUP BY子句中,也可以嵌套在GROUPING SETS子句中。请参阅Mixed/Nested Grouping Analytics部分中的更多详细信息。当FILTER子句附加到聚合函数时,只有匹配的行被传递给该函数。
2024-07-20 07:00:40
1158
1
原创 Spark SQL----DISTRIBUTE BY子句
DISTRIBUTE BY子句用于根据输入表达式对数据进行重新分区。与CLUSTER BY子句不同,这不会对每个分区内的数据进行排序。
2024-07-20 07:00:11
285
原创 Spark SQL----CLUSTER BY子句
CLUSTER BY子句首先根据输入表达式对数据进行重新分区,然后对每个分区内的数据进行排序。这在语义上等同于执行一个DISTRIBUTE BY,然后执行一个SORT BY。此子句仅确保结果行在每个分区内排序,而不保证输出的总顺序。
2024-07-19 11:45:21
288
原创 Spark SQL----Common Table Expression (CTE)
公共表表达式(CTE)定义了一个临时结果集,用户可以在SQL语句范围内多次引用该结果集。CTE主要用于SELECT语句中。而common_table_expression被定义为。
2024-07-19 11:45:02
127
原创 Spark SQL----SELECT语句
Spark支持SELECT语句,符合ANSI SQL标准。查询用于从一个或多个表中检索结果集。以下部分描述了总体查询语法。select语句定义为。
2024-07-18 08:11:55
998
原创 Spark SQL----LOAD DATA
LOAD DATA语句将用户指定的目录或文件中的数据加载到Hive serde表中。如果指定了一个目录,那么将加载该目录中的所有文件。如果指定了一个文件,则只加载单个文件。此外,LOAD DATA语句接受一个可选的分区specification。当指定分区时,数据文件(当输入源是目录时)或单个文件(当输入源是文件时)被加载到目标表的分区中。如果表是缓存的,则该命令清除表的缓存数据及其引用表的所有从属项。当下一次访问表或从属项时,缓存将被延迟填充。
2024-07-18 08:11:33
607
原创 Spark SQL----INSERT OVERWRITE DIRECTORY
INSERT OVERWRITE DIRECTORY语句使用spark文件格式或Hive Serde,用新的值覆盖目录中的现有数据。使用Hive Serde必须启用Hive支持。插入的行可以由值表达式指定,也可以由查询结果指定。spark_format定义为。hive_format定义为。
2024-07-17 07:35:28
1312
原创 Spark SQL----INSERT TABLE
INSERT语句将新行插入表中或覆盖表中的现有数据。同时使用分区spec和column列表进行插入。同时使用分区spec和column列表进行插入。使用REPLACE WHERE语句插入。使用VALUES子句进行单行插入。使用VALUES子句进行多行插入。为分区列值使用类型化日期文字插入。为分区列值使用类型化日期文字插入。使用SELECT语句插入。使用VALUES子句插入。使用SELECT语句插入。使用TABLE语句插入。使用TABLE语句插入。使用FROM语句插入。使用FROM语句插入。
2024-07-17 07:35:06
943
原创 Spark SQL----USE Database
USE语句用于设置当前数据库。设置当前数据库后,sql引用的表、函数和视图等不合格的数据库artifacts将从当前数据库中解析出来。默认的数据库名称是’ default’。
2024-07-16 08:15:08
184
原创 Spark SQL----TRUNCATE TABLE
TRUNCATE TABLE语句从表或分区中删除所有行。表不能是视图或外部/临时表。为了一次截断多个分区,用户可以在partition_spec中指定分区。如果未指定partition_spec,则会删除表中的所有分区。如果表是缓存的,则该命令将清除该表的缓存数据及引用该表的所有从属项。下次访问该表或从属项时,缓存将被延迟填充。
2024-07-16 08:14:32
471
原创 Spark SQL----REPAIR TABLE
REPAIR TABLE恢复表目录中的所有分区,并更新Hive metastore。使用PARTITIONED BY子句创建表时,会在Hive metastore中生成并注册分区。但是,如果分区表是根据现有数据创建的,则分区不会自动在Hive metastore中注册。REPAIR TABLE对不存在的表或没有分区的表抛出异常。恢复分区的另一种方法是使用ALTER TABLE RECOVER PARTITIONS。如果表是缓存的,则该命令将清除该表的缓存数据及引用该表的所有从属项。
2024-07-15 09:49:50
280
原创 Spark SQL----DROP语句
DROP TABLE删除表,并从文件系统中删除与表关联的目录(如果表不是EXTERNAL table)。如果表不存在,则抛出异常。如果是外部表,则只从metastore数据库中删除关联的元数据信息。如果表是缓存的,则该命令解除对表及其所有从属项的缓存。DROP FUNCTION语句删除临时或用户定义函数(UDF)。如果函数不存在,将抛出异常。删除数据库,并从文件系统中删除与该数据库关联的目录。如果数据库在系统中不存在,将抛出异常。DROP VIEW从catalog中删除与指定视图关联的元数据。
2024-07-15 09:49:25
1016
原创 Spark SQL----CREATE VIEW
视图基于SQL查询的结果集。CREATE VIEW创建了一个没有物理数据的虚拟表,因此其他操作,如ALTER VIEW和DROP VIEW,只能修改元数据。
2024-07-14 07:23:11
239
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人