- 博客(88)
- 收藏
- 关注
原创 【python基础语法1】注释,变量与运算符
这里写自定义目录标题一、注释分类注意二、变量变量的声明变量的命名注意变量的交换常量三、数据类型分类六大标准数据类型Number 数字类型 分类:2个内置方法 type 和 id自动类型转换强制类型转换容器类型分类:五个字符串类型 str列表类型 list内置函数 len元组类型 tuple字符串类型的索引取值集合类型 set字典 dict变量的缓存机制容器类型的强制类型转换内置方法 repr (元字符串)类型判断四、运算符分类算数运算符比较运算符成员运算符 in身份运算符逻辑运算符位运算符运算符的优先级欢迎
2024-06-14 15:33:10
363
转载 MySQL全文索引揭秘:提升搜索效率的关键
我们都知道 InnoDB 在模糊查询数据时使用 “%xx” 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较,全文索引就是为这种场景设计的。
2024-01-29 18:04:36
187
1
原创 数仓建模理论与规范
数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。从上面的定义可用看到数据仓库主要有四个特点:• 面向主题:面向分析主题,如商家全域分析、交易环节分析等。• 集成的:将业务系统进行集成组装,并整合到数据仓库中。
2024-01-16 11:40:46
1195
原创 一篇文章教会你数据仓库之详解拉链表怎么做
上面的拉链表存储方式对于下游使用方存在一定的理解障碍,特别是ODS 数据面向的下游用户包括数据分析师、前端开发人员等,他们不怎么理解维度模型的概念,因此会存在较高的解释成本。1 . 透明化 底层的数据还是历史拉链存储,但是上层做一个视图操作或者在 Hive 里做一个hook ,通过分析语句的语法树,把对极限存储前的表的 查询转换成对极限存储表的查询。但是其本身也有一定的局限性,流水表存放的是一个用户的变更记录,比如在一张流水表中,一天的数据中,会存放一个用户的每条修改记录,但是在拉链表中只有一条记录。
2023-12-26 16:27:52
495
原创 Linux中常用的快捷键
快捷键说明Tab命令补全Ctrl a光标移动到行首Ctrl e光标移动到行尾Ctrl c中断程序运行Ctrl d退出终端Ctrl w剪切光标前面的单词Ctrl u剪切光标前面的所有内容Ctrl k剪切光标处及光标后面的内容Ctrl y粘贴刚才剪切的内容到光标前面Ctrl l清屏Ctrl r在历史命令中从后往前搜索包含指定字符串的命令,再按Ctrl r查找上一个,按向右的箭头选择当前命令到shell,按Ent
2023-12-20 11:00:41
434
原创 SQL中 WITH AS 的使用方法
WITH AS短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句用到。可以使SQL语句的可读性更高,也可以在UNION ALL的不同部分,作为提供数据的部分。对于UNION ALL,使用WITH AS定义了一个UNION ALL语句,当该片断被调用2次以上,优化器会自动将该WITH AS短语所获取的数据放入一个Temp表中。而提示meterialize则是强制将WITH AS短语的数据放入一个全局临时表中。
2023-12-18 18:01:53
548
转载 四万字Spark性能优化宝典
继《Spark性能优化:开发调优篇》和《Spark性能优化:资源调优篇》讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。
2023-11-08 21:38:38
146
原创 如何解决MySQL主从复制延时问题
有时候我们遇到从数据库中获取不到信息的诡异问题时,会纠结于代码中是否有一些逻辑会把之前写入的内容删除,但是你又会发现,过了一段时间再去查询时又可以读到数据了,这基本上就是主从延迟在作怪。主从延迟,其实就是“从库回放” 完成的时间,与 “主库写 binlog” 完成时间的差值,会导致从库查询的数据,和主库的不一致。
2023-11-02 15:00:03
96
转载 详解 SELECT COUNT(*)
本文通过一个例子深入剖析了 MySQL 的执行计划是如何选择的,以及为什么它的选择未必是我们认为的最优的,这也提醒我们,在生产中如果有多个索引的情况,使用 WHERE 进行过滤未必会选中你认为的索引,我们可以提前使用 EXPLAIN, optimizer trace 来优化我们的查询语句。
2023-09-05 14:49:35
1073
转载 列存储为什么能够大幅度提高数据的查询性能?
传统的存储数据的方式是逐行存储(Row Store),每一个Page存储多行数据,而列存储(Column Store)把数据表中的每一列单独存储在Page集合中,这意味着,Page集合中存储的是某一列的数据,而不是一行的所有列的数据。 列存储索引适合于数据仓库中,主要执行大容量数据加载和只读查询,与传统面向行的存储方式相比,使用列存储索引存储可最多提高 10 倍查询性能 ,与使用非压缩数据大小相比,可提供多达 7 倍数据压缩率。
2023-06-28 14:10:05
177
1
转载 看一遍就理解:order by详解
日常开发中,我们经常会使用到order by,亲爱的小伙伴,你是否知道order by 的工作原理呢?order by的优化思路是怎样的呢?使用order by有哪些注意的问题呢?本文将跟大家一起来学习,攻克order by~
2023-06-26 16:39:34
1421
2
转载 看一遍就理解:group by详解
having子句用于分组后筛选,where子句用于行条件筛选having一般都是配合group by和聚合函数一起出现如(where条件子句中不能使用聚集函数,而having子句就可以。having只能用在group by之后,where执行在group by之前。
2023-06-26 16:13:59
2216
转载 SQLite 新特性
SQLite 从版本3.25.0开始,在使用over子句的聚合函数中支持了filter子句,但是在使用group by子句的聚合函数中还不支持。事实上,SQLite 是一个非常可靠的数据库,它可以处理 TB 级的数据,但它没有网络层。它不支持的功能在其他一些主要产品中也同样不支持(在聚合中语句中的distinct,width_bucket, respect|ignore nulls和from first|last等语句)。这是一个特有的SQL扩展,即它不是标准SQL的一部分,因此在下面的矩阵中是灰色的。
2023-06-26 15:36:40
215
转载 Sqoop数据导出
sqoop将hdfs数据导入到mysql表中,不会自动创建表,所以需要我们在mysql中,根据hdfs文件中的数据,创建对应的表。以下命令用于hdfs数据(位于HDFS上的/data/xinniu/的文件)导出到mysql中sqoop_db库下的emp表。重新将hive表中的数据导入到mysql中并按照id进行更新。hdfs准备如下数据,放到/data/xinniu目录下。查看hive中hainiu.student表数据。将数据导出到mysql中。
2023-06-20 10:03:55
115
转载 Sqoop应用_导入HBase
修改hbase安装目录的所有者和属组为hadoop用户hadoop用户组。将准备好的hbasejar包导入到sqoop的lib目录下。求MySQL表必须有主键,将主键作为rowkey,标识一行。修改conf目录下的hbase-site.xml配置文件。修改conf目录下的hbase-env.sh配置文件。解压hbase安装包到/usr/local目录下。进入hbase客户端并创建hainiu名称空间。
2023-06-20 10:03:10
213
转载 Sqoop应用_导入Hive
--incremental lastmodified --merge-key的作用:修改过的数据和新增的数据(前提是满足last-value的条件)都会导入进来,并且重复的数据(不需要满足last-value的条件)都会进行合并。如果之前的数据有修改的话可以使用–incremental lastmodified --merge-key进行数据合并执行修改的SQL。现在我们已经实现了 hive的数据导入方式,那么我们怎么实现hive的增量数据导入呢?结果:id=3的数据成功导入。1、append方式。
2023-06-20 10:02:37
1355
转载 Sqoop应用实例
将sqoop_db中的goods_table表每天抽取所有数据并导入到hdfs:/user/hainiu/goods_table目录下。并按照每天的日期生成对应的目录保存表数据。以shell脚本的方式运行每天定时运行。执行时,需要从外界将日期传递过来。
2023-06-20 10:02:32
122
转载 Sqoop原理与安装
来自于Apache软件基金会提供。Sqoop工作机制是将导入或导出命令翻译成mapreduce程序来实现。在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。Hadoop生态系统包括:HDFS、Hive、Hbase等RDBMS体系包括:Mysql、Oracle、DB2等Sqoop可以理解为:“SQL 到 Hadoop 和 Hadoop 到SQL”。
2023-06-20 10:01:31
65
转载 Sqoop应用_导入测试
maptask执行sql副本时,需要在where条件中添加$CONDITIONS条件,这个是linux系统的变量,可以根据sqoop对边界条件的判断,来替换成不同的值,这就是说若split-by id,则sqoop会判断id的最小值和最大值判断id的整体区间,然后根据maptask的个数来进行区间拆分,每个maptask执行一定id区间范围的数值导入任务,如下为示意图。使用sqoop上传字典表数据到hive中与我们的数据进行关联查询。添加hadoop,hive,hbase等环境信息。
2023-06-20 10:00:09
56
转载 ChatGPT Prompt提示词学习手册
在这份全面指南中,你将学习有关如何制作明确和有效的 ChatGPT 提示的一切知识,以推动引人入胜和信息丰富的对话。你可以通过浏览器访问 ChatGPT:https://chat.openai.com但首先,让我们回答一个问题:什么是 ChatGPT?ChatGPT(生成式预训练变换器)是由 OpenAI 在2022年11月推出的聊天机器人。它建立在 OpenAI 的 GPT-3.5 大型语言模型之上,并采用了监督学习和强化学习技术进行了微调。
2023-06-19 11:32:02
95
转载 如何解决Kafka 消息重复问题
数据重复这个问题其实也是挺正常,全链路都有可能会导致数据重复。通常,消息消费时候都会设置一定重试次数来避免网络波动造成的影响,同时带来副作用是可能出现消息重复。
2023-06-16 10:32:39
1144
原创 SQL Server Management Studio(SSMS)是干什么的?
SSMS和Navicat都是用于管理数据库的工具,它们具有一些相同之处,例如可以管理数据库实例、可视化查询、备份和恢复数据库等。支持的数据库类型:SSMS仅支持Microsoft SQL Server数据库,而Navicat是一个通用的数据库管理工具,几乎可以管理所有主流的关系型数据库。功能模块:Navicat具有比SSMS更强大和丰富的功能模块,例如数据同步、数据传输、报表生成、自动化任务等功能,可以大大提高数据库管理和开发的效率。SSMS的界面较为复杂,需要一定的学习和熟练掌握才能进行操作。
2023-06-15 11:10:52
3445
原创 MySQL和SQL SERVER在使用和语法上的一些不同点
存储过程: MySQL不支持“XML”和“游标”,而SQL Server支持。分区:MySQL的数据分区支持范围和哈希分区,而SQL Server支持分区提供更高的性能和管理。SQL执行计划:MySQL使用基于Cost-based的SQL优化器,而SQL Server使用基于Rule-based的SQL优化器。索引:MySQL的索引是Btree类型的,并且支持自定义函数索引;而SQL Server的索引包括:聚集和非聚集索引、空间索引、分页索引等。触发器:MySQL对触发器的支持有限,而SQL S
2023-06-15 11:05:08
326
原创 Mermaid语法大全
Mermaid是一个开源的、基于JavaScript的绘图库,它可以用简洁的、人类可读的文本描述和绘制流程图、序列图、甘特图、类图、实例图、状态图和部署图等不同类型的图表。Mermaid的语法简单易懂,支持针对不同类型图表的定制化设置,可以轻松绘制高质量的图表并嵌入到网页、Markdown文档和其它支持HTML的场景之中。此外,它还支持插件和编辑器的集成,使得用户可以更加高效地使用和管理Mermaid图表。Mermaid是一个接近理想状态的图表和流程图的设计工具,是众多开发者和作者的首选。
2023-06-13 15:56:49
3813
转载 一文在手,全部都有 : 大数据命令全集
输出:2021-08-31--上个月第一天输出:2021-07-01--上个月最后一天输出:2021-07-31-- 获取当月第一天输出:2021-08-01-- 获取当月最后一天输出:2021-08-31。
2023-06-12 16:10:22
79
原创 Vim编辑器从入门到精通
Vim(Vi IMproved)编辑器是一款基于Vi编辑器的增强版。Vi编辑器最初由Bill Joy于1976年开发,并且在BSD Unix中得到广泛应用。虽然Vi编辑器只提供了最基本的文本编辑功能,但是在Unix和类Unix系统环境下,Vi编辑器一直是一个标准的文本编辑器。随着计算机应用领域的不断拓展,人们对Vi编辑器的功能提出了更高的要求。在1991年,Bram Moolenaar开发了Vim编辑器,是在Vi的基础上增加了一些新功能,使得Vim成为了一个功能更加强大的文本编辑器。
2023-06-12 14:17:19
480
原创 深入剖析:Ping命令的原理、用法与局限
ping命令的缩写来自于英语单词 “Packet INternet Groper”,中文翻译为 “数据包网际网探测器”,它可以通过向目标主机发送 ICMP 数据包,从而测试网络连接的延迟和数据包丢失率,属于基本的网络测试工具之一。ping命令是一种常用的网络诊断工具,主要用于测试与目标主机之间的网络连接状态。它在网络管理员、IT 专业人士以及一般用户中都很受欢迎。由于ping命令简单易用,而且几乎在所有操作系统中都内置,因此很容易使用。ping命令采用 ICMP1。
2023-06-12 13:44:25
3746
原创 HBase常用Shell操作
进入 HBase 客户端命令操作界面查看帮助命令查看当前数据库中有哪些表创建 user 表,包含 info、data 两个列族或者向 user 表中插入信息,row key 为 rk0001,列族 info 中添加 name 列标示符,值为 zhangsan向 user 表中插入信息,row key 为 rk0001,列族 info 中添加 gender 列标示符,值为 female向 user 表中插入信息,row key 为 rk0001,列族 info 中添加 age 列标示符,值为 20。
2023-06-12 10:11:20
230
原创 17个面试中可能会被问到的shell小问题
Shell是一个命令行解释器,它是与操作系统内核交互的用户界面。Shell脚本是一种编程语言,用于在Unix和Linux环境下编写脚本程序。它们通常用于自动化重复性任务,例如文件操作、系统管理和数据处理。其中,condition是一个条件表达式,command是需要执行的命令。如果条件满足,则执行command。其中,variable是循环变量,values是需要循环遍历的值,command是需要执行的命令。可以使用if语句进行条件判断。这将定义一个整数类型的变量age,并将其初始化为30。
2023-05-24 19:59:45
518
原创 SQL查询语句中的where、having和on关键词详解
当涉及到SQL数据查询时,“where”、"having"和"on"这三个关键词都是必不可少的组成部分。它们分别用于筛选行、筛选分组和连接表格进行联接查询。虽然它们的作用不同,但是它们的使用方式和语法很相似。"where"关键词用于在查询中筛选行,它可以根据指定的条件选择满足条件的记录。"where"通常出现在"SELECT"语句之后,"FROM"语句之前。"having"关键词用于在分组查询中筛选行,它可以根据指定的条件筛选出满足条件的分组。"having"通常出现在"GROUP BY"语句之后。
2023-05-24 08:54:05
1612
原创 MySQL 常用函数全面介绍:聚合函数、日期函数、流程控制函数、加密函数、数学函数和系统函数等
在 MySQL 数据库中,函数是一种非常重要的工具,可以帮助我们完成各种数据处理和计算操作。MySQL 提供了丰富的内置函数,包括聚合函数、日期函数、流程控制函数、加密函数、数学函数和系统函数等多个类型。这些函数能够极大地简化我们的开发工作,提高操作效率。本文将全面介绍 MySQL 中常用的函数,涵盖了聚合函数、日期函数、流程控制函数、加密函数、数学函数和系统函数等多个方面。我们将详细讲解这些函数的用法、应用场景、安全性和效率等方面,帮助读者了解不同类型的函数以及如何根据需求选择合适的函数。
2023-05-23 14:53:53
358
原创 当数据统计遇到 COUNT 函数:如何选择最优计数方式?
在MySQL中,COUNT函数用于计算满足特定条件的数据行数,常用于统计查询和分页查询等场景。在使用COUNT函数时,可以使用三种不同的参数:*,1和字段名,它们分别表示不同的计数方式。
2023-05-23 13:25:12
127
原创 如何避免常见的SQL错误?——SQL使用过程中需要注意的问题
SQL是一种用于管理关系型数据库的语言,被广泛应用于数据管理和数据分析领域。然而,在使用SQL的过程中,常常会出现一些错误,如语法错误、数据类型不匹配、空值错误、键冲突、连接错误、权限错误、事务处理错误和性能问题等。这些错误可能会导致SQL查询无法正确执行,甚至导致数据损失或安全问题。因此,在使用SQL时,需要注意避免这些常见的错误,确保SQL语句的正确性和安全性。本文将介绍SQL使用过程中需要注意的问题,并提供相应的SQL语句示例,以帮助读者更好地理解和避免SQL错误。
2023-05-23 11:03:57
252
原创 Python编程:15个必知必会的基础语法
装饰器本身也是一个函数,它接受一个函数作为参数,并返回一个新的函数。值得注意的是,如果两个字典中有相同的键,后面的字典中的值会覆盖前面的字典中的值。但需要注意的是,下划线只是用于分隔,不会影响数字或字符串的值和类型,因此不要在数字或字符串的中间位置使用下划线。上面的代码使用了一个字典生成式,将一个包含5个整数的列表转换成了一个字典,其中字典的键是列表中的每个元素,值是该元素的平方。需要注意的是,在使用动态导入时需要注意安全性和可靠性,避免加载不安全的或者恶意的模块或者函数,从而保障程序的安全和稳定性。
2023-05-22 17:14:04
405
原创 优化查询的利器:使用Left Semi Join 和 Left Anti Join 提高Hive查询性能
可以替代使用 right table 在 where 中国 in/not in 的子查询。这比 directly 选 left table 快,因为不需要全表扫描。通过 ON 条件只匹配右表中的部分记录,从而完成对右表的过滤。二者效果相同,但 left semi join 的性能更高。返回左表所有记录,与右表匹配的用右表值,否则用null填充。只返回了table1中的id=3 和 id=4的记录。它看起来多余,但实际上可以提高查询效率。也就是说只返回左表中不在右表中的记录。这可以有效提高性能。
2023-05-18 14:40:15
1126
原创 hadoop dfs 对比 hadoop fs
hadoop dfs 是 HDFS 命令,仅用于操作HDFS分布式文件系统,是 Hadoop 1.x 时期的老命令。hadoop fs 是 Hadoop 2.x 引入的通用命令,可以操作任何Hadoop支持的分布式文件系统。hadoop fs 是 Hadoop 2.x 引入的通用命令,可以操作任何Hadoop文件系统。对于HDFS操作,可以使用 hadoop dfs 或 hadoop fs 命令,功能上是等价的。hadoop fs 是 Hadoop File System 的缩写,是一个通用的命令。
2023-05-17 20:03:12
638
原创 【MySQL锁全家桶】深度解析MySQL锁机制
MySQL锁机制是保证数据一致性和完整性的关键。本文将从表锁、页锁、行锁、间隙锁、意向锁、排他锁、共享锁、乐观锁、悲观锁九个方面详细介绍MySQL锁的概念、作用和实现方式。通过本文的学习,你将深入理解MySQL锁机制的实现原理,从而更好地保障数据的正确性和稳定性。赶快来了解一下吧!
2023-05-13 23:48:33
278
原创 全面解构MySQL 事务的原理和功能特性
隔离级别优点缺点最大性能可能发生脏读/幻读/不可重复读可以防止脏读可能发生不可重复读/幻读可以防止脏读和不可重复读可能发生幻读可以防止脏读、不可重复读和幻读性能最差READ UNCOMMITTED:最低级别,允许读取未提交事务的数据READ COMMITTED:只能读取已提交事务的数据,默认级别REPEATABLE READ:保证同一事务多次读取同一数据结果一致SERIALIZABLE:最高级别,串行化执行每个事务,最稳定隔离性更强,避免的数据一致性问题越多。
2023-05-13 14:08:53
313
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人