自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Gabriel Wang的博客

曾就职于中国平安、Ericsson、拍拍贷,做大数据相关工作

  • 博客(159)
  • 收藏
  • 关注

原创 Spring整合Elasticsearch----脚本和运行时字段Scripted and runtime fields

Spring Data Elasticsearch支持脚本(scripted)字段和运行时(runtime)字段。有关此方面的详细信息,请参阅有关脚本的和。在Spring Data Elasticsearch的上下文中,你可以使用。

2024-03-20 11:31:40 1297

原创 Spring整合Elasticsearch----实体回调Entity Callbacks

Spring Data基础结构提供了钩子,用于在调用某些方法之前和之后修改实体。这些所谓的EntityCallback实例提供了一种方便的方式来检查并可能以回调风格修改实体。EntityCallback看起来很像一个专门的ApplicationListener。一些Spring Data模块发布特定于存储的事件(如BeforeSaveEvent),允许修改给定的实体。在某些情况下,例如在处理不可变类型时,这些事件可能会造成麻烦。

2024-03-19 11:05:07 1493

原创 Spring整合Elasticsearch----Elasticsearch操作

Spring Data Elasticsearch使用多个接口来定义可以针对Elasticsearch索引调用的操作(有关响应(reactive)接口的描述,请参阅这些接口对应于的结构。索引管理以及索引和映射的自动创建IndexOperations接口和提供的实现可以从ElasticsearchOperations实例中获得,例如通过调用operations.indexOps(clazz),用户可以在Elasticsearch集群中创建索引、放置映射或存储模板和别名信息。

2024-03-18 17:07:32 1239

原创 Spring Data的Repositories----Query by Example

本章介绍了Query by Example,并解释了如何使用它。Query by Example(QBE)是一种接口简单、用户友好的查询技术。它允许动态创建查询,不需要编写包含字段名的查询。事实上,QBE根本不需要您使用特定于存储的查询语言来编写查询。

2024-03-08 17:00:24 1132

原创 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

原创 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

原创 Spring Data的Repositories----投影Projections

Spring Data查询方法通常返回由存储库管理的聚合根(aggregate root)的一个或多个实例。但是,有时可能需要基于这些类型的某些属性来创建投影。Spring Data允许对专用的返回类型进行建模,以便更有选择地检索托管聚合(managed aggregates)的部分视图。参见一个存储库和聚合根类型,例如以下示例:聚合和存储库示例现在假设我们只想检索人的姓名属性。Spring Data提供了什么方法来实现这一点?本章的其余部分将回答这个问题。

2024-02-26 19:28:13 1054

原创 Spring Data的Repositories----定义Repository接口

有几种变体可以帮助你开始使用repository接口。典型的方法是继承CrudRepository,它为你提供了CRUD功能的方法。CRUD代表创建、读取、更新、删除。在3.0版本中,框架还引入了ListCrudRepository,它与CrudRepository非常相似,但对于那些返回多个实体的方法,它返回的是List,而不是Iterable,你可能会发现它更容易使用。

2024-02-26 19:11:52 1128

原创 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

原创 Spring整合MongoDB----Aggregation Framework支持

Spring Data MongoDB为MongoDB 2.2版引入的聚合框架提供了支持。有关更多信息,请参阅MongoDB的聚合框架和其他数据聚合工具的完整。

2024-02-26 15:49:01 1178

原创 Spring整合MongoDB(一)----快速指南

虽然MongoClient是MongoDB驱动程序API的入口点,但连接到特定的MongoDB数据库实例需要额外的信息,例如数据库名称和可选的用户名和密码。与直接实例化MongoClient实例相比,FactoryBean还有一个额外的优势,即还为容器提供了ExceptionTranslator实现,该实现将MongoDB异常转换为Spring的可移植DataAccessException层次结构中的异常,用于@Repository注解的数据访问类。首先,需要设置一个正在运行的MongoDB服务器。

2024-02-19 21:37:50 1691

原创 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

原创 Spring整合Kafka(二十一)----提示,技巧和例子

有关详细信息,请参阅。假设你希望始终从所有分区读取所有记录(例如,当使用compacted topic加载分布式缓存时),手动分配分区而不使用Kafka的组管理会很有用。如果希望使用属性配置序列化器/反序列化器,但又希望使用自定义的ObjectMapper,只需创建一个子类并将自定义映射器传递给super构造函数。如果Kafka事务提交失败,记录将被重新deliver,因此数据库更新应该是幂等的。KafkaTemplate会将自己的事务与DB的事务同步,提交/回滚发生在数据库的行为之后。

2024-01-29 21:14:16 1362

原创 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

原创 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----Sampling Queries采样查询

TABLESAMPLE语句用于对表进行采样。

2024-07-26 07:51:33 167

原创 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----查询文件

可以直接使用SQL查询指定格式的文件。

2024-07-22 07:43:20 530

原创 Spark SQL----Inline Table

内联表是使用VALUES子句创建的临时表。

2024-07-22 07:42:59 322

原创 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----HAVING子句

HAVING子句用于根据指定的条件过滤GROUP BY生成的结果。它通常与GROUP BY子句连用。

2024-07-21 07:49:21 327

原创 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关注的人

提示
确定要删除当前文章?
取消 删除