
数据库&中间件
文章平均质量分 62
周小董
专注于数据采集,数据治理及数据架构的研究,热爱分享一些经验,欢迎朋友来探讨交流。 附言:文章仅用于个人学习,如有侵权,请联系我删除,谢谢!
展开
-
[1270]mysql中的FOREIGN_KEY_CHECKS方法
参考:https://blog.youkuaiyun.com/wit_cx/article/details/110917797。Mysql中的FOREIGN_KEY_CHECKS是用来启动和关闭外键约束的方法。这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS避免这种情况。原创 2024-03-09 10:00:00 · 2677 阅读 · 0 评论 -
[1251]mysql datetime和timestamp类型的区别及使用
两个存储精度最大都是可以到秒后6位, 如果我们要存储精度为6位的,需要使用 datetime(6) 和 timestamp(6), 另外也要注意 插入数据的时候也要有这么长精度的时间格式才可以,比如 now(6)对于timestamp,他把客户端插入的时间从当前时区转化为utc(世界标准时间)进行存储,查询时,将其又转化为客户端当前时区返回,而datetime,不做任何改变。对于date字段来说,它只支持date部分,如果插入了time部分的内容,它会丢弃掉该部分的内容,并提示一个warning。转载 2023-12-24 21:42:08 · 350 阅读 · 0 评论 -
[1221]mysql中的field()排序函数
当字段值没有匹配到str1,str2或者str3的时候,按照正常排序;当匹配到这些的时候,会把没有匹配的值放到最前面,匹配到的放到后边,并且以写的顺序排序返回结果集。: 数据库有字段model,代表手机型号,值有很多,和更多型号;现在根据model字段排序,查询结果集中,’‘更多型号’’ 必须放最后。参考:https://blog.youkuaiyun.com/qq_42524288/article/details/113192543。sql中排序比较常见,我们常用的排序语句是这两个。,将其放到结果集最后返回。原创 2023-08-23 19:45:00 · 992 阅读 · 0 评论 -
[1219]mysql自定义函数split_part、split_last
delimiter 自定义符号 -- 如果函数体只有一条语句, begin和end可以省略, 同时delimiter也可以省略create function 函数名(形参列表) returns 返回类型 -- 注意是retrunsbegin函数体 -- 函数内定义的变量如:set @x = 1;变量x为全局变量,在函数外面也可以使用return返回值end自定义符号delimiter;关键字delimiter的使用:delimiter是mysql分隔符。原创 2023-08-11 20:00:00 · 1017 阅读 · 0 评论 -
[1183]Clickhouse数据表&数据分区partition&数据生命周期操作
如果一张表被设置了 TTL,在写入数据时,会以数据分区为单位,在每个分区目录中生成一个 ttl.txt 的文件,如 merge_table_ttl 表即被设置了列级别的 TTL 也被设置了表级别的 TTL,那么每个分区目录都会生成 ttl.txt 文件。也可以直接去看官方文档:https://clickhouse.com/docs/zh/sql-reference/statements/alter/column。生产环境,请谨慎使用删除命令,最好做好备份再删除。分区删掉了,该分区所有数据都删掉了。原创 2022-12-16 22:28:06 · 4713 阅读 · 0 评论 -
[1182]clickhouse的日期函数
参考:https://blog.youkuaiyun.com/anyitian/article/details/116664687。下面的函数都可以使用date或者datetime,即toDate() or toDateTime()原创 2022-12-16 22:27:53 · 5084 阅读 · 0 评论 -
[1180]clickhouse查看数据库和表的容量大小
而在clickhouse,我们可以通过system.parts查看clickhouse数据库和表的容量大小、行数、压缩率以及分区信息。结果为:这是因为在CH中,和我们hive表不一样,hive表一个分区只会有一条记录,但CH不是,每个分区分为了不同的marks。在mysql中information_schema这个数据库中保存了mysql服务器所有数据库的信息,结果为:这种结果显示的大小size是字节,我们如何转换为常见的MB和GB呢?因此,我们要实现和hive一样查分区的功能时,要对表进行聚合查看。原创 2022-12-10 14:44:38 · 5544 阅读 · 0 评论 -
[1179]hive的lateral view用法
hive函数 lateral view 主要功能是将原本汇总在一条(行)的数据拆分成多条(行)成虚拟表,再与原表进行笛卡尔积,从而得到明细表。配合UDTF函数使用,一般情况下经常与explode函数搭配,explode的操作对象(列值)是 ARRAY 或者 MAP ,可以通过 split 函数将 String 类型的列值转成 ARRAY 来处理。【语法格式】【说明】col_A,col_B,col_C: 都是原表 test_table 的列(字段);tmp_table:explode形成的新虚拟表,可以原创 2022-12-06 19:20:47 · 622 阅读 · 0 评论 -
[1178]数据库like和rlike区别
like,通配符,使用时需指定具体值。如:用like筛选某张表姓张的人全部信息,或名字叫张三的信息。张或张三就必须写为具体值。rlike,正则,模糊查询。区间范围判断。如:用rlike判断手机号字段是否为纯数字,可以不包含某个数字。例:展示所有张姓人员信息,不考虑名字长短。执行结果1:只展示张姓且名字为2个字的人员信息。因张三丰手机号里有字母,所以结果集为除张三丰以外的信息。执行结果3:参考:https://blog.youkuaiyun.com/feiyuxc/article/details/1273261原创 2022-12-06 19:20:11 · 930 阅读 · 0 评论 -
[1177]Hive 窗口函数之lead() over(partition by ) 和 lag() over(partition by )
lag() over() 与 lead() over() 函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前 N 行的数据 (lag) 和后 N 行的数据 (lead) 作为独立的列, 从而更方便地进行进行数据过滤。这种操作可以代替表的自联接,并且 LAG 和 LEAD 有更高的效率。over() 表示 lag() 与 lead() 操作的数据都在 over() 的范围内,他里面可以使用 partition by 语句(用于分组) order by 语句(用于排序)。parti原创 2022-12-06 19:19:52 · 5390 阅读 · 0 评论 -
[1176]concat()、concat_ws()、group_concat()函数使用
从concat()函数 — concat_ws()函数----到最后的group_concat()函数逐一讲解! 让小伙伴摸清楚其使用方法 !首先我们来建立一个测试的表和数据,代码如下concat()函数首先我们先学一个函数叫concat()函数, 这个函数非常简单功能:就是将多个字符串连接成一个字符串语法:concat(字符串1, 字符串2,…) 字符串参数用逗号隔开!返回值:结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。案例1效果如下图: 是不是觉得很简单 很直观呢原创 2022-12-06 19:18:59 · 1524 阅读 · 0 评论 -
[1175]hive函数greatest、least多列取最大最小值
存在 null 或者字符串存在日期但实际问题中很可能存在null,想了下,先把null做替换,然后再取多列最大存在 null 或者字符串存在日期参考:https://blog.youkuaiyun.com/szdxltt/article/details/125204552原创 2022-12-03 22:35:16 · 515 阅读 · 2 评论 -
[1174]collect_set()函数用法
参考:https://blog.youkuaiyun.com/qq_44104303/article/details/117551807原创 2022-12-03 22:34:40 · 1053 阅读 · 0 评论 -
[1173]regexp_replace()、regexp_substr()、regexp_instr()函数的用法
将source字符串中匹配pattern的子串替换成指定字符串后返回,当输入source, pattern, occurrence参数为NULL时返回NULL,若replace_string为NULL且pattern有匹配,返回NULL,replace_string为NULL但pattern不匹配,则返回原串。1、用替换字符串中的所有数字结果:用替换字符串中的数字0、9结果:2、遇到非小写字母或者数字跳过,从匹配到的第4个值开始替换,替换为结果:结果:结果:遇到非小写字母或者非数字跳过,将所有匹配原创 2022-12-03 22:33:33 · 13211 阅读 · 0 评论 -
[1172]python操作odps
接口手册:https://pyodps.readthedocs.io/zh_CN/latest/?spm=a2c4g.11186623.0.0.1aaf3d94n84mINPySdk下载:https://github.com/aliyun/aliyun-odps-python-sdk2、连接阿里云odps确认下载好后,连接odps,账号密码自备。3、执行sql3.1、简单执行sql3.2、通过odps内置DataFrame读取,该方法读取的数据结构类型为3.3、封装成函数连接直接输入sql就可进原创 2022-12-03 22:32:37 · 2573 阅读 · 0 评论 -
[1168]OSS ossutil64安装及使用
在使用ossutil的命令时,可以使用-L选项设置语言,可选值为CH/EN,即:中文或英文。作为配置文件,若您设置了配置文件的路径,则每次使用命令时需增加-c选项指定配置文件。命令行工具ossutil快速入门:https://help.aliyun.com/document_detail/195960.htm。参考:https://blog.youkuaiyun.com/MacwinWin/article/details/107314126。如果屏幕中输出ossutil所有支持的命令,表明已成功安装ossutil。原创 2022-10-24 06:00:00 · 5800 阅读 · 0 评论 -
[1157]dbeaverr的ssh远程连接
由于生产环境限制了数据库只能本地连接, 开放IP的限制,要修改bind-address配置和关闭防火墙,重启数据库等操作,非常的麻烦,并且连接失败也不知道是什么原因。参考:https://www.cnblogs.com/power255/p/14002032.html。但使用dbeaver,如果有管理员权限,可轻松解决这个问题。1、新建连接mysql,先配置ssh。2、配置mysql数据库设置。我使用的mysql 版本。原创 2022-08-21 20:03:34 · 3453 阅读 · 0 评论 -
[1156]MySQL数据库可用性监控脚本
六个最常用的 MySQL 数据库监控工:https://blog.youkuaiyun.com/alexwei2009/article/details/125323483。从mysql性能字典表,innodb_lock_waits 是锁信息,innodb_trx是事务信息,有两条记录,需要放到一行中,因此,需要关联2次。1.监控数据库是否可以连接。2.监控数据库是否可以读写。1.监控数据库并发请求数量。3.监控数据库的连接数。...原创 2022-08-14 17:08:18 · 440 阅读 · 0 评论 -
[1153]mysql中between的边界范围
开始日期从2018-01-22000000.0开始,到2018-01-29235959.59结束。egidnotbetween3and7等价与id7。egidbetween3and7等价与id>=3andid原创 2022-07-26 19:39:56 · 837 阅读 · 0 评论 -
[1151]python连接 redis cluster集群
使用pip search查看可安装的Redis模块版本第三方库:redis-py-cluster: 最近还在维护rediscluster: 似乎很久没有更新了代码参考:http://t.zoukankan.com/lowmanisbusy-p-10991605.htmlhttps://blog.youkuaiyun.com/qq_42048263/article/details/122731953http://www.manongjc.com/detail/15-xysgvqkubrgzlbw.html.原创 2022-07-06 21:53:08 · 2087 阅读 · 0 评论 -
[1137]RocketMq安全配置
文章目录1、RocketMq服务端安装包下载(官网地址http://rocketmq.apache.org/)2、acl服务端配置开启3、服务开启命令4、使用过程中一些问题5、实际项目应用RocketMq是一款开源高性能,轻量级,统一消息传递引擎。经受住亿万级高并发的检验。许多企业系统都在使用。在并发削峰,异步处理,应用解耦的等场景都有它的身影。网上文章大多数介绍RocketMq的设计原理,集群配置,项目集成等。安全方面相对比较少,有出现的安全资料,在实际使用上也难走通。企业级系统安全方面也挺重要的,花了转载 2022-04-27 22:16:03 · 3128 阅读 · 0 评论 -
[1040]DataWorks中MaxCompute的常用操作命令
文章目录表操作1、查看表的详细信息:2、 通过 `create table...as select...`语句创建表,并在建表的同时将数据复制到新表中:3、 如果希望源表和目标表具有相同的表结构,可以尝试使用 `create table...like`操作,如下所示:4、创建Hash Clustering表示例:5、 删除表6. 重命名表:7、修改表owner8、 修改表的注释9、修改表的Hash Clustering属性10、 清空非分区表里的数据生命周期操作1、 修改表的生命周期属性的语法格式,如下所示转载 2021-08-15 18:13:32 · 4187 阅读 · 0 评论 -
[1024]python sqlalchemy中create_engine用法
用法engine = create_engine('dialect+driver://username:password@host:port/database')dialect:数据库类型driver:数据库驱动选择username:数据库用户名password: 用户密码host:服务器地址port:端口database:数据库PostgreSQLdefaultengine = create_engine('postgresql://scott:tiger@localhost/原创 2021-07-16 22:51:44 · 39299 阅读 · 2 评论 -
[1009]mysql中Cast()函数的用法
Cast(字段名 as 转换的类型 ),其中类型可以为:CHAR[(N)] 字符型DATE 日期型DATETIME 日期和时间型DECIMAL float型SIGNED intTIME 时间型例如表table1date2015-11-03 15:31:26select cast(date as signed) as date from table1;结果如下:date20151103153126select cast(date as char) as dat转载 2021-06-25 22:42:18 · 599 阅读 · 0 评论 -
[1008]ROW_NUMBER和RANK和DENSE_RANK的区别
作用:数据库去除重复记录,进行排序。语法:ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)功能:表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的)row_number() 返回的主要是“行”的信息,并没有排名--在test表中根据name分组,age进行排序select name,age,row_number() over(partition by name order byag原创 2021-06-25 22:41:36 · 211 阅读 · 0 评论 -
[1005]pika 线程不安全
先说结论:Pika is not thread safe. Use a BlockingConnection per-thread。即 Pika 并不是线程安全的,应该在每个线程里,都使用各种的 BlockingConnection相关 issue:https://github.com/pika/pika/issues/1237示例一:线程外创建 connection,线程里创建 channel来源:https://github.com/pika/pika/issues转载 2021-06-21 22:11:24 · 2922 阅读 · 1 评论 -
[1004]mysql中的instr()函数的用法
想要在字符串中查找某字符串可以使用instr()函数instr()返回子字符串在字符串中首次出现的位置;如果没有找到,则返回0用法:instr(str,substr)str:从哪个字符串中搜索substr:要搜索的子字符串instr()函数不区分大小写mysql instr()函数示例:如图,在abcd字符串中查找是否含有字符串b,返回的字符串位置是2. 说明instr()函数返回的位置是从1开始的,如果找不到则返回0查找字符串中包含“民”的记录instr()函数与like运原创 2021-06-21 22:07:55 · 2174 阅读 · 0 评论 -
[970]Redis Sadd命令、Srandmember 命令
Sadd命令Redis Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。当集合 key 不是集合类型时,返回一个错误。注意:在 Redis2.4 版本以前, SADD 只接受单个成员值。语法redis Sadd 命令基本语法如下:redis 127.0.0.1:6379> SADD KEY_NAME VALUE1..VALUEN可用版本:>= 1.0.0返回值被添加到集合中的原创 2021-05-09 22:22:57 · 955 阅读 · 0 评论 -
[956]memcached和redis区别
memcached是什么memcached是高性能的分布式内存缓存服务器。一般使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度、提高可扩展性。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sjk5n2HV-1618145825412)(//upload-images.jianshu.io/upload_images/13103657-d96289dc8e2fd9bf.png?imageMogr2/auto-orient/strip|i转载 2021-04-11 20:57:26 · 468 阅读 · 0 评论 -
[953]mongo创建索引及索引相关方法
文章目录MongoDB 索引索引的类型和属性createIndex() 方法来创建索引1、单键索引①普通单键索引②索引子文档字段(或者"内嵌索引")③唯一索引2、复合索引3、多键值索引(或者"数组索引")4、过期索引(TTL)5、哈希索引(Hashed Index)6、地理位置索引(Geospatial Index)7、文本索引(Text Index)索引操作方法1、查看现有索引2、列出数据库的所有索引3、删除索引4、重建索引5、创建索引的参数索引规则1、查询优化器2、何时查询计划缓存才会变呢?3、联合索引原创 2021-03-09 21:27:53 · 3302 阅读 · 0 评论 -
[928]python leveldb
Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。py-leveldb 是 Google 的 K/V 数据库LevelDB的 Python 客户端开发包。plyvel源码:https://github.com/wbol原创 2020-12-09 20:41:27 · 1992 阅读 · 0 评论 -
[924]sql中的if条件语句的用法
IF 表达式IF( a, b, c)a的值为TRUE,则返回值为 ba的值为FALSE,则返回值为 c如下:SELECT IF(TRUE,1,2);-> 1SELECT IF(FALSE,1,2);-> 2SELECT IF(STRCMP("123","234"),"不相等","相等");-> 不相等举个例子:查找出年龄大于18的学生,如果是男生的话,就要标注为栋梁,否则是未成年select *,if(sex='man','栋梁','未成年') as st原创 2020-11-30 20:12:20 · 1190 阅读 · 0 评论 -
[915]ElasticSearch设置用户名密码
1、需要在配置文件中开启x-pack验证, 修改config目录下面的elasticsearch.yml文件,在里面添加如下内容,并重启.xpack.security.enabled: truexpack.license.self_generated.type: basicxpack.security.transport.ssl.enabled: true2、执行设置用户名和密码的命令,这里需要为4个用户分别设置密码,elastic, kibana, logstash_system,beats_s原创 2020-11-23 17:03:03 · 1584 阅读 · 2 评论 -
[913]MySQL查看数据库表容量大小
查看一个数据中所有表的相关信息:(1)可以在命令下使用show table status \G命令查看:(2)如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是:TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大小INDEX_LENGTH:索引大小其原创 2020-11-17 20:03:25 · 388 阅读 · 0 评论 -
[905]MySQL的sql_mode解析与设置和MySQL 1055, Expression
问题:mysql (_mysql_exceptions.OperationalError) (1055, "Expression #1 of SELECT list is not in GROUP BY clause方法1查看及更改sql_modelshow VARIABLES like '%sql_mode%';ormysql> select @@sql_mode;更改sql_model值set global sql_mode=STRICT_TRANS_TABLES,NO_ENGIN原创 2020-10-24 20:33:03 · 573 阅读 · 0 评论 -
[901]sqlite数据库的导出与导入
文章目录SQLite 获取所有表名通过`sqlite3 test.db`命令进入sqlite数据库的shell 操作:python 脚本:.help直接导出csv文件SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称、数据类型、限定符等等。改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名增加一列 - AL原创 2020-09-29 18:46:19 · 2585 阅读 · 0 评论 -
[900]mysql字符串数字互转
字符串转数字最简单的方式就是直接在字符串后面+0,就相当于直接把字符串转为数字类型了,下面可以看一下具体的操作,可以看到通过+0操作,成功将两个字符串转化为了数字,并得到了相加后的结果。SELECT '123'+0+'123'; CAST()函数转化为整数使用CAST()函数,使用方式为CAST(value AS type);,下面可以看一下具体的操作例子,通过如下sql语句查看结果:SELECT CAST('5.45' AS SIGNED); 可以看到结果直接将字符串’5.45’转为了原创 2020-09-27 12:55:38 · 743 阅读 · 0 评论 -
[897]使用Maxwell实时同步mysql数据
Maxwell简介maxwell是由java编写的守护进程,可以实时读取mysql binlog并将行更新以JSON格式写入kafka、rabbitMq、redis等中, 这样有了mysql增量数据流,使用场景就很多了,比如:实时同步数据到缓存,同步数据到ElasticSearch,数据迁移等等。maxwell官网:http://maxwells-daemon.iomaxwell源代码:https://github.com/zendesk/maxwellMaxwell的配置与使用max原创 2020-09-24 22:52:33 · 1595 阅读 · 0 评论 -
[896]DBeaver安装和下载驱动报错问题
DBeaver连接ClickHouse1.从DBeaver官网下载安装包并点击下一步下一步安装 https://dbeaver.io/download/2.在DBeaver中创建新链接,选择ClickHouse3.填写ClickHouse所在机器的ip地址和用户名密码即可,其他URL自动会填写4.点击测试链接按钮,在弹出来的地方选择 下载按钮,等它全部下载完驱动后即可测试连接5.点击测试链接 显示已连接说明已经连接成功,可以原创 2020-09-18 20:05:06 · 25565 阅读 · 14 评论 -
[895]python连接clickhouse数据库
一、简介Yandex在2016年6月15日开源了一个数据分析的数据库,名字叫做ClickHouse,这对保守俄罗斯人来说是个特大事。更让人惊讶的是,这个列式存储数据库的跑分要超过很多流行的商业MPP数据库软件,例如Vertica。如果你没有听过Vertica,那你一定听过 Michael Stonebraker,2014年图灵奖的获得者,PostgreSQL和Ingres发明者(Sybase和SQL Server都是继承Ingres而来的), Paradigm4和SciDB的创办者。Michael Sto原创 2020-09-18 20:00:03 · 2043 阅读 · 0 评论