自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 资源 (2)
  • 问答 (6)
  • 收藏
  • 关注

原创 Mysql:事务

当一条update语句发送给Mysql后,Mysql server会根据where条件,读取第一条满足条件的记录,然后innodb引擎调用读取数据接口,返回这条记录,并加锁,会再发起一条update请求,更新这条记录,因此update操作内部包含了一个当前读,同理,delete操作也是如此,insert稍微有些不同,简单来说,insert的时候会触发unique key的冲突检查,也会进行一个当前读。与redo log常用来比较的是binlog,binlog主要是用来做备份的,下面是它们的一些区别。

2024-04-30 16:43:21 1541 1

原创 Mysql:常见问题

4、optimize table、analyze table、alter table这三种方式新建表的区别?2、查询缓存和缓冲池的区别。2、delete删表。

2024-04-29 15:04:01 524

原创 Oracle数据库Bug:相关子查询多层嵌套报错:标识符无效

把这条Sql拿到Oracle去执行,是报错的,报date标识符无效,这明显不大合理,在我的印象中,oracle是支持这种写法的,而且一般Mysql支持的特性Oracle也支持,后面发现是oracle版本的问题。我把这条Sql语句拿到Oracle 19c执行是没有问题的,而报错的oracle版本是11.2.0.3.0。因为oracle不支持limit,所以必须改写为row_number()或者rownum,如下所示。把上述代码改成keep语句,只用一层嵌套子查询。

2024-04-19 10:10:25 637

原创 Rabbitmq基础

fanout和headers类型都不需要路由键routeKey,交换时通过Headers头部来将消息映射到队列的,Hash结构中要求携带一个键"x-match",这个键的Value可以是Any或者All,这代表消息携带的Hash是需要全部匹配(all),还是仅匹配一个键Any就可以了,相比直连交换机,首部交换机的优势是匹配的规则不被限定为字符串(string)而是Object类型。

2024-04-11 09:59:46 1140

原创 数据库误删库、表怎么办?

闪回表就是对表的数据做回退,回退到之前的某个时间点,其利用的是undo的历史数据,与undo_retention设置有关,默认是14400分钟(1天)2)、drop时使用purge(彻底删除)或清空回收站是无法再恢复的。1)、若有多次drop记录,默认会恢复最新的一次drop记录。首先可以了解下binlog的三种格式。

2024-04-02 11:26:47 790

原创 Mysql如何实现full join?

【代码】Mysql如何实现full join?

2024-03-04 16:10:46 739

原创 python实现rdbms和neo4j的转换

【代码】python实现rdbms和neo4j的转换。

2024-02-05 16:19:10 614

原创 图数据库neo4j入门

首先要有对应的java环境,我的是。3、删除全部节点以及关系(慎用!注:若节点有关系需先删除关系。2、创建带属性的节点。

2024-02-05 15:01:37 1413

原创 Mysql 文件导入与导出

解决方法:执行上述sql后,如果出来的是目录,把本地文件放到此目录下即可或者指定为空。

2024-01-24 16:42:36 823

原创 如何优化Mysql etl性能?

age int,...上面是自定义分区的大小。

2024-01-23 16:11:37 401

原创 数据库常用系统表及常用功能

1、查询所有连数据库的进程。1、查询正在运行的Sql。2、杀掉正在运行的Sql。

2024-01-19 17:06:34 81

原创 如何做血缘解析?

1、先传入Sql到解析入口,判断Sql是单独select语句还是包含union的select语句,若是包含union,通过 SQLUnionQuery.getLeft()和getRight()方法拆分union语句,再把拆分的语句放到解析的入口。4、解析表达式,上一步getExpr可能得到的字段是有多个字段加工而来,需要进行处理,解析表达式有如下种类,针对不同的类型有不同的处理方法,最终调用setSourceColumnName。比如说一段Sql传进来后,会先解析为AST抽象语法树。

2024-01-16 14:30:19 441

原创 python进阶:常见问题

也就是说import在导入文件的时候,会自动把暴露在外面的代码全都执行一遍,因此,如果你要把一个东西封装成模块,又想让它可执行的话,必须要将执行的代码放在 if __ name__ == '__ main__'下。在功能方面,用if和assert似乎没什么差异,但是需要注意assert的检查是可以被关闭,比如运行python程序的时候,加入-O选项就会让assert失效。在对一些重要的功能进行判断的时候,假如使用了assert,并且不小心失效的时候,会给程序带来巨大的安全漏洞。会输出:testint和3。

2024-01-03 16:46:18 355

原创 Python进阶:Asyncio并发编程

和其它Python程序一样,是单线程的,只有一个主线程,但是可以进行多个不同的任务(task),这里的任务,就是特殊的future对象,这些不同的任务,被一个叫做event loop的对象所控制。可以把这里的任务,类比多线程版本里的多个线程上述代码是爬虫的简单示例,四个url一共用了10s的时间,如何用协程进行优化呢?async:声明异步函数,上面的crawl_page和main都成了异步函数await:协程的关键字,后面接异步函数1、当遇到 await 关键字时,协程会暂停自己的执行。

2024-01-03 15:50:01 1053

原创 Python进阶:Futures并发编程

在上述代码中,ProcessPoolExecutor()表示创建进程池,使用多个进程并行,这里,通常省略参数workers,因为系统会自动返回CPU的数量作为可以调用的进程数,但是使用多进程效果并不一定显著,因为并行的方式一般用在CPU heavy的场景中,而上述场景是I/O heavy。上述代码表示,创建了个线程池,总共有5个线程可以分配使用,map高阶函数表示并发的对sites的每一个元素调用函数download_one()也可以通过并行的方式运行上述代码。3、详解Futures。

2023-12-28 17:51:34 859

原创 Dbeaver如何连接Oceanbase?

1、找到新增的oceanbase驱动。2、填写实际的url。

2023-12-25 20:02:30 2483

原创 python进阶:装饰器

上述代码是描述装饰器可以接受原函数任意类型和数量的参数,此外,它还可以接受自己定义的参数print('打印参数:{}'.format(name))函数还是原函数吗?#打印出来是wrappergreet()函数被装饰之后,元信息就变了,不再是greet()函数,而是wrapper()函数为了解决这个问题,通常使用内置的装饰器@functools.wrap,会帮助我们保留原函数的元信息(也就是将原函数的元信息,拷贝到对应的装饰器函数里)print('打印参数:{}'.format(name))

2023-12-19 14:28:54 888

原创 python进阶:函数

如上述代码所示,外部函数nth_power()返回值,是函数exponent_of(),而不是一个具体的数值,需要注意的是在执行square = nth_power(2)和cube = nth_power(3)后,外部函数的参数exponent仍然会被内部函数exponent_of()记住。闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来还会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。1、为什么要使用匿名函数?

2023-12-18 16:56:53 926

原创 python进阶:深入理解迭代器和生成器

可以简单理解为函数运行到yield这一行的时候,程序会从这里暂停,然后生成一个值跳出程序,每次next()函数被调用的时候,暂停的程序又复活了,会把yield生成的值返回给调用者,周而复始;从代码层面上说,迭代器是实现了迭代器协议的对象,即具有__iter__()和__next__()方法,它用于提供一种顺序访问容器中元素的方式,而无需了解容器的内部实现细节。上述代码是生成一个包含一亿元素的列表,迭代器是用[]括起来的,每个元素在生成后都会保存在内存中,此时内存占用大概是迭代器对象 + 元素占用的内存。

2023-12-15 14:22:04 785

原创 python进阶:异常处理

上述代码是用来处理某个文件夹下的json文件,假如某个json文件格式不正确,程序就会终止并退出,但是其它json文件格式是正确的,我想让它不管格式有问题的json文件,从而处理其它正确的json文件,有什么办法呢?不过,很多时候,我们很难保证程序覆盖所有的异常类型,更通常的做法,是在最后一个except block,声明其处理的异常类型是Exception.Exception是其他所有非系统异常的基类,能够匹配任意非系统异常。也可以在except后面省略异常类型,表示与任意异常匹配。

2023-12-14 16:34:35 877

原创 python进阶:上下文管理器和with语句

需要注意的是,当使用类来创建上下文管理器时,必须保证类包括’__ enter__’ 和 ’__ exit__'方法。也可以用try except finally语句处理。就和我们使用with open() as f一样。2、打开、关闭数据库操作。1、打开、关闭文件操作。

2023-12-14 14:12:11 381

原创 python进阶:浅拷贝与深拷贝详解

而’is’操作符比较的是对象的身份标识是否相等,即它们是否是同一个对象,是否指向同一个内存地址,在python中,每个对象的身份标识,都能通过id(object)获得,因此’is’操作符,相当于比较对象之间的id是否相等。相当于l2会重新开辟一块内存区域,会存储1,2,3,但是不会存储[4,5],只是存储[4,5]对象的引用,如下图所示。我们知道,对于不可变数据类型,没有提供修改它的方法,是不是可以理解为无论是浅拷贝还是深拷贝返回的结果都是一样的。= id(b),即a is b返回的是False。

2023-12-12 16:38:33 998

原创 Vertica学习:基础语法

全部分段将数据均匀地分布到各个节点上。1、order by 后面插入的数据是有序的,因此一般order by的列就源于where条件后的列,例如,如果子句查询中有where x = 1 and y = 2,那么使用order by (x,y)查询的时候就会迅速定位到符合条件的数据。SEGMENTED BY [column_name] [ON [SUB]CLUSTER cluster_name]:在指定的子集群或特定的集群上进行分段。2、group by后面的字段,出现在order by中也可以优化查询。

2023-11-29 15:27:43 875

原创 Python学习:常用数据结构

二、双向链表(linkedlist)一、数组(array)四、队列(queue)三、栈(stack)

2023-11-23 08:40:22 456

原创 如何理解Python中一切皆对象?

Python中一切皆对象,如常见的加(+)、减(-)、乘(*)、除(/)、相等(==)都是调用类中的某个方法。当删除对象时,python解释器也会默认调用__del __()方法。__xx __()的函数叫做魔法方法,指的是具有特殊功能的函数。

2023-11-22 10:07:00 192

原创 Python应用:自动生成数据库建表语句

【代码】Python学习:自动生成Mysql建表语句。

2023-11-22 08:54:38 706

原创 Mysql:RC隔离级别下如何提高并发?

意思是插入意向锁准备插入之前遇到了间隙锁,但是隔离级别是RC,按照网上的说法和文档,RC隔离级别是不会出现Gap Lock的,后面发现表中若有唯一索引,RC隔离级别下并发也会导致Gap Lock,去掉唯一索引,跑批就没问题了。Mysql是支持行锁的,但是行锁只是针对索引列,若删除条件未加索引会导致走表锁,这样就会造成死锁。索引建了之后运行还是报错死锁,打开死锁日志。

2023-11-09 09:28:35 177

原创 Mysql:锁

3、间隙锁(Gap Lock):是在索引范围间隙上设置的锁,用于防止其它事务在这个范围内插入新的记录,间隙锁可以避免幻读问题。6、设置锁等待超时参数:innodb_lock_wait_timeout(默认50s)4、尽量以相同顺序访问索引记录和表(两条Sql的加锁顺序不一致)Mysql引擎InnoDB支持表级锁和行级锁共存,默认为行级锁。3、避免大事务,将大事务拆分成多个小事务。1、记录锁(Record Lock)2、临键锁(Next-Key 锁)1、正常的读(S)写(X)表锁。

2023-11-07 09:00:19 195

原创 数仓删数方案

源头有逻辑删除标志的话,数仓直接同步过来,推数的时候可限制isvalid = 1。a、数仓中所有表加上是否有效标志,如isvalid,第一次默认全为1。b、找出已删除数据,插入这张临时表。b、更新逻辑删除标志。

2023-11-02 19:04:44 180

原创 数据库函数实现传入汉字生成拼音首字母

1、传入字符串生成第一个字符首字母。2、传入字符串生成拼音首字母。

2023-10-31 08:37:07 91

原创 如何快速从Oracle迁移到Mysql?

通过navicat同步oracle表结构到mysql,其它类型都能转换,但是oracle的number和Integer类型到了Mysql这边就会变成decimal(65,30),数据会自动补0。navicat是通过oracle的客户端连接oracle的,报这个错是因为navicat for oracle的oci文件和远程/本地的oracle数据库不一致。可以在本地下载oracle客户端,然后把navicat的oci文件指定到oracle客户端目录下的oci文件。1、选择工具中的数据传输。

2023-10-22 15:14:11 467

原创 Oracle函数如何返回多行多列?

如何把多行collections拼接成一个大表?可以使用cross join(笛卡尔连接)

2023-10-21 10:30:17 558

原创 Mysql批量插入更新如何拆分大事务?

1、Mysql任务使用的更新方式是on duplicate key,执行完成之后,会发现数据库表的auto_increment一直增长且不连续,就算没有新增数据,只是修改数据,auto_increment也会一直增长。原理是:因为自增长ID都是主键,要求不能重复,必定是唯一的,所以设置为1后,mysql会自动检测AUTO_INCREMENT是否合法,若不合法,就会自动将AUTO_INCREMENT设置为当前表max(id)+1。使用limit分页拆分大事务。

2023-10-21 09:45:39 863 1

原创 Oracle与Mysql语法区别

Oracle不支持,需要自己实现。

2023-10-14 13:16:10 442

原创 pyspark报错

sparkContext后的参数有问题,即使加上这个参数会标红,运行是没问题的。这个报错一般是因为本地spark版本和pyspark版本不一致导致的,可以用。查看pyspark版本,然后将版本替换为一致即可。

2023-09-06 10:01:06 727

原创 sql进阶:求满足某列数值相加无限接近90%的行(90分位)

表中有某个id列和数值列,求数值列占比为90%的id,如有个用户表,存储id和消费金额order_cnt,求一条sql查出消费占比无限接近90%的所有客户,如表中总消费为10000,占比最高的是4000、3000、2800,对应A、B、C用户,查出A、B、C用户。2、用到sum但是不能计算全部行的sum,而是计算某一个窗口的sum,可以用到开窗函数。3、开窗函数无分组参数,有排序参数,分析函数作用范围从表中第一行作用到最后一行。1、求占比为90%说明要用到聚合函数sum。

2023-07-24 16:32:29 468

原创 python学习:爬虫爬取微信公众号数据

参考: https://blog.csdn.net/qq_45722494/article/details/120191233。上述第一步可以获取到cookie、fakeid、token、user_agent等,编辑成wechat.yaml文件,如下所示。1、使用fiddler或Charles抓包。1、登录微信公众平台。

2023-07-18 15:50:24 6105 11

原创 shell脚本写csv文件进mysql

【代码】shell脚本写csv文件进mysql。

2023-07-11 16:47:20 400

原创 DataX报错

把上面byte:1234567行去掉就可以了。

2023-06-29 18:00:52 484

原创 Hive学习:Hive导入字段带逗号和换行符的CSV文件

比如上面这行数据,字段"600,000,000,00"带多个逗号,这个可以用hive中内置的语句来解决,使用OpenCSVSerde来解析CSV格式的数据,并指定了CSV文件中使用的分隔符、引号字符和转义字符。比如上面这段数据,本来是两条数据,但第一条数据第三个字段中间多了个换行符,在load data进hive的时候就变成了三条数据。网上找了很久,没有看到hive能直接处理这种字段中间带换行符的方式,所以只能对csv文件进行预处理。这段代码表示分隔符为逗号,""中间的逗号不进行处理。

2023-06-28 10:43:52 1797 2

Hadoop中winutils2.6.1-3.2.2

Hadoop中winutils2.6.1-3.2.2

2022-05-29

PL/SQL Developer 32 bit最新版

PL/SQL Developer 32 bit最新版

2021-08-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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