java技术圈 为您找到相关结果 55

关于HTTP的Content-Length与Chunk编码方式_YotWei-CSDN博客_content

最近在学习netty,里面提到了一个TCP拆包粘包的问题,查阅资料了解到了几种解决的办法,例如 使用特殊分隔符 定长数据帧以及 自定义消息头+消息体,在消息头中定义数据包的长度 关于最后一种实现手段,最典型的代表就是我们常见的HTTP协议。 关于Content-Length Content-Length是HTTP头部的一个字段,用于表示HTTP的body数据的长度。但是在HTTP 1.0的时候,Content-Length字段可有可无,因为HTTP 1.0的每一个网络请求都是短连接,在发起TCP三次握手后,服务端返回数据,随后四次挥手,这个连接在HTTP请求结束后会立即关闭,浏览器在读到EOF(-1)的时候就可以认为数据传输完毕。下面用一个Java程序验证一下 public class Ht...阅读全文

博文 2020-06-29 12:06:32 length chunk

Hive SQL的编译过程

Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析。Hive的稳定性和性能对我们的数据分析非常关键。在几次升级Hive的过程中,我们遇到了一些大大小小的问题。通过向社区的咨询和自己的努力,在解决这些问题的同时我们对Hive将SQL编译为MapReduce的过程有了比较深入的理解。对这一过程的理解不仅帮助我们解决了一些Hive的bug,也有利于我们优化Hive SQL,提升我们对Hive的掌控力,同时有能力去定制一些需要的功能。MapReduce实现基本SQL操作的原理详细讲解SQL编译为MapReduce之前,我们先来看看MapReduce框架实现SQL基本操作的...阅读全文

博文 2020-08-07 07:08:10 美团技术团队

Antlr4简易快速入门

1. 简介 Antlr (ANother Tool for Language Recognition) 是一个强大的跨语言语法解析器,可以用来读取、处理、执行或翻译结构化文本或二进制文件。它被广泛用来构建语言,工具和框架。Antlr可以从语法上来生成一个可以构建和遍历解析树的解析器。2. 谁在使用HiveSparkOraclePrestoElasticsearch3. 常见的语法分析器AntlrJavaccSqlParser (位于Alibaba的Druid库中)其中Antlr和Javacc都是现代的语法解析器,两者都很优秀,其中Antlr要更胜一筹。而SqlParser只能解析sql语句,功能比较单一。 :本人基于Antlr和SqlParser分别写了一套elasticsearch-sql...阅读全文

博文 2020-09-16 09:35:11 知乎

java和golang中的unsafe包

首先聊聊反射 java和golang都有各自的反射机制,为什么标准库会提供反射机制呢? 反射(reflection)允许程序在运行时(runtime)检查、修改程序(比如对象,struct等)的结构与行为,跳过编译检查,越过访问权限,运行时对象生成,方法调用等。如果没有反射,那么需要完全手动进行硬编码,比如如果没有反射,那么在spring的ioc容器管理实现就需要我们使用new来创建对象,那么也就不叫spring ioc,不会有spring ioc的诞生了。 静态编译(多数静态语言):在编译时确定类型,绑定对象。 动态编译(多数动态语言):运行时确定类型,绑定对象。可以实现动态创建对象和编译,体现出很大的灵活性(特别是在J2EE的开发中它的灵活性就表现的十分明显)。通过反射机制我们可以获得类...阅读全文

博文 2019-04-03 14:27:58 www.allocmem.com

java和golang中的unsafe包

### 首先聊聊反射 java和golang都有各自的反射机制,为什么标准库会提供反射机制呢? 反射(reflection)允许程序在运行时(runtime)检查、修改程序(比如对象,struct等)的结构与行为,跳过编译检查,越过访问权限,运行时对象生成,方法调用等。如果没有反射,那么需要完全手动进行硬编码,比如如果没有反射,那么在spring的ioc容器管理实现就需要我们使用new来创建对象,那么也就不叫spring ioc,不会有spring ioc的诞生了。 静态编译(多数静态语言):在编译时确定类型,绑定对象。 动态编译(多数动态语言):运行时确定类型,绑定对象。可以实现动态创建对象和编译,体现出很大的灵活性(特别是在J2EE的开发中它的灵活性就表现的十分...阅读全文

关于mysql中LOAD DATA LOCAL INFILE指定列_数据库_qq_31083701的博客

mysql load data部分字段的正确写法 05-30 阅读数 6321 在日常运维中,会经常遇到将文件中数据导入到数据库中,如果是.sql文件,直接采用source方式即可;如果是.csv、.txt文件,可以采用 load data 方式。这两种方式都十分熟悉,这里说一种... 博文 来自: MYSQL轻松学的专栏 mysql LOAD DATA INFILE 导入数据某一列为空 10-08 SQL 语句: LOAD DATA LOCAL INFILE 'data_info.txt' INTO TABLE t1 IGNORE 1 LINES (@date,@time,@name,@weight_lb,@state) SET dt = CONCAT(@date,' ',@time), ...阅读全文

博文 2020-04-24 08:11:28 CSDN博客

Elasticsearch聚合学习之五:排序结果不准的问题分析_程序员欣宸的博客

Elasticsearch上的索引如果有多个分片,那么在聚合排序后取TopN时,返回的结果可能是不准的,今天我们就通过实战来研究分析此问题,并验证解决方法; 环境信息 以下是本次实战的环境信息,请确保您的Elasticsearch可以正常运行: 操作系统:Ubuntu 18.04.2 LTSJDK:1.8.0_191Elasticsearch:6.7.1Kibana:6.7.1 系列文章列表 《Elasticsearch聚合学习之一:基本操作》;《Elasticsearch聚合学习之二:区间聚合》;《Elasticsearch聚合学习之三:范围限定》;《Elasticsearch聚合学习之四:结果排序》;《Elasticsearch聚合学习之五:排序结果不准的问题分析》; 复现问题第一步:创...阅读全文

博文 2021-05-27 14:01:01 CSDN博客

图解 SQL 里的各种 JOIN

从业以来主要在做客户端,用到的数据库都是表结构比较简单的 SQLite,以我那还给老师一大半的 SQL 水平倒也能对付。现在偶尔需要到后台的 SQL Server 里追查一些数据问题,就显得有点捉襟见肘了,特别是各种 JOIN,有时候傻傻分不清楚,于是索性弄明白并做个记录。前言在各种问答社区里谈及 SQL 里的各种 JOIN 之间的区别时,最被广为引用的是 CodeProject 上 C.L. Moffatt 的文章 Visual Representation of SQL Joins,他确实讲得简单明了,使用文氏图来帮助理解,效果明显。本文将沿用他的讲解方式,稍有演绎,可以视为该文较为粗糙的中译版。约定下文将使用两个数据库表 Table_A 和 Table_B 来进行示例讲解,其结构与数据...阅读全文

博文 2021-01-14 02:50:51 知乎

Go之unsafe.Pointer && uintptr类型 - xxggy的个人页面

挑战A.I.,赢百万奖金......了解更多详情>>> Go之unsafe.Pointer && uintptr类型 unsafe.Pointer 这个类型比较重要,它是实现定位欲读写的内存的基础。官方文档对该类型有四个重要描述: (1)任何类型的指针都可以被转化为Pointer (2)Pointer可以被转化为任何类型的指针 (3)uintptr可以被转化为Pointer (4)Pointer可以被转化为uintptr 大多数指针类型会写成T,表示是“一个指向T类型变量的指针”。unsafe.Pointer是特别定义的一种指针类型(译注:类似C语言中的void类型的指针),它可以包含任意类型变量的地址。当然,我们不可以直接通过*p来获取unsafe.Pointer指针指向的真实变量的值,因...阅读全文

博文 2019-07-30 02:21:06 OSCHINA

解剖Go语言map底层实现

map是Go语言中基础的数据结构,在日常的使用中经常被用到。但是它底层是如何实现的呢? Golang中map的底层实现是一个散列表,因此实现map的过程实际上就是实现散表的过程。在这个散列表中,主要出现的结构体有两个,一个叫hmap(a header for a go map),一个叫bmap(a bucket for a Go map,通常叫其bucket)。这两种结构的样子分别如下所示:hmap: 图中有很多字段,但是便于理解map的架构,你只需要关心的只有一个,就是标红的字段:buckets数组。Golang的map中用于存储的结构是bucket数组。而bucket(即bmap)的结构是怎样的呢? bucket: 相比于hmap,bucket的结构显得简单一些,标红的字段依然是“核心”...阅读全文

博文 2019-05-16 09:39:25 RyuGou的博客

Elasticsearch如何做到数十亿数据查询毫秒级响应?

如果面试的时候碰到这样一个面试题:ES 在数据量很大的情况下(数十亿级别)如何提高查询效率?这个问题说白了,就是看你有没有实际用过 ES,因为啥?其实 ES 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s?后面反而就快了,可能就几百毫秒。说实话,ES 性能优化是没有银弹的。啥意思呢?就是不要期待着随手调一个参数,就可以万能的应对所有的性能慢的场景。也许有的场景是你换个参数,或者调整一下语法,就可以搞定,但是绝对不是所有场景都可以这样。Filesystem Cache你往 ES 里写的数据,实际上都写到磁盘文件里去了,查询的时候,操作系统会将磁盘文件里的数据自动缓存到 Filesystem Cache 里面去。es 的...阅读全文

博文 2020-11-16 03:44:23 知乎

x

es 6.3的插件xpack内置了sql, 和NPLChina的elasticsearch-sql插件相比,要少很多实用性的功能,但相比有蛮多性能上的优势。今天看看都有哪些sql优化点。 x-pack sql做的sql优化 PruneDuplicatesInGroupBy: 裁剪重复的group by 字段。以sqlselect * from table group by code,code,这里两次group by都是code,在elasticsearch-sql中,会被group by两次重复计算。xpack-sql做了这个优化,然而是一个没用的优化,因为xpack-sql不支持多字段group by,直接报错。 ReplaceDuplicateAggsWithReferences: 对...阅读全文

博文 2020-05-15 08:31:21 pack sql做的sql优化 | 甲鱼的大数据之旅

Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '<>' - wqbin

1.问题 今天又在mysql中遇到了,吐血。 2.解决方案 SQL最后加上 COLLATE utf8mb4_unicode_ci SELECT t2.cust_id as cust_id_ex,t1.* from ( SELECT * from credit_nigeria.apply WHERE updateTime>"2019-11-10" ) t1 RIGHT JOIN ( SELECT cust_id from bank_nigeria.ng_trans_record WHERE update_Time>"2019-11-18 04" and update_Time<"2019-11-18 05" and pay_type="xx" ) t2 on t1.custid=t2.cust...阅读全文

博文 2020-12-28 02:57:22 博客园

数据库中DQL、DML、DDL、DCL的概念与区别_Levine Huang

SQL(Structure Query Language)语言是数据库的核心语言。 SQL语言共分为四大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL。 1. 数据定义语言DDL 数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如: CREATE TABLE/VIEW/INDEX/SYN/CLUSTER DDL操作是隐性提交的!不能rollback 2 .数据操纵语言DML 数据操纵语言DML主要有三种形式: 1) 插入:INSERT 2) 更新:UPDATE 3) 删除:DELETE 3. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块: SELECT <字...阅读全文

博文 2020-08-07 06:26:38 CSDN博客_ddl是什么意思

跨域资源共享 CORS 详解

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 本文详细介绍CORS的内部机制。 (图片说明:摄于阿联酋艾因(Al Ain)的绿洲公园) 一、简介 CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。 因此,实现CORS通信的关键是服务器。只要服务...阅读全文

博文 2020-05-15 07:14:14 阮一峰的网络日志

我是如何把大象装进冰箱里的……

前几天在知乎看到了这样一个问题:CORNERSTONE等项目管理工具体验如何? ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190829163320260.png) 本来利益相关太高不准备答,但是我发现题主问的是CORNERSTONE等项目管理工具体验如何,我个人理解,题主是想问:CORNERSTONE项目管理工具的使用体验如何——恐怕是题主对我们没有详细了解过。那么正好借此机会,可以向大家好好介绍一下CORNERSTONE项目管理工具! 01 这类产品都脱胎于看板式项目管理 市面上的项目管理工具大多都只有看板这一种视图,但是CORNERSTONE[基石协作](https://www.cornerstone365.cn/)富含了【表格、分栏、看板、甘...阅读全文

博文 2019-08-29 10:51:48 CORNERSTONE

[Hive基础]-- 动态分区与静态分区_余额不足

前言 1、Hive分区的概念与传统关系型数据库分区不同。 2、传统数据库的分区方式:如oracle,分区独立存在于字段,里面存储真实的数据,在数据进行插入的时候自动分配分区。 3、Hive的分区方式:Hive实际是存储在HDFS上的抽象,Hive的一个分区名对应一个目录名,子分区名就是子目录名,并非一个实际字段。 即,当在插入数据的时候指定分区,其就是新建一个目录或者子目录,或者在原有的目录上添加数据文件。 动态分区和静态分区(Hive-0.14以后的特性) 1、动态分区:分区不固定;关键在于“动态”,不需要人为使用 alter table 命令执行添加分区 2、静态分区:分区固定,需要认为使用 alter table 命令添加分区 最大区别:动态分区与静态分区区别就是不指定分区目录,由系统...阅读全文

博文 2020-08-09 05:31:55 CSDN博客_kudu 静态分区 动态分区

Socks5代理工作原理 - 云+社区

Socks5代理工作原理&抓包分析 Socks5代理工作原理[TOC]1. Socks5协议以下摘自维基百科 SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。SOCKS是”SOCKetS”的缩写[注 1]。 当防火墙后的客户端要访问外部的服务器时,就跟SOCKS代理服务器连接。这个代理服务器控制客户端访问外网的资格,允许的话,就将客户端的请求发往外部的服务器。 这个协议最初由David Koblas开发,而后由NEC的Ying-Da Lee将其扩展到SOCKS4。最新协议是SOCKS5,与前一版本相比,增加支持UDP、验证,以及IPv6。 根据OSI模型,SOCKS是会话层的协议,位于表示层与传输层之间。 SOCKS协议不提供加密。 SOCKS 协议第 4 版本为...阅读全文

博文 2021-10-09 08:22:12 腾讯云

ES多个字段group by操作_-阿布-的博客

以下操作基于es6.8 第一种方式 这种方式查询出来的数据不是扁平化的,而是一层套一层的,比如字段一套字段二。 GET 索引name/索引type/_search { "size": 0, "aggregations": { "字段一的结果命名": { "terms": { "field": "要group的字段" }, "aggregations": { "字段二的结果命名": { "terms": { "field": "要group的字段" } } } } } } 结果,one下面的buckets里面是two,每个two下面有自己的bukets,就是two的值和count。 java代码实现 public void demo1(RestHighLevelClient client) {...阅读全文

博文 2022-07-11 12:31:54 CSDN博客_es多字段聚合

关于mysql中的int(N)、char(N)和varchar(N)类型的简单说明_ivnetware的博客

在使用mysql时,int、char和varcahr这几种类型是比较常用的。在大学时有学过数据库,对于int(N)、char(N)和varchar(N)中的N一直了解的不是较透彻,前段时间在网上查了很多资料,现在整理下。 1、int(N) int(N) ,N 表示最大显示宽度(字段设置zerofill属性时可查看区别),不指定N时,默认为11。N 的值跟 int(N) 所占多少存储空间或最大能存储多大长度数据并无任何关系。也就是说 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。 1)创建测试表tb1,字段id1显示宽度为3,id2的显示宽度为5 mysql> create table tb1 (id1 int(3),id2 int(5)); Quer...阅读全文

博文 2020-11-11 10:36:18 CSDN博客

Linux中Buffer和Cache的区别 - D_R_Y

1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而 Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。 Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能。 2. Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设...阅读全文

博文 2020-06-21 04:42:58 博客园

如何优雅的全量读取Elasticsearch索引里面的数据_三劫散仙

(一)scroll的介绍 有时候我们可能想要读取整个es索引的数据或者其中的大部分数据,来重建索引或者加工数据,相信大多数人都会说这很简单啊直接用from+size就能搞定,但实际情况是from+size的分页方法不适合用于这种全量数据的抽取,越到后面这种方法的性能就越低,这也是es里面为什么限制了单次查询结果的数据不能超过1万条数据的原因。 es里面提供了scroll的方式来全量读取索引数据其与数据库里面的游标(cursor)的概念非常类似,使用scroll读取数据的时候,只需要发送一次查询请求,然后es服务端会生成一个当前请求索引的快照数据集,接着我们每次通过scrollId来读取指定大小的批次数据,直到把整个索引的数据读取完毕。 这里面需要注意,当索引快照集生成的时候,其实在es内部维...阅读全文

博文 2020-11-19 09:11:59 CSDN博客

sql语句中join on和where用法的区别和联系 - 一个破名想半年的个人空间

对于要达到同一查询结果而言,join和where的用法是语句格式不一样,查询的结果是一样的。 先来看看join的语句分类: left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。 right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。 inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。 full join:外连接,返回两个表中的行:left join + right join。 cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。 关键字: on 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和wher...阅读全文

博文 2020-05-19 09:09:08 OSCHINA

[Golang]两个对象的指针相同,一定是同一个对象吗?

开门见山 今天发现一个十分有趣的case,如下: package main import "fmt" func main() { n1 := make ([] int, 0,5) n2 := n1[:2] fmt.Println(n1) fmt.Println(n2) // 思考 n1和n2打印出的指针地址是否相同? fmt.Printf("address of n1:%p\n",n1) fmt.Printf("address of n2:%p\n",n2) } n1不是指针类型,是make的一个[]int slice的引用类型,可能多数人会有这样的思考: 两个对象的指针地址相同,那么这两个对象存储的内容是相同的,即使slice的底层数组结构SliceHeader的Data字段域(数组),在...阅读全文

博文 2020-03-11 02:54:56 blog.allocmem.com

多个单列索引和联合索引的区别详解_数据库_Abysscarry的博客

背景: 为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。 一、联合索引测试 注:Mysql版本为 5.7.20 创建测试表(表记录数为63188): CREATE TABLE `t_mobilesms_11` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `userId` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户id,创建任务时的userid', `mobile` varchar(24) NOT NULL D...阅读全文

博文 2020-04-21 04:36:55 CSDN博客

Orika对象复制教程(完美笔记) - 付宗乐

一、Orika背景介绍 Orika是java Bean映射框架,可以实现从一个对象递归拷贝数据至另一个对象。在开发多层应用程序中非常有用。在这些层之间交换数据时,通常为了适应不同API需要转换一个实例至另一个实例。 有很多方法可以实现:硬代码拷贝或Dozer实现bean映射等。总之,需要简化不同层对象之间映射过程。 Orika使用字节码生成器创建开销最小的快速映射,比其他基于反射方式实现(如,Dozer)更快。之前使用Bean Copy 性能非常慢,发现在这个领域业界还是有很多新秀的。 Orika 应该就算一个比较好的吧。 二、优势 1. 性能 大概是Dozer的8-10 倍, 这个上面的已经做了描述 2. 内存消耗 大概是Dozer内存消耗的一半多点。 为什么做到这点的还没想清楚, 估计是...阅读全文

博文 2021-06-07 12:51:58 博客园

一口气说出 6种 @Transactional 注解失效场景_HollisChuang's Blog

引言 昨天公众号粉丝咨询了一个问题,说自己之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败。所以今天简单的和大家分享一下@Transactional相关的知识。 @Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是莫名其妙的就失效了。 一、事务 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。 编程式事务:是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例: 1try { 2 //TODO ...阅读全文

博文 2020-10-16 14:52:17 CSDN博客

es的_source ,index,store重要字段的理解!!!!!!_健康平安的活着的博客

一._score字段 存储的原始数据。_source中的内容就是搜索api返回的内容,如: 默认情况下,Elasticsearch里面有2份内容,一份是原始文档,也就是_source字段里的内容,我们在Elasticsearch中搜索文档,查看的文档内容就是_source中的内容。另一份是倒排索引,倒排索引中的数据结构是倒排记录表,记录了词项和文档之间的对应关系。 https://www.cnblogs.com/wangzhuxing/p/9527151.html#_label1_2 二.index字段 index使用倒排索引存储的是,分析器分析完的词和文档的对应关系。如图: 文档索引到Elasticsearch的时候,默认情况下是对所有字段创建倒排索引的(动态mapping解析出来为数字类...阅读全文

博文 2022-03-23 12:52:58 CSDN博客__source es

Elasticsearch-入门到精通-7 PUT和POST区别_云姐的博客

文章目录 1、创建document 区别使用ES自动生成id使用自定义id 2、更新document 区别PUT全量替换 POST(1)最简单的 update 请求(2)使用脚本局部更新i. 修改_source字段内容ii. 添加数组字段的值iii. 根据内容删除文档iv. 更新可能不存在的文档v. 更新和冲突 3、HTTP 协议之PUT POSTPOSTPUT用PUT还是POST 4、总结:举例,给view字段+1操作疑问 PUT 是 强制创建、全量更新操作 POST 是 创建、局部更新操作 看上去PUT和POST都可以创建、更新document,那么在创建document、更新document的时候有什么区别呢? 1、创建document 区别 使用ES自动生成id 我们如何确定是完全创...阅读全文

博文 2022-04-21 12:52:53 CSDN博客_put和post的区别

数据库表连接的简单解释

关系型数据库最难的地方,就是建模(model)。 错综复杂的数据,需要建立模型,才能储存在数据库。所谓"模型"就是两样东西:实体(entity)+ 关系(relationship)。 实体指的是那些实际的对象,带有自己的属性,可以理解成一组相关属性的容器。关系就是实体之间的联系,通常可以分成"一对一"、"一对多"和"多对多"等类型。 在关系型数据库里面,每个实体有自己的一张表(table),所有属性都是这张表的字段(field),表与表之间根据关联字段"连接"(join)在一起。所以,表的连接是关系型数据库的核心问题。 表的连接分成好几种类型。 内连接(inner join) 外连接(outer join) 左连接(left join) 右连接(right join) 全连接(full jo...阅读全文

博文 2021-04-29 04:41:41 阮一峰的网络日志

Http Body 的四种格式_OnebyWang的博客

Http Body 的四种格式 1、参考资料 http的请求体body的几种数据格式 HTTP协议之multipart/form-data请求分析 2、Http Body 的四种格式 在 Postman 的请求体中有这样四种格式:form-data,x-www-from-urlencoded,raw,binary,那么这四种格式分别代表什么呢? 2.1、form-data form-data 的作用 form-data 就是 Http 协议中的 multipart/form-data,表示以表单形式提交,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。 使用 form-data 传输字符串键值对 在 Postman 选择 Body 的格式为 fo...阅读全文

博文 2022-03-23 12:55:08 CSDN博客_body的格式

ElasticSearch 聚合分析 - 码农充电站

公号:码农充电站pro 主页:https://codeshellme.github.io ES 中的聚合分析(Aggregations)是对数据的统计分析功能,它的优点是实时性较高,相比于 Hadoop 速度更快。 1,聚合的分类 ES 中的聚合分析主要有以下 3 大类,每一类都提供了多种统计方法: Metrics:对文档字段进行统计分析(数学运算),多数 Metrics 的输出是单个值,部分 Metrics 的输出是多个值。 Sum:求和 Max:求最大值 Min:求最小值 Avg:求平均值 等 Bucket:一些满足特定条件的文档集合(对文档进行分组)。 Terms Range 等 Pipeline:对其它的聚合结果进行再聚合。 Avg bucket:求平均值 Max bucket:求最...阅读全文

博文 2022-04-20 13:00:08 博客园

【hive】cube和rollup函数 - zzhangyuhang

cube 数据立方体(Data Cube),是多维模型的一个形象的说法.(关于多维模型这里不讲述,在数据仓库设计过程中还挺重要的,有兴趣自行查阅) 立方体其本身只有三维,但多维模型不仅限于三维模型,可以组合更多的维度 为什么叫数据立方体? 一方面是出于更方便地解释和描述,同时也是给思维成像和想象的空间; 另一方面是为了与传统关系型数据库的二维表区别开来 下图为数据立方体的形象图 其实并不用把cube理解得很高大上,只要理解为分别按照不同维度进行聚合. hive中也有cube函数,可以实现多个任意维度的查询 cube(a,b,c)则首先会对(a,b,c)进行group by, 然后依次是(a,b),(a,c),(a),(b,c),(b),(c),最后在对全表进行group by,他会统计所选列...阅读全文

博文 2022-07-08 08:28:34 博客园

大数据实用组件Hudi--实现管理大型分析数据集在HDFS上的存储 - 云+社区

问题导读 1.什么是Hudi? 2.Hudi对HDFS可以实现哪些操作? 3.Hudi与其它组件对比有哪些特点? 前两天我们About云群大佬公司想了解Hudi ,并上线使用。Hudi 或许大家了解的比较少,这里给大家介绍下Hudi这个非常实用和有潜力的组件。 Hudi是在HDFS的基础上,对HDFS的管理和操作。支持在Hadoop上执行upserts/insert/delete操作。这里大家可能觉得比较抽象,那么它到底解决了哪些问题? Hudi解决了我们那些痛点 1.实时获取新增数据 你是否遇到过这样的问题,使用Sqoop获取Mysql日志或则数据,然后将新增数据迁移到Hive或则HDFS。对于新增的数据,有不少公司确实是这么做的,比较高级点的,通过Shell调用Sqoop迁移数据实现自动...阅读全文

博文 2022-03-23 12:52:09 腾讯云

统计去重后的数量 | Elasticsearch: 权威指南

速度优化edit 如果想要获得唯一值的数目, 通常 需要查询整个数据集合(或几乎所有数据)。 所有基于所有数据的操作都必须迅速,原因是显然的。 HyperLogLog 的速度已经很快了,它只是简单的对数据做哈希以及一些位操作。 但如果速度对我们至关重要,可以做进一步的优化。 因为 HLL 只需要字段内容的哈希值,我们可以在索引时就预先计算好。 就能在查询时跳过哈希计算然后将哈希值从 fielddata 直接加载出来。 预先计算哈希值只对内容很长或者基数很高的字段有用,计算这些字段的哈希值的消耗在查询时是无法忽略的。 尽管数值字段的哈希计算是非常快速的,存储它们的原始值通常需要同样(或更少)的内存空间。这对低基数的字符串字段同样适用,Elasticsearch 的内部优化能够保证每个唯一值只计...阅读全文

博文 2022-03-23 12:53:58 Elastic

hive中的lateral view 与 explode函数的使用_guodong2k的博客

explode与lateral view在关系型数据库中本身是不该出现的,因为他的出现本身就是在操作不满足第一范式的数据(每个属性都不可再分), 本身已经违背了数据库的设计原理(不论是业务系统还是数据仓库系统),不过大数据技术普及后,很多类似pv,uv的数据,在业务系统中是存贮在非关系型数据库中, 用json存储的概率比较大,直接导入hive为基础的数仓系统中,就需要经过ETL过程解析这类数据,explode与lateral view在这种场景下大显身手。 explode作用是处理map结构的字段,使用案例如下(hive自带map,struct,array字段类型,但是需要先定义好泛型,所以在此案例不使用): 建表语句: drop table explode_lateral_view; cr...阅读全文

博文 2022-08-04 06:32:34 CSDN博客_hive lateral

Elasticsearch的mapping设置:enabled, index, doc_values, store, _source到底是什么鬼?

0x00 背景介绍最近尝试用ES + Kibana来快速搭建一个全新的可视化平台,有机会仔细阅读了一下ES的文档,发现mapping里有很多设置选项,初次看时令人眼花缭乱,若设置不当,有可能浪费存储空间,也有可能导致无法使用Aggregations,故在此记录一下重点内容。如有错误,恳请点击这里提issue,我会及时改正。 本文参照的版本为 Elasticsearch 5.6 0x01 配置项速查这里列出了各个选项的名称、作用以及注意事项,仅供速查使用。详细解释请阅读下文。 配置项 作用 注意事项 默认值 index 是否加入倒排索引 关闭后无法对其进行搜索 字段仍会存储到_source和doc_values 字段可以被排序和聚合 开启 _source 存储post到ES的原始文档 会占用很...阅读全文

博文 2022-03-23 12:53:36 IdeaWand

MyBatis 循环 Foreach

MyBatis 循环 Foreach拾柒_发布于 2020-07-09 Mybatis之foreach用法----List、Array、Map三种类型遍历 原文地址 在mybatis的xml文件中构建动态sql语句时,经常会用到标签遍历查询条件。特此记录下不同情况下书写方式!-------仅供大家参考------ 1. foreach元素的属性 collection: 需做foreach(遍历)的对象,作为入参时,list、array对象时,collection属性值分别默认用"list"、"array"代替,Map对象没有默认的属性值。但是,在作为入参时可以使用@Param(“keyName”)注解来设置自定义collection属性值,设置keyName后,list、array会失效; ...阅读全文

博文 2022-04-28 08:42:59 SegmentFault 思否

Hive典型应用场景之行列转换_小飞鱼_bigdata的博客

在使用Hive处理数据时,经常遇到行列转换的场景,本文将对Hive的行列转换操作做详细的说明。 行转列## 1)多行转多列 假设数据表 row2col: col1 col2 col3 a c 1 a d 2 a e 3 b c 4 b d 5 b e 6 现在要将其转化为: col1 c d e a 1 2 3 b 4 5 6 此时需要使用到max(case … when … then … else 0 end),仅限于转化的字段为数值类型,且为正值的情况。 HQL语句为: select col1, max(case col2 when 'c' then col3 else 0 end) as c, max(case col2 when 'd' then col3 else 0 end) a...阅读全文

博文 2022-03-27 05:58:44 CSDN博客_hive 行列互换

Elasticsearch 7 : 使用 ignore_above 限制字符串长度

创建 mapping 时,可以为字符串(专指 keyword) 指定 ignore_above ,用来限定字符长度。超过 ignore_above 的字符会被存储,但不会被索引。 注意,是字符长度,一个英文字母是一个字符,一个汉字也是一个字符。 在动态生成的 mapping 中,keyword类型会被设置ignore_above: 256。 ignore_above 可以在创建 mapping 时指定。 验证 ignore_above 效果 PUT my_index { "mappings" : { "properties" : { "note" : { "type" : "keyword", "ignore_above": 4 } } } } 使用 _bulk 创建文档 POST _bul...阅读全文

博文 2022-03-23 12:56:53 乐天笔记

为什么列存储数据库读取速度会比传统的行数据库快?

如果懒得看分析直接看结论:列存储的数据库更适合OLAP行存储的数据库更适合OLTP所谓的快只是针对于进行olap操作而言我们知道,数据在存储中的基本单位为页,这也是进行数据读取时候基本单位,一次读取就是一次IO操作以sql server为例,一个数据页大小为8K,数据页中存储的是数据,数据是连续存储的那么我假设如下的4*4表格为一个数据页再假设,有这样一个表格 字段1 字段2字段1的值为 col1value1,col1value2.....字段2的值为col2value1,col2value2......再假设一个excel的单元格为一个存储单位,数据总量占了2个页,那么以行方式存储大概就这样的以列方式存储则是这样的这时,如果我需要执行如下查询(oltp典型查询)select 字段1,字段2...阅读全文

博文 2022-04-15 07:08:18 知乎

ElasticSearch学习笔记之九 复杂数据类型和嵌套对象_灵动的艺术的博客

ElasticSearch学习笔记之九 复杂数据类型和嵌套对象 复杂数据类型空域数组域多层级对象内部对象的映射内部对象的索引内部对象数组 嵌套对象嵌套对象映射 复杂数据类型 除了前面说到的简单数据类型,Elasticsearch还支持JSON 的null ,数组,和对象. 空域 字段取值可以为空,当然,数组也可以为空。 然而,在 Lucene 中是不能存储 null 值的,所以我们认为存在 null 值的域为空域。 下面三种域被认为是空的,它们将不会被索引: "null_value": null, "empty_array": [], "array_with_null_value": [ null ] 数组域 很多时候,我们希望 tag 域 包含多个标签。我们可以以数组的形式索引标签: { ...阅读全文

博文 2022-10-02 13:22:46 CSDN博客

CEP引擎Esper在入侵检测系统中的实践

目录 1、名词2、CEP引擎离线引擎实时引擎Esper:Fink CEP:Siddhi:3、逻辑架构图4、数据流图5、关于Storm中的数据分组6、实时Sigma引擎7、Esper规则模板8、Case Study9、结尾 1、名词 CEP(Complex Event Processing):复杂事件处理、复合事件处理 EPL(Event Processing Language):SQL-LIKE的事件处理语言,用于描述CEP任务 2、CEP引擎 离线引擎 待补充。 实时引擎 Esper: 优点:更新活跃,轻量级嵌入式引擎,规则验证方便,本地导入包后,即可运行。官方提供的文档和case study很全面,支持标准SQL语法,唯一编译型CEP引擎,吞吐量很大单机600W/S。 缺点:分布式需要自...阅读全文

博文 2022-12-22 01:38:33 Wayne's Blog

SQL中的行转列和列转行 - 腾讯云开发者社区

导读SQL是IT行业很多岗位都要求具备的一项能力,对于数据岗位而言更是如此,甚至说扎实的SQL基础也往往是入职这些岗位的必备技能。而在SQL面试中,一道出镜频率很高的题目就是行转列和列转行的问题,可以说这也是一道经典的SQL题目,本文就这一问题做以介绍分享。 给定如下模拟数据集,这也是SQL领域经典的学生成绩表问题。两张期望的数据表分别如下:1)长表:scoreLong2)宽表:scoreWide考察的问题就是通过SQL语句实现在这两种形态间转换,其中长表转为宽表即行转列,宽表转为长表即列转行。 01 行转列:sum+if在行转列中,经典的解决方案是条件聚合,即sum+if组合。其基本的思路是这样的:在长表的数据组织结构中,同一uid对应了多行,即每门课程一条记录,对应一组分数,而在宽表中需...阅读全文

博文 2022-07-08 08:56:53 腾讯云

Lucene-03

基本概念 在深入解读Lucene之前,先了解下Lucene的几个基本概念,以及这几个概念背后隐藏的一些东西。 Index(索引) 类似数据库的表的概念,但是与传统表的概念会有很大的不同。传统关系型数据库或者NoSQL数据库的表,在创建时至少要定义表的Scheme,定义表的主键或列等,会有一些明确定义的约束。 而Lucene的Index,则完全没有约束。 Lucene的Index可以理解为一个文档收纳箱,你可以往内部塞入新的文档,或者从里面拿出文档,但如果你要修改里面的某个文档,则必须先拿出来修改后再塞回去。 这个收纳箱可以塞入各种类型的文档,文档里的内容可以任意定义,Lucene都能对其进行索引。 Document(文档) 类似数据库内的行或者文档数据库内的文档的概念,一个Index内会包含...阅读全文

博文 2023-05-15 10:53:10 基本组件概念介绍 | Echo Blog

Ognl访问数组、List和Map_ognl 数组

数组 package com.xs; import ognl.Ognl; import ognl.OgnlContext; import ognl.OgnlException; public class OgnlAarray { /** * @param args * @throws OgnlException */ public static void main(String[] args) throws OgnlException { User user0 = new User(); user0.setPassword("word0"); user0.setUsername("user0"); User user1 = new User(); user1.setPassword("wor...阅读全文

博文 2023-11-17 14:32:38 CSDN博客

一种Mysql和Mongodb数据同步到Elasticsearch的实现办法和系统

本文分享自天翼云开发者社区《一种Mysql和Mongodb数据同步到Elasticsearch的实现办法和系统》,作者:l****n核心流程如下:​核心逻辑说明:MySQL Binlog解析:首先,从MySQL的二进制日志(Binlog)中解析出表名。这一步骤非常关键,因为我们只关注特定表的数据变更。进一步,我们检查Binlog中的操作类型,如INSERT、UPDATE和DELETE,以确定是否是表数据的变动操作。这是因为我们只需要捕获数据的变更,而不关心查询操作。如果操作是INSERT或DELETE,我们只需要关注受影响的数据行。对于UPDATE操作,我们需要记录新旧值的变化。内存中数据组装:从解析过的Binlog数据中,我们构建一个内存数据结构,通常是一个数据对象,其中包括表名、字段名、...阅读全文

博文 2023-11-06 17:42:58 Tianyiyun

ThreadLocal为什么要用WeakReference

先上一张图看一下ThreadLocal的内部结构,每个Thread对象内部都维护了一个ThreadLocal.ThreadLocalMap 我们在上图看到的就是三个Thread对象内部格子的ThreadLocalMap 这里要说的不是ThreadLocal,是ThreadLocal为什么要用WeakReference static class ThreadLocalMap { static class Entry extends WeakReference> { Entry(ThreadLocal k, Object v) { super(k); value = v; } 复制代码 弱引用WeakReference 弱引用只要发生了gc就会被回收,但前提是...阅读全文

博文 2023-05-23 03:39:09 掘金

SQL中的DDL(数据定义)语言:掌握数据定义语言的关键技巧!

DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。 前面我们介绍了数据库及SQL语言的相关概念和基础知识,本篇文章我们来重点讲述DDL(数据定义语言的语法格式)的相关内容以及DDL的常用语句。 ## 一、DDL介绍 这里我们先回顾一下前面讲过的SQL语言的概念:SQL(Structured Query Language),即结构化查询语言,是在关系型数据库(诸如Mysql、SQL Server、Oracle等)里进行相关操作的标准化语言,可以根据sql的作用分为以下几种类型: ![image.png](http://static.itsharecircle.com/231103/0d3a491cee0ff9958f64051798e1e...阅读全文

博文 2023-11-03 15:53:56 YDYXCODE